
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
必要なエンコーダーと同じ名前ではない可能性があるため、有用性が限られる可能性があります。