私は FFMPEG を初めて使用するので、これに関する明確なドキュメントはあまり見つかりません。
3 つの mp3 を連結しています (必要なのは多重化だけで、エンコード/トランスコーディングは不要です)。
どちらのコマンドも正常に動作するようです。 '-c' と '-acodec' の使用には違いがありますか?
ffmpeg -i "concat:a.mp3|b.mp3|c.mp3" -acodec copy out.mp3
ffmpeg -i "concat:a.mp3|b.mp3|c.mp3" -c copy out.mp3
Google で何時間も検索し、ffmpeg のさまざまなドキュメントを見つけましたが、-c や -acodec が実際に何をするのかを説明しているものはありませんでした。-c は「コーデック」の略で、-acodec は「オーディオ コーデック」の略だと思います。それぞれ何をするのですか? 違いはありますか? どちらが優れているのですか?
役に立たないドキュメントを見つけました:
https://gist.github.com/tayvano/6e2d456a9897f55025e25035478a3a50
また、これを改善する方法についての提案も大歓迎です (3 つの mp3 を順番に結合するだけです)。
ありがとう。
答え1
あなたのタイトルに言及します。
-c copy
オーディオコーデック(acodec)とビデオコーデック(vcodec)の両方がコピーされます。
-c copy
と同じです -acodec copy -vcodec copy
-c:a copy
と同じです-acodec copy
。
-c:v copy
と同じです-vcodec copy
もちろんコーデックを指定すること-vcodec libx264
もできます。-c:v libx264
-cはコーデックを意味します。代わりに-codecと書くこともできます。 参考: 例えば -codec:a copy
-acodec copy
また、または-acodec blahblah
を指定しない場合は-codec:a ...
、デフォルトのコーデックが選択されます。-vn
ビデオなしで と言うこともできます。https://stackoverflow.com/questions/9913032/ffmpeg を使用してビデオからオーディオを抽出する方法 ビデオをコピーしない。または-an
音声がないFFmpeg でビデオファイルからオーディオを削除する
追加した
-acodec
との構文は現在非推奨です。との構文 (との別名)-vcodec
を使用することをお勧めします。-c:a
-c:v
-codec:a
-codec:v
答え2
-c
または、-codec
汎用ストリーム セレクターなので、これを使用して、オーディオまたはビデオのストリームのいずれかのコーデックを設定できます。
-acodec
オーディオストリームに自動的にスコープする機能のサブセットです
-acodec:1
と同じであり-codec:a:1
、2 番目のオーディオ ストリームのコーデックを設定していることを示します (最初のオーディオ ストリームは 0)。
リンクされたドキュメントから: -c、-codec
-c[:stream_specifier] コーデック (入力/出力、ストリームごと) -codec[:stream_specifier] コーデック (入力/出力、ストリームごと)
Select an encoder (when used before an output file) or a decoder (when used before an input file) for one or more streams. codec is the
デコーダー/エンコーダーの名前、またはストリームが再エンコードされないことを示す特別な値のコピー (出力のみ)。
-アコーデック
-acodec コーデック(入力/出力)
オーディオ コーデックを設定します。これは -codec:a のエイリアスです。
ビデオ ストリームに対して同じように動作する -vcodec もあります。
すべてをまとめると、ドキュメントのこのコマンドを検討してください
ffmpeg -i INPUT -map 0 -c copy -c:v:1 libx264 -c:a:137 libvorbis OUTPUT
これは、すべてのストリームに元のコーデック ( -c copy
) を使用するが、2 番目のビデオ ストリームには libx264 ( -c:v:1 libx264
) を使用し、138 番目のオーディオ ストリームには libvorbis ( -c:a:137 libvorbis
) を使用することを意味します。
したがって、-c
を使用するとすべての種類のストリームを制御できますが、 と-acodec
は、-vcodec
そのオーディオまたはビデオのサブセットへのショートカットにすぎません。