Vegas、Premiere、Pinnacle、SoundForge、および私が試した他のすべてのエディターにうんざりしています。
AVIファイルのオーディオを変更しようとしていますが、試したすべてのエディターは、変更を保存するときにビデオを再エンコードすることを要求し、品質を低下させるか、数時間かかります。
ffmpeg
を使用してビデオからオーディオストリームを抽出し、オーディオエディターで編集してから、保存した変更をビデオと再結合する方法はありますか?
まず、FFmpegの最新バージョンをインストールしていることを確認してください ダウンロードページから 。 Windows、Linux、OS Xの場合、静的ビルドを利用できます。 OS Xでは、 Homebrew (with brew install ffmpeg
)を使用することもできます。
ファイルからオーディオストリームを抽出するために、WAVコンテナ内のPCMステレオオーディオにエクスポートします。これは、ロスレスであり、再エンコードされないためです。
ffmpeg -i input-file.avi audio.wav
もちろん、FLACやALACなど、他の多くのコーデックを使用することもできます。ただし、WAV(またはAppleのAIFF)のPCMコンテンツはおそらく編集に最適です。
次に、必要に応じてオーディオストリームにエフェクトを適用します。
オーディオストリームとビデオファイルを再結合するには、次のコマンドを実行します。
ffmpeg -i input-file.avi -i audio.wav -c copy -map 0:0 -map 1:0 output.avi
ストリームマッピングでは、ビデオファイルとオーディオファイルが正しい順序(-i video
、-i audio
)であることが重要です。そうしないと動作しない可能性があります。
-map 0:0 -map 1:0
オプションは、元のオーディオを使用する代わりに、2番目の入力ファイル(1
の1:0
)からのオーディオをAVIにマップします。これはここで最も重要なパラメータです。
理論的には、-c copy
を変更して、ビデオビットストリーム(-c:v copy
)をコピーし、他の圧縮オーディオコーデックを使用することができます。これは、copy
が非圧縮PCMステレオオーディオを使用しようとするためです。同様に、もちろん、編集したオーディオファイルをMP3に保存して代わりに使用することもできますが、copy
は保持します。
PCMステレオWAVファイルをMP3にエンコードするには、次のようにします。
ffmpeg -i input-file.avi -i audio.wav -c:v copy -c:a libmp3lame -map 0:0 -map 1:0 output.avi
オーディオファイルがビデオファイルよりも短い場合は、ループすることをお勧めします。これを行うには、-loop 1
オプションを指定します。