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


48

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

コマンドは次のように見えると思います:

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

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

回答:


68

再エンコードせずにビデオストリームをコピーして多くの時間を節約することができますが、オーディオを再エンコードすると互換性の問題を防ぐことができます。

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

-map 0:v:00入力の最初の(インデックス0)ビデオストリームを出力の最初の(インデックス)ビデオストリームにマップします。

-map 1:a:01入力の2番目(index )のオーディオストリームを出力の最初の(index 0)のオーディオストリームにマップします。

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

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


2
または直接-c copyストリームを再エンコードせずにオーディオとビデオを再多重化します^^
フランチェスコヨシゴボ

1
元のビデオと同じ形式(同じパラメーター)で新しいオーディオを変換する方法を知っていますか?つまり、新しいオーディオは古いオーディオと同じ方法でエンコードされる必要があります。
コスタノス

チャームのような作品!!
Tessaracter

@Kostanosは自動的にではありませんが、したいです。別の質問をしてください。これを参照して、自分のものが新しいことを明確にすることができます。
qubodup
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.