Я пытаюсь использовать ffmpeg в видео .mkv для изменения качества саундтрека. Я хотел бы снизить битрейт аудио части (до 16 кбит / с) без каких-либо изменений видео. Тем не менее, когда я использую команду ffmpeg

ffmpeg -i input.mkv -b:a 16k output.mkv

звук не меняется, а видео сжимается. Я старался

ffmpeg -i input.mkv -ab 16k output.mkv

и была такая же проблема. Когда я пытался

ffmpeg -i input.mkv -ab 16k -acodec aac -strict experimental output.mkv

Я получил ошибку:

oggvorbis_encode_init: init_encoder failed

Есть идеи, чтобы решить проблему?

1 ответ1

1

По умолчанию ffmpeg перекодирует любые потоки, которые не были явно выбраны для режима копирования потоков , и битрейт кодирования видео по умолчанию (в зависимости от кодера) может быть слишком низким для обеспечения адекватного качества вывода. Вместо перекодирования вы можете скопировать видео с параметром -codec:v copy в качестве опции вывода.

Для такого низкого битрейта аудио я рекомендую использовать кодер AAC, который поддерживает HE-AAC. Этот пример адаптирован из Руководства по кодированию FFmpeg и AAC и будет использовать приблизительно 16 Кбит / с на канал для стереофонического выхода:

ffmpeg -i input.mkv -codec:v copy -codec:a libfdk_aac -profile:a aac_he_v2 -b:a 32k output.mkv

В зависимости от того, какой контент вашего входного аудио имеет такой низкий битрейт, он, вероятно, будет звучать не очень хорошо даже с этим кодером. Обратите внимание, что HE-AACv2 может не поддерживаться целевыми декодерами, и вам, вероятно, придется скомпилировать ffmpeg для поддержки libfdk_aac .

Opus audio был бы еще одним хорошим форматом, но в прошлый раз, когда я проверял спецификации для Opus в контейнере Matroska, еще не были окончательно доработаны; хотя благодаря слухам я думаю, что прогресс достигнут.

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