web-dev-qa-db-ja.com

ffmpeg - ビデオのオーディオを置き換える

Ffmpegを使用してオーディオファイルを使用してビデオファイルのオーディオを置き換える方法は?

コマンドは次のようになります。

ffmpeg -i v.mp4 -i a.wav -MAGIC video-new.mp4

これは ビデオファイル内のオーディオストリームを複数のオーディオストリームに置き換える方法 に非常に似ていますが、その質問は複数のオーディオトラックを処理するため、非常に複雑です。多くの場合、ソリューションのどの部分が単純なオーディオの交換に十分であるかが不明確になります。

33
qubodup

多くの時間を節約するために再エンコードせずにビデオストリームをコピーすることをお勧めしますが、音声を再エンコードすると非互換性を防ぐのに役立つかもしれません。

ffmpeg -i v.mp4 -i a.wav -c:v copy -map 0:v:0 -map 1:a:0 new.mp4

-map 0:v:0は、入力から最初の(index 0)ビデオストリームを、出力の最初の(index 0)ビデオストリームにマッピングします。

-map 1:a:0は、入力から2番目の(index 1)オーディオストリームを、出力の最初の(index 0)オーディオストリームにマッピングします。

オーディオがビデオより長い場合は、出力ファイル名の前に-shortestを追加します。

オーディオコーデックを指定しないと、自動的に有効なコーデックが選択されます。たとえば、-c:a libvorbisの後に-c:v copyを追加することで指定できます。

47
qubodup