ffmpeg でデュアルモノ音声を分離する

 昔録画した TV 番組の中に、二ヶ国語音声がデュアルモノの動画があったので、ffmpeg で音声を分離することにしました。そのままだと、kodi で両方再生されてしまいます。

 デュアルモノ音声とは、ステレオ音声の左右チェンネルにそれぞれモノラル音声が記録されている音声です。二ヶ国語の場合、片方が日本語で別チャンネルに外国語になります。

 音声型式が vorbis で良ければ、channelsplit を使って次のようにできます。

$ ffmpeg -i in.mkv -filter_complex channelsplit[FL][FR] -map 0:v -map [FL] -map [FR] -map 0:s? -metadata:s:a:0 language=jpn -metadata:s:a:1 language=eng -c:v copy -c:s copy out.mkv

 上の例では、in.mkv ファイルのビデオはそのまま、字幕データがあった場合は字幕データもそのままで、音声は左チャンネルを日本語、右チャンネルを英語としてそれぞれを別トラックで out.mkv に出力します。

 音声を vorbis 以外にする場合は、一旦左右チャンネルを別々の wav ファイルに出力したあとで、必要な型式にエンコードして結合すればいいと思います。

Memo

Posted by sirius