Каковы различия между профилями H.264?

56

Я рендерил видео в After Effects CS5, и когда я форматировал его, я выбрал кодек H.264, и в этом формате у него был профиль Baseline, Main и High.

Поэтому я провел небольшой тест - рендеринг обоих файлов с помощью Baseline и High. Единственное, что я заметил, было то, что размер видео был меньше, чем High, тем меньше размер файла.

Я просто хотел знать, в чем разница, в которой будет лучше всего по качеству и лучше всего по размеру файла.

Джеймс
источник

Ответы:

79

Что такое профиль?

Профиль H.264 более или менее определяет, какие «навороты» кодер может использовать при сжатии вашего видео - и есть множество функций H.264, которые кодировщик может включить. Какие из них разрешено включать, определяется профилем. Профили обеспечивают совместимость между устройствами, которые имеют разные возможности декодирования. Что касается профилей, кодер и декодер согласовывают набор функций, который они оба могут обрабатывать.

Что делают разные профили?

Подробный список см. В разделе Профили H.264 в Википедии.

Как правило, базовый профиль ограничивает кодер только некоторыми базовыми функциями. Видео, закодированные с базовым профилем, можно легко воспроизводить даже на устройствах с меньшей вычислительной мощностью, таких как старые смартфоны. Например, телефоны Android и iOS официально воспроизводят только видео, закодированное с базовым профилем, но не High или Main . Это немного изменилось за последние годы, когда все больше и больше телефонов могут воспроизводить основное или громкое видео, но официальные рекомендации не упоминают об этом .

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

Main и High просто добавляют к этому новые функции. Особенно высокий профиль часто используется в вещании:

Основной профиль для приложений вещания и хранения дисков, особенно для телевизионных приложений высокой четкости (например, это профиль, принятый форматом хранения дисков Blu-ray и службой вещания DVB HDTV).

Например, срезы B разрешены только в главном профиле и выше. Их можно использовать для экономии пропускной способности, но их сложнее декодировать, поэтому некоторые устройства могут их не поддерживать.

Какое это имеет отношение к качеству?

Профиль только косвенно влияет на качество. Некоторые функции более высоких профилей могут позволить вам получить то же качество с меньшими размерами файлов по сравнению с более низкими профилями.

Например, энтропийное кодирование CABAC ( Main и High ) более эффективно, чем CAVLC ( Baseline ). Это также вычислительно более интенсивно. Таким образом, если вы предоставите кодировщику определенную скорость передачи в битах, он сможет создавать видео лучшего качества с CABAC, чем с CAVLC, поскольку он обеспечивает гораздо лучшее сжатие.

Это также объясняет, почему вы достигли меньшего размера файла с Высоким профилем - очевидно, вы каким-то образом установили постоянный уровень качества, и кодировщик мог бы использовать более продвинутые методы сжатия для создания видеофайла, который имеет то же качество, что и базовый профиль, но с меньшим размером размер.

Итак ... какой из них вы должны использовать?

Некоторые основные правила:

  • Базовый профиль, если вы ориентируетесь на старые мобильные устройства
  • Основной или высокий профиль, если вы ориентируетесь на веб-трансляцию, долгосрочное хранение, ПК или Mac, авторизацию Blu-ray и т. Д.
slhck
источник
8
Так как это было написано написано, почти все смартфоны, включая Android и другие устройства, теперь играют основной профиль, а многие играют высоко. Например, поддержка высокого профиля поддерживается большинством устройств, которые утверждают, что воспроизводят контент высокой четкости. Вы почти наверняка можете положиться на основной или выше. Базовая линия была сильно урезанной версией H. 264, разработанной для ограниченных устройств прошлых десятилетий.
Томасруттер
Не у всех есть недавний смартфон. Android по- прежнему рекомендует использовать базовый профиль . То же самое касается iOS . Конечно, некоторые (большинство новых) устройств поддерживают более высокие профили, но если вы хотите поддерживать совместимость с низкоуровневым оборудованием, вам придется выбрать именно это. Но я отредактировал свой ответ, чтобы отразить то, что вы говорите.
Slhck
Интересно - встроенный плеер некоторое время поддерживал меня, но ваша точка зрения верна - вы не можете полагаться на это. Вы можете, однако, полагаться на сторонние программные проигрыватели для основного и высокого профиля, например, такие проигрыватели, как MX Player, имеют программную поддержку для более высоких профилей - при условии, что они основаны на ARM и достаточно высокой производительности ЦП.
Томасруттер
Обратите внимание, что с 2016 года Google Photos при резервном копировании преобразует загруженные видео, которые были записаны на Android Nexus 6 в высоком профиле, в базовый профиль (в режиме резервного копирования «высокое качество» «бесплатное неограниченное хранилище»)
nealmcb
По-прежнему лучшая информация, которую я прочитал на ffmpeg в 2017 году. БОЛЬШОЙ ПОСТ.
typeoneerror