>> |
No.194190
Файл: firexq - Mawaru Penguindrum - You Should Install L.webm -(4997 KB, 1280x720, firexq - Mawaru Penguindrum - You Should Install L.webm)
Сразу скажу ещё, что даже если бы скармливание итогов работы PySceneDetect во FFmpeg (в нашем примѣрѣ рѣчь идёт о значении параметра «-force_key_frames:v "00:00:02.280, 00:00:12.360, 00:00:23.160, 00:00:33.800, 00:00:43.800, 00:00:54.440, 00:01:04.520, 00:01:16.160, 00:01:26.560, 00:01:39.400, 00:01:51.400, 00:02:02.320"», но только безъ тѣхъ пробѣловъ, которые я тут расставил за запятыми для улучшения читаемости и переносимости на новую строку) не приносило собою двухпроцентного выигрыша по объёму файла и даже слегка наращивало бы этот объём, то и тогда использование PySceneDetect могло бы оказаться повадным, так как хорошая расстановка ключевых кадров в начале сцен обладает ещё тремя слѣдующими достоинствами:
① Не возникает «щелчок качества», то есть рѣзкій рост (или, рѣже, снижение) качества кадров «на ровном мѣстѣ» в середине сцены (на сáмомъ дѣлѣ — въ томъ мѣстѣ ея, на которое «случайно» пришёлся равнопромежуточный ключевой кадр) в силу того, что libsvtav1 любит экономить на качестве кадров во всём интервале между началом сцены и ключевым кадром (или наоборот), если этот интервал волею случая оказывается небольшим (не болѣе ≈десятка кадров).
② В видеопроигрывателе команды «перейти къ слѣдующему ключевому кадру» и «перейти к предыдующему ключевому кадру» перестают быть простым средством быстрого проматывания, приобретают дополнительный смысл «перейти къ слѣдующей сценѣ» и «показать сцену заново с сáмого её начала» (причём в точности «с начала», без появления лишних кадров перед её началом и без пропуска кадров попаданием позже её начала при навигации).
③ Как пересохранение ключевых кадров в AVIF без потерь, так и цитирование видеоматериала без потерь (совершаемое вырѣзаніемъ, всегда начинающимся от ключевого кадра) начинает в точности руководиться границами сцен, возможность срѣзать или прирѣзать лишние кадры почти исключается.
Я пишу «почти» потому, что примѣръ https://www.dailymotion.com/video/xm7oor состоит из очень небольших сцен весьма динамичной анимации, умаляя эти три достоинства: и «щелчок качества» не так видно в калейдоскопе визуальных впечатлений, и пожелания навигации и цитирования могут приводить к началу такой сцены, которая всё-таки окажется между ключевыми кадрами (так как окажется короче, чѣмъ та предѣльно малая длина, которая параметру «min-scene-len» была указана).
В конечном счёте при CRF 61 и нулевом пресете итог кодирования занимает 6 095 175 байтов и оттого не способен помѣститься на 410чанѣ.
Повысив CRF на единицу (до 62), при том же нулевом пресете получаю 5 157 539 байтов. Столь значительная (без малого мегабайтовая) реакция на единичное измѣненіе CRF может объясняться, по-видимому, единственно динамизмом содержимого видео. По сравнению с видеофайлом, к сообщению >>194106 приложенным, видим принесённую PySceneDetect экономию объёма; в практическом смысле она обеспечивает собою возможность помѣстить видео на 410чанѣ с указанием ему большего битрейта звука (62,30 kbps вмѣсто 54,89 kbps). И помѣщаю.
Во всё это время я испытывал изрядный соблазн не кодировать никакое видео AV1, по меньшей мѣрѣ, до второй половины понедѣльника, то есть дожидаться появления очередной еженедѣльной сборки FFmpeg, в которой движок libsvtav1 ужé содержал бы исправление ошибки (ранѣе в сообщении >>193934 упоминавшейся), замедляющей работу его под Windows. Подсчёты https://gitlab.com/AOMediaCodec/SVT-AV1/-/merge_requests/2016#note_1119896397 наглядно показывают, что эффект этой ошибки зависит от пресета, возрастая вмѣстѣ с качественностью кодирования видео, так что ≈троекратное (в 2,7 раза) замедление работы седьмого пресета оборачивается ≈шестикратным (в 6,1 раза) замедлением работы четвёртого пресета. Однако же, пренебрегая той тормознутостью, всё же и начал, и закончил всё дѣло ранѣе понедѣльника.
|