From: Sergey Matveev Date: Fri, 13 Jan 2023 05:11:36 +0000 (+0300) Subject: Поигрался с AV1 видеокодеком X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=07bddb0ed6a5d2276a10cf77b81e22da2d7c69e6;p=stargrave-blog.git Поигрался с AV1 видеокодеком https://netflixtechblog.com/svt-av1-an-open-source-av1-encoder-and-decoder-ad295d9b5ca2 https://gitlab.com/AOMediaCodec/SVT-AV1 https://code.videolan.org/videolan/dav1d Ибо говорили что конкретно этот кодировщик настолько быстр, что сопоставим с HEVC-ом становится. Ну что ж, попробовал. Сразу же упал, на попытке кодирования screencast-а, на том, что кодировщик поддерживает только 4:2:0, никаких 4:4:4. Дальше прямо в примере запуска --help указывается что CRF режим можно использовать в несколько проходов, но... меня тоже сразу же послали что они только для VBR режима. Сравнил с VP9 закодированным эпизодом Рика и Морти (960x540 8bpp), который делался в жирных медленных настройках, в два прохода с CRF=24, а это где-то полтора-два часа на 22мин эпизод. В AV1 указал такой же CRF (шкала у них одинаковая) и по умолчанию preset=10, который кодировал со скоростью на порядок выше чем real-time проигрывание. Плюс распараллелился на все ядра. Размер файла вышел побольше, качество чуть-чуть похуже, но это если всматриваться, не кардинально. Попробовал закодировать с preset=2. Это уже не всегда параллелилось на все ядра, скорость была где-то 3.5 FPS, но это всё равно существенно быстрее чем я пробовал с libaom, в котором у меня фильм бы месяц кодировался. Жрёт под два гигабайта памяти. В итоге: примерно за то же время кодирования, с куда большими возможностями по распараллеливанию, я получаю на 8% меньшего размера файл с ощутимо лучшим качеством картинки (почти не увидел ни одного артефакта вглядывась). В принципе, наверное несколько десятков процентов лучшего качества (или меньшего bitrate) действительно есть. SVT-AV1 прям делает этот кодек полностью юзабельным даже для real-time кодирования с отличным качеством. Прежде я думал что AV1 годен только с аппаратным ускорением. Декодирую я его используя VideoLAN-овский dav1d. Ни в SVT-AV1, ни в dav1d никаких Rust-ов, всё без проблем собирается, интегрируется с FFmpeg-ом. Пока не вижу причин не переходить на него. Весь последний сезон Рика и Морти вот как-раз надо будет перекодировать и там как-раз всем этим кодекам очень не сладко приходилось с этой почти синтетической графикой. ---