Если, вдохновляясь этим графиком, мы запустим libaom из FFmpeg, то подобные >>178733 команды (но создающие AV1 и обращающиеся к файлу, на шаге >>178735 скачанному) будут выглядеть слѣдующимъ образом:
ffmpeg -hide_banner -i скачанныйФайл -pass 1 -sn -map_metadata -1 -crf 52 -b:v 0 -c:v libaom-av1 -pix_fmt yuv420p -g 480 -lag-in-frames 35 -cpu-used 5 -row-mt 1 -tiles 2x1 -threads 8 -strict experimental -an -f null NUL
ffmpeg -hide_banner -i скачанныйФайл -pass 2 -sn -map_metadata -1 -crf 52 -b:v 0 -c:v libaom-av1 -pix_fmt yuv420p -g 480 -lag-in-frames 35 -cpu-used 5 -row-mt 1 -tiles 2x1 -threads 8 -strict experimental -c:a libopus -b:a 64k -movflags +faststart -flags +cgop результат.mp4
Первый проход у меня на компé отрабатывает 30 кадров в секунду (в 5/3 раза быстрѣе, чѣмъ первый проход двухпроходного VP9).
Второй проход у меня на компé отрабатывает со скоростью 0,0429× (примѣрно 1 кадр в секунду), и это всего-навсего в 2,8 раза медленнѣе, чѣмъ VP9 в двухпроходном режиме. Не на порядок медленнѣе (как rav1e) и даже не на половину десятичного порядка. Понятно, что при таких затратах времени решение «качество однопроходного VP9 недостаточно? — попробуем двухпроходной VP9» и решение «качество двухпроходного VP9 всё ещё слишком мало? — попробуем AV1» выглядят качественно сопоставимыми по соотношению роста затрат и роста качества.
Общее время работы FFmpeg (общее время первого и второго прохода libaom) длится 23 минуты. Файл результата прилагаю.
По объёму файла нетрудно видеть (хотя и нѣсколько удивительно), что libaom, работая на пятой скорости в двухпроходном режиме, впихивает информацию в файл как раз настолько болѣе эффективно, чѣмъ двухпроходной VP9, что при равном (410чановском 5000-килобайтовом) ограничении объёма файла можно использовать совершенно то же значение CRF (равное 52), что и для однопроходного VP9 въ примѣрѣ >>178733 было — а не то дополнительно повышенное значение, которое въ примѣрѣ >>178734 было для двухпроходного VP9.
К сожалению, в отличие от rav1e, мы не можем напрямую задавать для libaom значение квантователя (libaom получает его значение, домножая CRF на 4 — но FFmpeg дѣлаетъ, по-видимому, совершенно бесполезною всякую попытку задавать не цѣлое, а дробное значение CRF, будь то «с половиною» или «с четвертью»), так что болѣе тѣсное приближение къ извѣстному предѣлу объёма файла этим способом не возможно.
Квантователь rav1e въ примѣрѣ >>178736 равен 157, и libaom мог бы работать с равным ему значением квантователя, если бы исходил из значения CRF, равного 39¼; но так как libaom нуждается в значительно большем значении CRF для того, чтобы итог работы вмѣстился в то же (410чановское) ограничение объёма, то мы можем с уверенностью считать алгоритмы libaom много болѣе жадными до байтов, чѣмъ rav1e при том же CRF. Это позволяет догадываться (и даже с преизрядною долею увѣренности) о том, что rav1e может невозбранно создавать файлы AV1 с настолько малыми битрейтами, на которые кодировщик libaom никогда не будет способным (потому что libaom уткнётся в своё предѣльно высшее значение CRF при попытке достичь таких битрейтов).
Сравнивая общее качество получившегося видеоролика AV1 съ тѣмъ, который прежде получался из rav1e, нетрудно отмѣтить въ цѣломъ равное или чуть болѣе высокое качество, однако двухпроходность сыграла с ним свою злую шутку, так что в парочке кратких сцен: младенец Рудеус хватается за родительский палец, юный Рудеус открывает книгу — мы видим контуры аниме болѣе смазанными, чѣмъ у rav1e. В конечном кадре ещё одной динамичной сцены (Рокси колдует под нависшими тучами, стремительно отдаляясь в поле зрения зрителя) libaom мало внимания уделил контрасту между волосами Рокси и тучами, тогда как у rav1e въ цѣломъ больше «ряби» артефактов сжатия в кадре, но тонкие контрасты чуть лучше поддерживаются.
⚠️ Правилами https://www.webmproject.org/docs/container/ не допускается видео AV1 в контейнере WebM. Но пагубная необходимость этого извращения сможет навсегда уйти в прошлое только тогда, когда (и если) предложение https://nowere.net/d/res/2178.html#5055 будет воплощено администрациею Nowere. Только тогда. Нисколько не раньше.