Вопрос или проблема
Битрейт видео в ffmpeg не работает с кодеками HEVC и h264 при любом размере, из-за чего видео становится размытым. Можете ли вы решить эту проблему?
ffmpeg -i sissi -c:v hevc -c:a mp3 -b:v 77k -r 25 -s:v 320:240 -b:a 32k -ar 32000 -af volume=12 sissi.mkv
Ответ или решение
Для того чтобы разобраться с проблемой снижения качества видео при его кодировании с помощью FFmpeg, важно понять основную теорию, касающуюся битрейта видео и его влияния на конечное качество.
Теория
Битрейт видео — это параметр, который определяет количество данных, используемых для хранения каждой секунды видео. Измеряется в килобитах в секунду (кбит/с). Чем выше битрейт, тем лучше качество видео и тем больше размер файла, а значит технология сжатия должна быть тщательно выбрана. Для кодеков h264 и HEVC (h265), которые широко используются для сжатия видео из-за их эффективности, правильный выбор битрейта имеет решающее значение.
Пример
В вашем случае, команда FFmpeg выглядит следующим образом:
ffmpeg -i sissi -c:v hevc -c:a mp3 -b:v 77k -r 25 -s:v 320:240 -b:a 32k -ar 32000 -af volume=12 sissi.mkv
Разберем ключевые параметры:
-
-b:v 77k
: Это видео битрейт. 77 кбит/с — это очень низкий битрейт для любого видео, даже для сжатых форматов, таких как hevc или h264. Обычно для достижения приемлемого качества видео рекомендуется использовать как минимум 1000 кбит/с (1 Мбит/с) для разрешения 480p и выше. -
-r 25
: Установлена частота кадров в 25 кадров в секунду, что является стандартом для большинства видео и не вызывает проблем с качеством. -
-s:v 320:240
: Это разрешение видео — 320×240 пикселей, что весьма мало и может дополнительно обострять проблему низкого качества.
Применение
Вот несколько рекомендаций по решению вашей проблемы с "размытым" видео при использовании FFmpeg:
-
Увеличьте битрейт. Для улучшения качества видео вам следует значительно увеличить значение битрейта. Попробуйте установить его хотя бы на уровне 1000 кбит/с или даже выше, в зависимости от ваших требований к качеству и размеру файла.
ffmpeg -i sissi -c:v hevc -c:a mp3 -b:v 1000k -r 25 -s:v 320:240 -b:a 32k -ar 32000 -af volume=12 sissi.mkv
-
Пересмотрите разрешение. 320×240 — это очень низкое разрешение, подходящее только для маленьких экранов или специфичных задач. Подумайте над увеличением разрешения, если это возможно, чтобы улучшить визуальное восприятие видео.
-
Используйте пресеты кодека. Кодеки, такие как h264 и HEVC, часто предоставляют пресеты, которые оптимизируют компрессию и качество. Например, попробуйте использовать такие параметры как "medium" или "slow" через флаг
-preset
, который даст кодеку больше времени на оптимальную обработку:ffmpeg -i sissi -c:v hevc -preset medium -c:a mp3 -b:v 1000k -r 25 -s:v 320:240 -b:a 32k -ar 32000 -af volume=12 sissi.mkv
-
Проконсультируйтесь с параметром CRF. Вместо фиксированного битрейта, вы можете использовать управляемую регулировку качества с помощью параметра CRF (Constant Rate Factor) для HEVC и h264. Это обеспечивает более гибкий компромисс между качеством и размером файла. Рекомендуемое значение CRF составляет около 24-28 для HEVC.
ffmpeg -i sissi -c:v hevc -crf 25 -preset medium -c:a mp3 -b:a 32k -ar 32000 -af volume=12 sissi.mkv
-
Проверьте аудионастройки. Хотя аудио не является причиной плохого качества видео, использование аудиобитрейта в 32 кбит/с может негативно сказаться на восприятии в целом. Рассмотрите повышение до 96 или 128 кбит/с для лучшего качества звука.
Эти изменения должны помочь вам значительно улучшить качество видео, закодированного с помощью FFmpeg. Помните, что каждой задаче по кодированию видео должен предшествовать тщательный анализ входных данных и требований к конечному продукту. Экспериментируйте с настройками, чтобы найти оптимальный баланс между качеством и размером файла для вашего конкретного случая.