1

У меня есть файл MKV с видео H.264 и аудио AAC. С 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 ответ1

2

Насколько я знаю, такой опции нет. Вы должны будете быть явными, полагаться на значения по умолчанию или выполнять дополнительные сценарии.

Если вы считаете, что это должно быть реализовано как функция, вы можете создать запрос функции в FFmpeg Bug Tracker (сначала найдите, чтобы убедиться, что он уже существует).

Обратите внимание, что кодировщик по умолчанию для формата выходного контейнера может меняться в зависимости от поддерживаемых вами внешних библиотек кодирования. Например, если ваша сборка ffmpeg поддерживает libvorbis, она будет использовать ее вместо ac3 для вывода mkv.

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 может не совпадать с именем кодера, который вы хотите.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .