Обратите внимание, что для этого вы всегда должны использовать последнюю версию ffmpeg и, предпочтительно, скомпилировать ее самостоятельно . Это дает вам доступ к самым последним libx265 и libfdk-aac для кодирования звука.
Кроме того, экономия скорости передачи данных будет весьма существенной, если вы перейдете с DVD-диска ~ 10 Мбит / с до 1-2 Мбит / с для видео H.264 и 0,5–1 Мбит / с для видео H.265. Изменение качества в следующих шагах может повлиять на битрейт, но все же уменьшение данных должно быть значительным.
H.264
Для контроля качества / скорости вы хотите использовать режим CRF в libx264, а не постоянный битрейт. Использование CRF гарантирует сохранение среднего качества независимо от исходного разрешения видео или его сложности. Постоянный битрейт действительно полезен, только если вы ограничены средой передачи (например, скорость жесткого диска, пропускная способность Интернета).
Выбор значения CRF является сложной частью. Это требует от вас посмотреть на вывод. Значение по умолчанию для libx264 (23) предлагает довольно хороший компромисс между размером и качеством. Но, учитывая, что ваш исходный источник уже сжат (и не очень хорошего качества по сравнению с Blu-ray), вы можете изменить CRF на немного более низкий, например 20. Это увеличит необходимый битрейт примерно на треть ,
Выберите пресет в зависимости от того, как долго вы хотите ждать. slow
кажется хорошим значением здесь.
ffmpeg -i input \
-c:v libx264 -crf 20 -pix_fmt yuv420p \
-x264-params keyint=240:min-keyint=20 \
-preset:v slow -profile:v baseline -level 3.0 \
-c:a libfdk_aac -vbr 4 \
output.mp4
Встроенный кодировщик ffmpeg AAC можно использовать, если libfdk-aac недоступен. Используйте -c:a aac -strict experimental -b:a 128k
вместо -c:a libfdk_aac -vbr 4
.
H.265
Исследования показывают, что использование HEVC приведет к экономии битрейта до 74% по сравнению с H.264. Это основано на субъективном просмотре данных последовательностей Ultra-HD. Конечно, это зависит от временной сложности исходного контента, и объем сохраняемых данных не будет таким высоким для трудно кодируемых последовательностей. В любом случае вы можете с уверенностью сказать, что сокращение данных на 50% абсолютно возможно.
CRF по умолчанию для libx265 - 28. Используя тот же исходный контент, он дает примерно половину битрейта по сравнению с libx264 на CRF 23. Это независимо от фактического битрейта, т. Е. Если версия H.264 требует 1,5 Мбит / с, тогда H.265 будет использовать около 750 кбит / с, но это 750 кбит / с против 350 кбит / с для другой последовательности. Я запустил его на нескольких последовательностях с разрешением DVD-PAL и не смог определить разницу с точки зрения качества.
ffmpeg -i input \
-c:v libx265 -pix_fmt yuv420p \
-x265-params crf=28:keyint=240:min-keyint=20 \
-preset:v slow \
-c:a libfdk_aac -vbr 4 \
output.mp4
Для получения дополнительной информации, вот соответствующие ресурсы:
keyint
x264 / x265 - это интервал между кадрами IDR, то есть интервал между ключевыми кадрами, с которым декодер может обновляться. Между ними могут быть I-кадры без ключевых кадров, например, когда происходит смена сцены. Это эквивалентно-g
параметру, если я не ошибаюсь.-c:a aac -strict experimental
как указано в моем ответе. И я согласен, я бы не стал создавать его на Windows.libopus > libvorbis >= libfdk_aac > aac > libmp3lame >= libfaac >= eac3/ac3 > libtwolame > vorbis > mp2 > wmav2/wmav1
только для AAC: (потому что это немного сбивает с толку, с 3 доступными кодировщиками):libfdk_aac > aac > libfaac
знак> = означает больше или то же самое качественный."