По умолчанию 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, еще не были окончательно доработаны; хотя благодаря слухам я думаю, что прогресс достигнут.