犬ターネット

ffmpegで動画に音声を結合する

2015-01-14 ffmpeg

movie.mp4 の音声部分に sound.wav を使いたい場合、まず ffmpeg -i movie.mp4 -i sound.wav とだけ実行して各ファイルのStreamを調べる必要がある。

> ffmpeg -i movie.mp4 -i sound.wav

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'movie.mp4':
…
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 2658 kb/s, 24 fps, 24 tbr, 24 t
Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 191 kb/s
…

Input #1, wav, from 'sound.wav':
…
Stream #1:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s32, 2116 kb/s
…

上記結果より、

の Stream が割り当てられている。動画には #0:0 を、音声には #1:0 を使いたいので、mapオプションを使って以下のようにコマンドを実行すればよい。

ffmpeg -i movie.mp4 -i sound.wav -map 0:0 -map 1:0 out.avi

ffmpegのオプション、黒魔術みたいでたまにわけわからん…

Wikipediaを特攻の拓っぽく表示する
mugbum at SoundStone, kotesashi (2015.01.10)