Почему кодирование H.265 в FFmpeg настолько эффективнее, чем в Adobe?

Почему кодирование H.265 в FFmpeg настолько эффективнее, чем в Adobe?

У меня есть 30-секундный видеофайл 1080p, который был отрендерен из Premiere Pro/Media Encoder (целевой битрейт 10) и закодирован в H.265. Он имеет размер 36,6 МБ. Когда я запускаю команду

ffmpeg -i input -c:v libx265 -c:a copy output.mp4

новый файл имеет только 5,04 МБ. mediainfoпоказывает, что новый файл имеет битрейт всего 1164 кбит/с. Несмотря на то, что один значительно меньше другого, оба видео выглядят одинаково (оба имеют оценку VMAF выше 97 по сравнению с несжатой версией).

Выбирает ли он libx265разумно битрейт и таким образом делает размер видео намного меньше?

решение1

Тыволяпотеряли данные при перекодировании независимо от воспринимаемого "качества". Это одно из мест, откуда произошло уменьшение размера. Незначительные или незаметные детали будут потеряны или аппроксимированы с помощью алгоритмов компрессора.

Однако основное различие будет в том, что Adobe и ffmpegимеют разные настройки качества и пропускной способности по умолчанию. То, что "оценка VMAF" выглядит похоже, просто говорит вам, что человек, вероятно, не увидит разницы, а не о том, сколько данных было потеряно.

ffmpegбудет декодировать кадры и перекодировать их, используя любые настройки по умолчанию. Скорее всего, настройки по умолчанию агрессивны и в соответствии сhttps://trac.ffmpeg.org/wiki/Encode/H.265по умолчанию будет использоваться mediumпрофиль качества.

Значение по умолчанию — среднее. Предустановка определяет эффективность сжатия и, следовательно, влияет на скорость кодирования. Допустимые предустановки: ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, и placebo. Используйте самую медленную предустановку, на которую у вас хватит терпения. Игнорируйте, placeboтак как она обеспечивает незначительную отдачу при значительном увеличении времени кодирования.

Более медленные настройки сжатия позволят точнее сохранить истинное исходное качество за счет увеличения размера файла и времени сжатия.

ffmpegтакже по умолчанию CRF равен 28, что будет довольно высоким относительным сжатием

Выберите CRF. CRF влияет на качество. Значение по умолчанию 28, и оно должно визуально соответствовать видео libx264 на CRF 23

Возможно даже, что ffmpegпо умолчанию включены некоторые более продвинутые функции сжатия. Adobe может отказаться от некоторых функций аппроксимации кодирования в пользу более высоких битрейтов, чтобы сократить время рендеринга или сохранить качество или другие функции. Трудно узнать, не зная точно, какие настройки используются.

Если вы хотите провести справедливое сравнение между Adobe и ffmpegвыходными данными, то вам следует выполнить рендеринг в несжатом формате, выяснить, какие именно настройки использует Adobe, а затем сжать его.несжатыйфайл в обоих случаях.

Повторное сжатие уже сжатого файла (декодирование и перекодирование) приведет кпотеря поколениячто, хотя это может показаться незначительным только на одном проходе, приведет к потере данных и качества. После нескольких проходов потеряволябыть значительным.

решение2

ВМАФне является хорошей метрикой для кодирования очень высокого качества. Даже сравнение математически идентичного контента иногда может дать вам оценку vmaf около 97,4, в то время как даже vmaf 100 не гарантирует визуальной прозрачности.

Это означает, что оценки VMAF практически ничего не говорят вам о качестве этих конкретных кодеков.

В то время лучшей визуальной метрикой, подходящей для почти прозрачного видео, была бы метрика неподвижного изображения, напримерБаттероглиили СИМУЛЯКРА.

Связанный контент