////

/三度も放置したブログ今度こそ/忘却録/プログラミング/

Ubuntu ffmpegで複数音声をLRそれぞれにマッピング(英語学習)

結論から言うと、失敗しています(笑)

英語の学習のため大好きなアニメ「フィニアスとファーブ」の音声をL:英語・R:日本語のように流すことが目的です。

 

失敗というのはLRそれぞれに流すことは成功したのですが、日本語と英語を同時に聞くことにそもそも無理があり、英語学習には向かないということです。

 

ということで、聖徳太子のような耳をもつ誰かのために、複数音声をLRそれぞれに流す動画の作成方法をメモしておきます。

変換済みのmp4ファイルからの変換ですが、TSから直接作成もできると思います。

音声トラックは1:日本語,2:英語,3:英語・日本語ですが、mapオプションで自由に設定してください。

 

  #音声取出し
  ffmpeg -i "imput.mp4" -vn -acodec copy -map 0:1 tmp_right.mp4 -vn -acodec copy -map 0:2 tmp_left.mp4

  #音声合成
    ffmpeg -i tmp_left.mp4 -i tmp_right.mp4 -acodec libfaac -ac 2 -ar 48000 -ab 128k -filter_complex "[0:a][1:a]amerge=inputs=2,pan=stereo|c0<c0+c1|c1<c2+c3[aout]" -map "[aout]" tmp_mix.mp4

 

  #最終合成
  ffmpeg -i "input.mp4" -i tmp_mix.mp4 -c copy -map 0:0 -map 0:1 -map 0:2 -map 1:0 output.mp4

  #ファイル削除
  rm -r /home/user/test/tmp*

 

ffmpegのオプションaoutにはいくつかの処理方法があり、色々できそうです。

詳しくはffmpegのドキュメントを

AudioChannelManipulation – FFmpeg

 

参考URL

【ffmpeg】 比較動画の作り方 : ニコニコ動画研究所