入力コーデックを保持

入力コーデックを保持

H.264ビデオとAACオーディオのMKVファイルがあります。FFmpegではMKVのデフォルトのオーディオコーデックはAC3なので、次のようなコマンドを実行すると

ffmpeg -i infile.mkv -ac 2 outfile.mkv

オーディオをAC3にトランスコードします。このコマンドを実行するとすべてうまくいきます

ffmpeg -i infile.mkv -ac 2 -c:a libfdk_aac outfile.mkv

しかし、「入力コーデックを使用する」という方法はありますか?copyオーディオ ストリームに変更を加えているため、これは機能しないことに注意してください。

答え1

私の知る限り、そのようなオプションはありません。明示的に指定するか、デフォルトに頼るか、追加のスクリプトを実行する必要があります。

これを機能として実装すべきだと思う場合は、機能リクエストを作成してください。FFmpeg バグトラッカー(まず、既に存在するかどうかを検索します)。

出力コンテナ形式のデフォルトのエンコーダーは、サポートされている外部エンコード ライブラリに応じて変更される可能性があることに注意してください。たとえば、ffmpegビルドが libvorbis をサポートしている場合は、mkv 出力に ac3 ではなくそれが使用されます。

ffprobe役に立つかもしれない:

$ ffprobe -v 0 -of flat=s=_ -select_streams a:0 -show_entries stream=codec_name input.mkv
streams_stream_0_codec_name="aac"

もちろん、これはcodec_name必要なエンコーダーと同じ名前ではない可能性があるため、有用性が限られる可能性があります。

関連情報