FFMPEG の「-acodec」と「-c」の違いは何ですか?

FFMPEG の「-acodec」と「-c」の違いは何ですか?

私は 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 は「オーディオ コーデック」の略だと思います。それぞれ何をするのですか? 違いはありますか? どちらが優れているのですか?

役に立たないドキュメントを見つけました:

出典: ffmpeg.org

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そのオーディオまたはビデオのサブセットへのショートカットにすぎません。

関連情報