Ffmpeg を使用してビデオにオーディオを多重化する

Ffmpeg を使用してビデオにオーディオを多重化する

たくさんのテストをしましたが、ffmpeg を使用してビデオにオーディオを多重化できないようです。どこが間違っているのかわかりません。助けていただければ幸いです。

このビデオを持っています。 ビデオのダウンロード

ffmpeg -i を実行すると、次のようになります。

 Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt709), 366x662 [SAR 1:1 DAR 183:331], 755 kb/s, 24 fps, 24 tbr, 90k tbn, 180k tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 105 kb/s (default)

だからストリーム0:0

そして私はこの音声を持っています。 オーディオダウンロード

ffmpeg を実行すると、次のようになります。

Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 277 kb/s
Stream #0:1: Video: png, rgb24, 400x400, 90k tbr, 90k tbn, 90k tbc

そこで私がやりたいのは、ファイル全体を再エンコードせずに、オーディオ 0:0 をコピーしてビデオ オーディオ 0:1 を置き換えることです。

ffmpeg -i testing.mp4 -i rkelly.mp3 -c copy -map 0:1 -map 0:0 -shortest out3.mp4 

答え1

オプションの最初の数字-mapは入力ファイルのインデックスです。したがって、 を02 回使用している場合は、 のみを使用していることになりますtesting.mp4

代わりにこれを試してください:

ffmpeg -i testing.mp4 -i rkelly.mp3 -c copy -map 0:v:0 -map 1:a:0 -shortest out3.mp4 

ここで、0:v:0最初の入力ファイルの最初のビデオ ストリームを選択し、1:a:02 番目の入力ファイルの最初のオーディオ ストリームを選択します。原則として、は:0ファイルに必須ではありませんが、複数のビデオ/オーディオ トラックがある場合は、そこにあっても問題ありません。

を参照してください-mapオプションに関するFFmpeg wikiエントリ多くのための。

関連情報