Мой собственный стандарт кодирования видео в формате HEVC

Стандарт этот является набором ключей для FFMPEG, вся суть в том что бы декодирования видео было максимально возможно-быстрым, при этом что бы использовались все возможности кодека HEVC.

Разработка этого "стандарта" длилась довольно долго, ведь мне пришлось изучить буквально все возможные ключи x265 и сделать тесты на каждом возможном параметре, и результатом стал следующий набор ключей:

-c:v libx265 -preset placebo -bf 5 -refs 4 -crf 26 -g 900 -x265-params "open-gop=1:me=star:rskip=0:tskip=0:scenecut=0:rc_lookahead=60:aq-mode=3:lookahead-slices=0:wpp=1:frame-threads=2:ctu=32:b-intra=1:qg-size=32:subme=7:qpstep=10:aq-mode=3:weightp=0:weightb=0:aq-strength=1.4:tu-intra-depth=4:tu-inter-depth=4:early-skip=1:rd=6:qcomp=0.7:rect=0:amp=0:psy-rd=0:rdoq=0:psy-rdoq=0:cbqpoffs=-2:crqpoffs=-4:min-cu-size=16:no-deblock=1:max-merge=5:merange=92"

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

Изначально я сделал его для кодироания просмотровых стримов в телеграм, и начал я разрабатывать от того, что некоторые мобильные устройства имеют проблемы при декодировании HEVC при обычном сжатии, то есть смартфоны не тянут тупо 1280x720 60fps, а ведь дело не только в самом разрешении, но и в том что конкретно находится в данный момент на экране, потому что скорость декодирования зависит от количества блоков на экране, и то совершает ли каждый блок движенеи, от того, если смартфон тянет воспроизведение 720p hevc, это не значит что видео не рассыпется в особо активной сцене - и именно это я и исправляю своим стандартом кодирования, что бы не было никаких проблем при воспроизведении видео, а так же полностью соблюдаю Main legacy так что любое устойство любого года выпуска, а hevc вышел в 2013 году, если имеет аппаратный старый декодер, полностью будет поддерживать декодирование, даже смартфоны 10 лет давности.


Но это я всё про стандарт, а ещё я сделал готовые bat файлы для кодирования в телеграм, нужно всего лишь разместить ffmpeg.exe в той же папке и дропнуть видео файл в сам bat файл. Будет выполнено масштабирование 1280x по больше стороне (1280x720 если входное видео 16:9) а звук будет перекодирован в opus 2.0 что отлично работает в телеграме, браузере, любом плеере, но может возникнуть проблемы на некоторых старых телевизорах. Любые модификации до 1080p/aac оставляю на ваше устромтрение

Скачать EASYHEVC.zip

В архиве 3 варината скрипта, первый и оригинальгный EASYHEVC.bat я всегда использую его, но возможно вам нужно сжать что-то сильнее на 20-30%, тогда используейте EASYHEVC-crf28.bat Ну а если у вас просто нету столько времени ждать сжатие или просто комп слабоват, то воспользуйтесь EASYHEVC-fast.bat

Скачать ffmpeg.exe (avx)

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