ffmpeg ビデオを再エンコードせずにオーディオ (wav) をビデオ (mp4) に追加する

ffmpeg ビデオを再エンコードせずにオーディオ (wav) をビデオ (mp4) に追加する

ビデオの既存のオーディオをそのまま維持しながらオーディオを追加する方法を知りたいと思っていました。調べてみたところ、同様の質問がここにあったようです。

ffmpeg を使用してビデオにオーディオを追加する

そこで、slhck から取得した次のコード セグメントを使用することを検討しています。

ffmpeg -i input.mp4 -i input.wav -c:v copy -map 0:v:0 -map 0:a:0 -map 1:a:0 -c:a:0 copy -c:a:1 aac -b:a 192k output.mp4

slhck が言ったように、オーディオ コーデック wav は mp4 と互換性がないため、再エンコードする必要がありますが、ffmpeg が 200 倍の速度でプロセスを実行しているため、ビデオが再エンコードされていないことを確認したいだけです。

編集: 唯一の問題は、2 つの異なるオーディオ ストリームがあり、1 つの結合されたオーディオ ストリーム (2 つをミックス) を作成できるかどうか考えていたことです。

編集: 非常に寛大な Reddit ユーザーの助けにより、amix フィルターを介して 2 つのストリームを 1 つに結合することができました。そして、今は動作するようになりました!

ffmpeg -i input.mp4 -i input.wav -filter_complex [0:a:0][1:a:0]amix=inputs=2:duration=longest[aout] -c:v copy -map 0:v:0 -map [aout] -c:a aac -b:a 192k output.mp4

答え1

非常に親切な Reddit ユーザーの助けにより、amix フィルターを使用して 2 つのストリームを 1 つに結合することができました。そして、動作するようになりました。

ffmpeg -i input.mp4 -i input.wav -filter_complex [0:a:0][1:a:0]amix=inputs=2:duration=longest[aout] -c:v copy -map 0:v:0 -map [aout] -c:a aac -b:a 192k output.mp4

関連情報