H.264 / AVC: рабочая лошадка интернета

Автор: Николай СапуновОбновлено: август 202636 мин чтения
Содержание статьи +

TL;DR

H.264, он же Advanced Video Coding (AVC) – видеокодек (от англ. coder-decoder, программа, сжимающая «сырое» видео в компактный файл и обратно преобразующая его в изображение), благодаря которому интернет стал видеосетью. Стандарт был совместно опубликован в мае 2003 года Международным союзом электросвязи (ITU-T) и Международной организацией по стандартизации (ISO/IEC MPEG) под двумя идентичными названиями: ITU-T H.264 и ISO/IEC 14496-10. За 23 года H.264 вошёл в Blu-ray Disc, первый iPhone, YouTube, Netflix, каждый браузер с поддержкой WebRTC, каждую современную камеру смартфона – и занимает около 79–80% всех профессиональных стриминговых пайплайнов, согласно восьмому Bitmovin Video Developer Report 2025. В 2026 году он остаётся универсальным базовым кодеком, к которому прибегают, когда не удаётся договориться по поводу HEVC, VP9 или AV1: единственный, который воспроизводится везде, кодируется любым способом – и наконец-то вот-вот выйдет из-под действия патентов в ноябре 2027 года.

Зачем это знать

H.264 будет присутствовать в каждом видеопродукте, который вы выпустите в 2026 году, даже если основным кодеком у вас станет AV1 или HEVC. Это обязательный видеокодек для WebRTC – поэтому любой браузерный продукт в реальном времени зависит от него ради кросс-вендорной совместимости. 1 Это профиль кодирования по умолчанию почти у любой камеры смартфона. Это резервный вариант в каждой адаптивной лестнице битрейта, ориентированной на старые телевизоры, set-top-боксы, бортовое ТВ, гостиничные системы и множество embedded-устройств. И в 2026 году это единственный кодек, поддерживаемый более чем на 98% десктопных и мобильных браузеров. 2 Понимание того, что такое H.264, где его границы и как его правильно кодировать, – это разница между стриминговым продуктом, который «вроде бы работает на большинстве устройств», и продуктом, который стабильно работает на каждом экране с нужным качеством и задержкой.

В этой статье разберём, что такое H.264, почему он стал «рабочей лошадкой» интернета, какие технические аспекты действительно стоит знать, как он соотносится с новыми кодеками в 2026 году, где до сих пор остаётся востребованным и как его правильно кодировать. Предварительные знания не требуются – каждый термин будет объяснён простыми словами до его использования. Если ещё не читали Краткую историю видеокодеков: от H.120 (1984) до AV2 (2025), там – общий контекст; эта статья – глубокий разбор единственного кодека, вокруг которого индустрия построила всю свою «сантехнику».

Что такое H.264 на самом деле

Кодек – это два компонента, объединённые в одно: энкодер, который берёт необработанные кадры и сжимает их в компактный файл, и декодер, выполняющий обратную операцию – восстанавливает изображение на экране. Само слово образовано от coder + decoder. H.264 – кодек, на котором интернет «сошёлся» в 2003–2010 годах, вытеснив более старый MPEG-2 (использовавшийся в телевидении с 1995 года) и проприетарные Sorenson Spark и VP6, которые Adobe Flash внедрил в браузеры в начале 2000-х. О MPEG-2 мы подробно рассказывали в статье MPEG-2: дедушка цифрового ТВ; H.264 – его прямой наследник, и по архитектуре они очень близки.

Стандарт публикуется под двумя названиями, потому что его разрабатывали две организации параллельно. Moving Picture Experts Group (MPEG) входит в состав ISO и IEC – двух консенсусных органов, разрабатывающих большинство мировых промышленных стандартов. Video Coding Experts Group (VCEG) действует в рамках сектора стандартизации телекоммуникаций ITU-T, агентства ООН по вопросам связи. В декабре 2001 года эти две группы создали Joint Video Team (JVT) специально для разработки H.264. Результат был опубликован как Recommendation ITU-T H.264 со стороны ITU и как ISO/IEC 14496-10 – часть 10 более широкого стандарта MPEG-4 – со стороны ISO. Тексты полностью идентичны. 3 4

Официальное полное название кодека – Advanced Video Coding, сокращённо AVC. В индустрии все три названия – H.264, AVC, MPEG-4 Part 10 – используются взаимозаменяемо, иногда даже в одном предложении. Это один и тот же стандарт.

JVT возглавляли Gary Sullivan (Microsoft), Thomas Wiegand (Fraunhofer HHI, Берлин) и Ajay Luthra (Motorola). 3 Целью было создать кодек, который удваивает эффективность MPEG-2 при том же качестве, работает на встраиваемых процессорах начала 2000-х годов и имеет простую лицензионную модель для потребительской электроники. Все три цели были достигнуты. Первая версия спецификации была одобрена ISO в марте 2003 года и ITU-T – в мае 2003 года. 3

Рис. 1. Хронология H.264. Стандарт был опубликован в 2003 году и за семь лет вытеснил все предыдущие кодеки на дисках, в мобильных устройствах, веб-видео и прямом эфире.

Краткая история: почему H.264 победил в интернете

К началу 2000-х в индустрии возникла серьёзная проблема. MPEG-2, представленный в 1995 году, отлично подходил для эфирного телевидения, но оказался неэффективным при скоростях домашнего интернета 2003 года: типичный американский DSL обеспечивал 1,5 Мбит/с, а для приличного качества изображения по MPEG-2 требовалось в три–четыре раза больше. Adobe Flash временно закрыл пробел с помощью проприетарных кодеков – Sorenson Spark, а затем VP6, которые сжимали данные лучше MPEG-2, но были привязаны к одному поставщику. На DVD-Video заканчивалась ёмкость для длинных фильмов, востребованных в домашних кинотеатрах, а будущий Blu-ray требовал кодека, способного уместить двухчасовой фильм в формате HD в 25 ГБ. Всем был нужен единый лицензируемый кодек, вдвое эффективнее MPEG-2, – и им стал H.264.

Первая волна внедрения – оптические диски. Blu-ray Disc Association в 2004 году включил H.264 в обязательный список кодеков наряду с MPEG-2 и VC-1, и с 2006 года все Blu-ray-плееры стали аппаратно декодировать H.264. Конкурирующий формат HD-DVD сделал тот же выбор. К моменту поражения HD-DVD в «войне форматов» в феврале 2008 года на рынке не осталось ни одного HD-плеера, который бы не поддерживал H.264.

Вторая волна – мобайл. Первый iPhone, вышедший 29 июня 2007 года, был оснащён аппаратным декодером H.264, встроенным в чип PortalPlayer / Samsung S5L8900. 5 Apple с самого начала сделала ставку на H.264: приложение YouTube на первом iPhone воспроизводило только видео в формате H.264, что вынудило Google за несколько месяцев перекодировать всю библиотеку YouTube с VP6/Flash на H.264. Все последующие поколения iPhone и остальные смартфоны, желающие поддерживать YouTube, пошли тем же путём. К 2010 году H.264 стал лингва-франка мобильного видео.

Третья волна – браузер. В августе 2010 года MPEG LA – патентный пул, администрировавший H.264 в то время, – объявил, что интернет-видео, бесплатное для конечного пользователя, никогда не потребует роялти по H.264 на всё время действия стандарта. 6 Это разблокировало YouTube, Vimeo, Brightcove и остальную web-видеоиндустрию от страха пер-стримового патентного счёта – и стало триггером для браузеров добавить декодирование H.264 в <video>-элемент. К 2013 году H.264 проигрывался в каждом крупном браузере: либо нативно, либо – в случае Firefox – через модуль Cisco OpenH264, бесплатный бинарник, который Cisco раздаёт за свой счёт, оплачивая пер-бинарный роялти MPEG LA за каждого пользователя Firefox на Земле. 7

Четвёртая волна – камера. С 2010 года каждая камера смартфона по умолчанию записывает видео в формате H.264 с расширением .mp4 или .mov, и то же касается потребительских и полупрофессиональных камер Canon, Sony, Panasonic, Nikon, GoPro и DJI. То, что вы загружаете на YouTube или в Instagram в 2026 году, ещё до выхода с устройства почти всегда уже закодировано в H.264.

Пятая волна – live-стриминг. Real-Time Messaging Protocol (RTMP), представленный Adobe в 2009 году, HTTP Live Streaming (HLS), который Apple внедрила вместе с iOS 3 в том же году, и Microsoft Smooth Streaming, предшественник MPEG-DASH – все они использовали H.264 в качестве основного видеокодека. Подробно о слоях протоколов – в статье Стриминг-протоколы: 8 главных в 2026; здесь же важно, что H.264 стал кодеком, под который проектировались стриминговые каналы, и спустя 20 лет это по-прежнему остаётся актуальным.

Этот пятиволновой охват – диски, мобильные устройства, браузеры, камеры, стриминг – и делает H.264 настоящей рабочей лошадкой интернета. Ни один другой кодек не был принят одновременно таким количеством уровней стека. В 2026 году он остаётся дефолтным кодеком, который большинство энкодеров используют по умолчанию, и единственным, который все современные устройства способны декодировать без дополнительных условий.

Как H.264 сжимает видео – на пальцах

H.264 – это гибридный блочный кодек, использующий ту же базовую архитектуру, что и MPEG-2, и в улучшенном виде применяемую – от H.265 до AV1. Полный разбор архитектуры см. в статье Архитектура гибридного видеокодека; ниже – краткая версия с конкретными решениями H.264.

Каждый кадр видео разбивается на квадраты пикселей – макроблоки размером 16 на 16 пикселей. Для каждого макроблока энкодер выполняет четыре шага по порядку.

Первый шаг – предсказание. Вместо кодирования сырых значений пикселей макроблока энкодер их предсказывает: либо по соседним пикселям того же кадра (intra-предсказание), либо по аналогичному фрагменту из предыдущего или будущего кадра (inter-предсказание, то есть motion-compensated prediction). Затем кодируется лишь небольшой residual – разница между предсказанием и реальным значением. Главный прогресс H.264 по сравнению с MPEG-2 – это направленное intra-предсказание: вместо однозначного использования предыдущего блока энкодер выбирает одно из девяти пространственных направлений (горизонтальное, вертикальное, диагональные и другие) и экстраполирует соседние пиксели вдоль выбранного направления. Для inter-предсказания H.264 добавил множественные опорные кадры – до 16 предыдущих, на которые может опираться энкодер (вместо одного у MPEG-2), а также четвертьпиксельные motion-векторы, позволяющие описывать движение в четыре раза точнее, чем в MPEG-2. Подробности – в Intra-frame coding: как сжимается один кадр и Inter-frame coding и motion estimation.

Второй шаг – преобразование. Residual проходит через небольшой целочисленный transform – упрощённую версию классического Discrete Cosine Transform (DCT), математической операции 1974 года, которая представляет фрагмент пикселей в виде списка частотных коэффициентов. Целочисленный вариант – инженерный приём, позволивший сделать H.264 портируемым между процессорами: MPEG-2 использовал числа с плавающей запятой, из-за чего возникали небольшие расхождения при округлении между разными реализациями энкодера и декодера, и стандарт был вынужден задавать допустимые погрешности. В H.264 же integer-transform обеспечивает битовую точность – любой совместимый декодер при одинаковом входе всегда выдаёт один и тот же результат. По умолчанию H.264 использует 4×4 integer-transform, а в профиле High – опционально 8×8 integer-transform. Подробности математики см. в Transform coding: DCT, ADST, integer transforms.

Третий шаг – квантование. Каждый коэффициент преобразования делится на шаг и округляется, а мелкие коэффициенты обнуляются. Именно здесь качество теряется окончательно – и именно здесь находится «ручка» качества энкодера: меньший шаг даёт больше деталей и больший файл, а больший шаг – меньше деталей и меньший файл. Подробности – в статье Quantization: где теряется качество.

Четвёртый шаг – энтропийное кодирование. Выжившие коэффициенты, режимы предсказания, motion-векторы и сигнализация residual записываются в bitstream одним из двух методов. Простой – Context-Adaptive Variable-Length Coding (CAVLC), при котором каждый символ кодируется с помощью таблицы, похожей на таблицу Хаффмана, а её содержимое адаптируется под контекст предыдущих символов. Более эффективный – Context-Adaptive Binary Arithmetic Coding (CABAC), при котором весь поток кодируется как одно дробное число, точность которого позволяет декодеру определить, какие символы были переданы. CABAC сжимает данные примерно на 10–15% эффективнее, чем CAVLC, но требует от декодера значительно больше вычислительных ресурсов. 8 CAVLC поддерживается всеми H.264-декодерами; CABAC – только в профилях Main, High и студийных. Подробности математики – в Entropy coding: краткое введение, специфика H.264 – в Entropy coding в деталях: CAVLC, CABAC, arithmetic coding.

Ещё три особенности H.264 стоит упомянуть даже на таком уровне обзора. In-loop deblocking filter работает внутри цикла декодирования – сразу после восстановления каждого макроблока – и сглаживает границы между блоками, где сильное квантование иначе оставило бы заметные «квадраты». Именно этот фильтр во многом отвечает за восприятие качества H.264 по сравнению с MPEG-2: у последнего in-loop фильтра нет, и при низких битрейтах проявляется выраженная «блочность». Развитие этой линии рассмотрено в статье In-loop filtering: deblocking, SAO, ALF, CDEF.

B-кадры (от англ. bidirectionally predicted frames) появились ещё в MPEG-2, но в H.264 их функционал был значительно расширен. B-кадр предсказывает пиксели как на основе предыдущего, так и на основе следующего кадра – это позволяет существенно снизить битрейт при медленных изменениях в кадре. Однако из-за этого декодер вынужден обрабатывать кадры не в порядке их отображения. Подробности – в GOP-структура: I, P, B-кадры, open/closed GOP.

Переменный размер блока – самый часто упоминаемый эффективный выигрыш H.264 над MPEG-2. Если в MPEG-2 размер любого motion-compensated блока был фиксирован и составлял 16×16 пикселей, то H.264 позволяет разбивать макроблок на прямоугольники размером до 4×4 – всего шестнадцать возможных вариантов. Энкодер выбирает оптимальное разбиение для каждого участка изображения: ровное небо остаётся единым блоком 16×16, а бегущий по кадру игрок разбивается на множество маленьких блоков 4×4, точно отслеживающих движение. Подробнее – в Block-based prediction: MB, CTU, SB и superblocks.

Рис. 2. Конвейер энкодера H.264. Архитектура та же, что у MPEG-2 – предсказать, преобразовать, квантовать, кодировать – но каждая стадия переделана ради примерно двукратного сжатия.

Профили и уровни: как один кодек работает с 50 сценариями

Спецификация вроде H.264 должна охватывать всё – от видеозвонка 176×144 на флип-телефоне 2003 года до 4K-мастера на бродкаст-станции 2026 года. Чтобы чипы для декодирования оставались доступными, стандарт разбивает свои функции на сетку профилей (Profiles) – то есть разрешённых кодировочных инструментов, – и уровней (Levels) – с ограничениями по разрешению, частоте кадров, битрейту и размеру буфера декодированных кадров. Декодер создают под конкретное сочетание Profile/Level, и энкодер должен работать в этих рамках. 3

H.264 определяет около двадцати профилей и семнадцати уровней. Однако реально массово применяемые комбинации – гораздо более короткий список.

ПрофильЧто добавляетГде реально отгружается
Constrained Baseline (CBP)Минимальное подмножество – I и P-кадры, CAVLC, без B-кадров, без CABAC, без чересстрочных инструментовОбязателен для WebRTC; первый iPhone; низкоуровневые видеозвонки
Baseline (BP)CBP + гибкое упорядочивание макроблоков, redundant slices для устойчивости к ошибкамРаннее мобильное видео, видеоконференции по lossy-сетям
Main (MP)B-кадры + CABAC + поддержка чересстрочной развёрткиПервое поколение HDTV-вещания, мобильное ТВ
Extended (XP)Streaming-инструменты устойчивости к ошибкамRealtime-стриминг; на практике редок
High (HiP)Все инструменты Main + 8×8 transform + 8×8 пространственное предсказание + кастомные матрицы квантованияДефолтный профиль для Blu-ray, HD-вещания, YouTube, Netflix, почти всего VOD
High 10 (Hi10P)High + 10-битные сэмплыAnime-fansubs, некоторые HDR-эксперименты до прихода HEVC
High 4:2:2 (Hi422P)High 10 + 4:2:2 chromaПрофессиональная бродкаст-контрибуция (Sony XDCAM 422, Panasonic AVC-Intra)
High 4:4:4 Predictive (Hi444PP)Hi422P + 4:4:4 chroma + 12-битные сэмплы + RGB + lossless-режимПрофессиональный пост-продакшен; редко стримится

Таблица 1. H.264-профили, с которыми реально столкнётесь в продуктовой работе. Полный стандарт также определяет ещё около десятка scalable- и multi-view-профилей (SVC, MVC), которые так и не вышли на массовый рынок.

Constrained Baseline Profile Level 1.2обязательный для реализации видеокодек в WebRTC: каждый браузер и каждый нативный WebRTC SDK обязаны его поддерживать, чтобы обеспечить кросс-вендорную совместимость, что закреплено в IETF RFC 7742. 1 Поэтому ваш браузерный звонок всегда может договориться о H.264, даже если с одной стороны – Safari на iOS, а с другой – Chrome на Linux. Подробнее об импликациях на уровне протокола – в статье WebRTC глубоко: SDP, ICE, STUN/TURN, SFU vs MCU.

High Profile – стандартный выбор для большинства задач. Когда YouTube перекодирует вашу загрузку, Netflix готовит серию к стримингу или вещатель принимает контентный фид, H.264-версия почти всегда использует профиль High на одном из старших уровней. Дополнительные возможности High – 8×8-трансформ и 8×8 intra-предсказание – увеличивают битрейт примерно на 5–10% при сохранении того же качества на типичном контенте. 9

Уровни добавляют второе измерение. Level 4.1 ограничивает разрешение 1920×1080 при 30 кадрах в секунду и битрейт 50 Мбит/с для High profile – это ровно предел Blu-ray, и так и было задумано. Level 5.1 поднимает потолок до 4096×2304 и до 240 Мбит/с – это 4K Blu-ray и 4K-камеры. Level 5.2 разрешает 4K при 60 кадрах в секунду. Level 6.2 допускает 8K при 120 кадрах в секунду, но на практике все, кто работает с 8K, уже перешли на HEVC или AV1.

Рис. 3. Матрица Profile × Level. Подсвеченные ячейки – реально массовые комбинации; белые – теоретически разрешённые спецификацией, но не нашедшие применения на рынке.

Арифметика битрейта для этих уровней проста. 90-минутный фильм при 8 Мбит/с, High Profile Level 4.1 займёт:

8 Мбит/с × 90 мин × 60 с = 43 200 Мбит итого
43 200 Мбит ÷ 8           = 5 400 МБ ≈ 5,27 ГБ

Поэтому однослойный Blu-ray на 25 ГБ легко вмещает длинный фильм, lossless-аудио и бонусы даже при высоких битрейтах H.264, а 1080p-стримы Netflix при скорости 4–8 Мбит/с выглядят именно так, как выглядят.

Эффективность сжатия: H.264 против последующих кодеков

Самый полезный показатель любого кодека – экономия битрейта: насколько меньше бит требуется новому кодеку, чтобы обеспечить ту же картинку. В 2003 году H.264 задал планку, сократив объём данных по сравнению с MPEG-2 вдвое при одинаковом качестве; с тех пор каждый новый кодек сравнивают именно с ним.

КодекГодБитрейт при том же качестве относительно H.264
MPEG-2 (H.262)1995≈ 200% (нужно в два раза больше бит)
H.264 / AVC2003baseline (100%)
H.265 / HEVC2013≈ 50%
VP92013≈ 55%
AV12018≈ 35%
H.266 / VVC2020≈ 25%

Таблица 2. Приблизительный битрейт при том же перцептивном качестве, выраженный долей от H.264. Лабораторные значения BD-rate; на практике экономия обычно составляет две трети или три четверти от заголовка. См. Сравнительную таблицу кодеков для полной картины.

Подставим числа, чтобы понять, что означают эти проценты. 1080p-стрим Netflix, который сегодня транслируется со скоростью 5 Мбит/с H.264, потребует:

  • 5,0 Мбит/с для H.264 (современный базовый уровень)
  • 2,5 Мбит/с для HEVC
  • 2,75 Мбит/с для VP9
  • 1,75 Мбит/с для AV1
  • 1,25 Мбит/с для VVC

Промышленные замеры Netflix совпадают с лабораторными данными. Платформа сообщает, что сессии в формате AV1 используют примерно на треть меньше трафика, чем аналогичные сессии в H.264, и сопровождаются на 45% меньшим количеством событий повторной буферизации, при этом перцептивная метрика VMAF – подробно описанная в Объективные метрики качества: PSNR, SSIM, MS-SSIM, VMAF – у AV1 выше на 4,3 балла при одинаковом битрейте. 10

Эти цифры объясняют, почему все крупные стримеры переносят контент с H.264 на HEVC или AV1 – везде, где плеер это поддерживает. И те же цифры объясняют, почему H.264 до сих пор остаётся в ходу: стрим, который должен воспроизводиться на смарт-ТВ 2013 года, в номере гостиницы или на корпоративном Cisco-эндпоинте, не имеет выбора, кроме H.264 – больше там ничего не декодируется. Подробный разбор компромиссов – в статье Как выбрать кодек для своего сервиса в 2026.

Где H.264 стоит в 2026: доля рынка, внедрение и реальность с несколькими кодеками

Bitmovin Video Developer Report 2025 – самое продолжительное в индустрии исследование профессиональных стриминговых воркфлоу. В восьмом издании, на момент написания статьи, H.264 используется в примерно 79–80% продакшен-развёртываний, H.265/HEVC – в 49%, AV1 – в 30% тех же воркфлоу (большинство продакшенов транслируют контент сразу в нескольких кодеках, поэтому проценты пересекаются). 2 Все остальные обзоры за текущий год, с которыми мы ознакомились, подтверждают общую картину: H.264 по-прежнему повсеместен, HEVC применяется примерно в половине профессиональных пайплайнов, а AV1 стремительно набирает популярность среди стримеров, инвестировавших в соответствующее энкодерное оборудование.

Поддержка в браузерах рассказывает ту же историю. По состоянию на май 2026 года H.264 воспроизводится в 99% установленных десктопных и 99,5% мобильных браузеров. 11 HEVC поддерживается примерно в 75% браузеров (Safari на всех платформах, Edge на Windows, Chrome на устройствах с аппаратным ускорением, но всё ещё отсутствует в Firefox без кодека уровня операционной системы). AV1 – примерно в 80% браузеров в 2026 году, против 50% двумя годами ранее, однако длинный хвост устаревших устройств остаётся за бортом.

Данные самого Netflix – самое чистое окно в то, где живёт современный стриминг. Netflix подтверждает, что AV1 теперь используется примерно в 30% всего стриминга, обогнав HEVC и став вторым по объёму кодеком после H.264. 10 Это значит, что H.264 в 2026 году всё ещё несёт большую часть трафика Netflix – поразительный показатель для кодека 23-летней давности, и это справедливо почти для каждой крупной стриминговой платформы. AV1 выиграл на переднем крае; H.264 удерживает длинный хвост.

Патентный ландшафт – вторая история, определяющая позицию H.264 в 2026 году. Патентный пул MPEG LA по H.264, объединившийся в апреле 2023 года с Via Licensing в новую организацию Via Licensing Alliance (Via LA), взимает роялти с устройств, использующих H.264-энкодеры и -декодеры. 12 В начале 2026 года Via LA тихо пересмотрела стриминговый лицензионный тариф для H.264, заменив прежнюю фиксированную ставку в 100 тыс. USD в год многоуровневой шкалой, где максимальная планка достигает 4,5 млн USD в год для крупнейших нелицензированных платформ, входящих в пул. 13 Это изменение распространяется только на новых лицензиатов, впервые запрашивающих H.264-стриминг-лицензию в 2026 году или позже, однако оно является самым явным экономическим сигналом того, что пул готовится к завершению жизненного цикла кодека – и любой новый проект должен тщательно оценить свою лицензионную экспозицию.

Последний американский патент H.264 в пуле Via LAUS 7 826 532 – истекает 29 ноября 2027 года. 14 После этой даты все патенты, которые пул сейчас администрирует, в США перестанут действовать, и H.264 станет royalty-free – так же, как MPEG-2 в 2018 году. В других юрисдикциях сроки свои, но именно американская дата – та, на которую ориентируются большинство продуктовых команд. До неё каждый коммерческий энкодер и декодер H.264, поставляемый в продукт для США, технически является лицензированной реализацией. AAC-аудио, которое почти всегда используется вместе с H.264, лицензируется отдельным пулом Via LA со своим календарём истечения.

Cisco OpenH264, выпущенный в 2013 году как полностью открытая реализация H.264, которую Cisco распространяет в виде готовых бинарников и за которую сама платит роялти MPEG LA. 7 Firefox использует cisco-бинарник в качестве реализации H.264 – поэтому он воспроизводит H.264-видео без использования кодеков на уровне операционной системы на всех платформах, поддерживаемых Cisco. После 29 ноября 2027 года Cisco прекратит платить эти роялти, и OpenH264 – как и любые другие свободные реализации – станет однозначно свободным программным обеспечением в США.

H.264 на практике: как кодировать правильно

Стандарт описывает, как декодеру интерпретировать bitstream, но не указывает, что должен делать энкодер. Каждый H.264-энкодер – это отдельный программный проект, и разница между лучшим и худшим может достигать трёхкратного превышения по битрейту при одинаковом качестве. В 2026 году важны три семейства энкодеров.

x264 – открытый программный энкодер, поддерживаемый проектом VideoLAN. С 2006 года он побеждает в ежегодном конкурсе MSU MPEG-4 AVC/ H.264 Video Codec Comparison 15 и используется в основе libx264 в FFmpeg, пресета H.264 в HandBrake, режима вывода «x264» в OBS Studio и H.264-транскодеров практически всех Linux-энкодеров. x264 считается эталоном качества, по которому оценивают все остальные H.264-энкодеры.

OpenH264 – открытый H.264-энкодер и декодер от Cisco, выпущенный в 2013 году, чтобы преодолеть патентный тупик, из-за которого Firefox долгое время не имел нативной поддержки H.264. 7 По качеству OpenH264 уступает x264 примерно на 10–15% при одинаковом битрейте, однако он используется внутри Firefox и остаётся популярным выбором для WebRTC-приложений в реальном времени благодаря настройкам с низкой задержкой. В Фора Софт мы применяем OpenH264 в нескольких своих WebRTC-продуктах именно по этой причине.

Аппаратные H.264-энкодеры есть в каждом десктопном GPU, в каждом мобильном чипе приложений, в каждом современном вещательном аппарате и в большинстве ноутбучных CPU. NVIDIA NVENC, AMD VCE / VCN, Intel Quick Sync Video, Apple VideoToolbox и длинный список ASIC-энкодеров от NETINT, Bitmovin и других жертвуют частью качества при том же битрейте ради скорости на порядок выше и значительно меньшей нагрузки на CPU. Исторически разрыв был настолько велик, что вещатели ещё в 2018 году отказывались использовать аппаратные энкодеры для доставки; к 2026 году он сократился до примерно 5–10% по сравнению с медленными пресетами x264 – что уже приемлемо почти в любом live-воркфлоу и во многих VOD. 16 Тонкости разбираем в Hardware-ускорение: GPU, VPU, ASIC.

Две самые важные настройки энкодера в любом H.264-пайплайне – это режим управления битрейтом (rate-control) и пресет (preset). Режим управления битрейтом определяет, как энкодер распределяет биты по видео: Constant Rate Factor (CRF) ориентирован на перцептивное качество и позволяет использовать любой битрейт, необходимый для его достижения; Variable Bitrate (VBR) ограничивает средний битрейт в заданном временном окне; Constant Bitrate (CBR) жёстко фиксирует битрейт – это важно для live-стриминга. Подробности – в статье Rate control: CBR, VBR, CRF, ABR, capped CRF.

Preset – это термин x264 для набора настроек скорости и качества; допустимые пресеты: ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, placebo. 15 Медленные пресеты используют более сложный анализ (меньшие размеры блоков, большее количество опорных кадров, больше проверок rate-distortion) и обеспечивают меньший размер файла при том же качестве – за счёт нагрузки на CPU.

Типичный VOD-энкод 1080p-источника выглядит примерно так:

# 1080p VOD высокого качества с CRF 21 и пресетом slow.
# Однопроходный файл, годный к участию в ABR-ладдере.
ffmpeg -i input.mov \
  -c:v libx264 -profile:v high -level 4.1 \
  -preset slow -crf 21 \
  -pix_fmt yuv420p \
  -c:a aac -b:a 128k \
  -movflags +faststart \
  output_1080p_h264.mp4

Live-энкод для стриминга с низкой задержкой требует изменения всего нескольких флагов:

# 720p low-latency live-энкод для RTMP- или WebRTC-ингеста.
# tune zerolatency выключает look-ahead и B-кадры ради субсекундной латентности.
ffmpeg -re -i input_live_source \
  -c:v libx264 -profile:v baseline -level 3.1 \
  -preset veryfast -tune zerolatency \
  -x264-params "keyint=60:min-keyint=60:scenecut=0" \
  -b:v 2500k -maxrate 2500k -bufsize 5000k \
  -c:a aac -b:a 96k -ar 44100 \
  -f flv rtmp://your.ingest.example/live/stream-key

Полный сборник рецептов, таблица профилей и уровней, а также FFmpeg-флаги для каждого режима управления битрейтом – в PDF-шпаргалке по H.264 / AVC, приложенной к этой статье.

Типичные ошибки на H.264

Ниже приведён краткий список ошибок, которые мы чаще всего встречаем при аудите чужих H.264-пайплайнов.

Таргетинг Baseline там, где нужен High. Удивительно, сколько продакшен-видео до сих пор кодируется в профиле Baseline или Main – обычно потому, что кто-то скопировал пресет 2009 года и с тех пор его не пересматривал. Профиль High поддерживается всеми устройствами, выпущенными примерно с 2008 года, и позволяет сэкономить 5–10% битрейта при том же качестве. Используйте High, если только нет веской причины (обычно – обязательная поддержка WebRTC или известный устаревший эндпоинт) для отката. 9

Кодирование не на том уровне. 1080p-файл, закодированный в Level 4.0 вместо 4.1, может быть отклонён некоторыми Blu-ray-авторингами и старыми смарт-ТВ. 4K-файл в Level 5.1 вместо 5.2 ограничивает частоту кадров до 30 fps, даже если исходник – 60: энкодер молча отбрасывает половину кадров. Подбирайте уровень кодирования под разрешение и частоту кадров, а не ориентируйтесь на устаревшие значения по умолчанию.

Забыли -pix_fmt yuv420p. libx264 в FFmpeg по умолчанию использует тот же формат хроминансной подвыборки, что и у исходного видео – иногда это yuv422p или yuv444p. Большинство потребительских плееров и практически все аппаратные декодеры поддерживают только yuv420p. Указание -pix_fmt yuv420p при каждом пользовательском кодировании помогает избежать жалоб вроде «видео проигрывается на Mac, но не на смарт-ТВ».

Забыли +faststart. Без флага -movflags +faststart FFmpeg записывает MP4 moov atom – оглавление файла – в конец. Браузер не может начать воспроизведение, пока не скачает этот атом, то есть загружает файл целиком. Флаг +faststart переставляет moov-атом в начало файла, и прогрессивное воспроизведение работает. Подробности о внутреннем устройстве контейнеров – в Контейнеры: MP4, fMP4, MKV, WebM, MOV, MPEG-TS.

-tune zerolatency для VOD. Тюн zerolatency разработан специально для live-энкодинга: он отключает look-ahead, B-кадры и уменьшает длину GOP. Применение его при кодировании VOD снижает эффективность на 15–20% ради латентности, которая в этом случае не нужна. Для VOD лучше использовать -tune film, -tune animation или вообще обойтись без тюна.

Путаница H.264 с H.264. Один и тот же стандарт известен под тремя названиями – H.264, AVC, MPEG-4 Part 10 – и в трёх семействах брендов (Apple, Microsoft, Adobe) он получил разные подимена. «H.264 Baseline» в одном инструменте – это «AVC Baseline» в другом и «MPEG-4 AVC, Constrained Baseline» в третьем. Это одно и то же. Самая частая путаница – между более старым MPEG-4 Part 2 (известным как «MPEG-4» и используемым внутри DivX и Xvid) и более новым MPEG-4 Part 10 / H.264 / AVC. Это разные кодеки, и они несовместимы друг с другом.

Где здесь Фора Софт

Мы отгружаем H.264-решения с момента выхода стандарта в коммерческое использование в 2007 году. В видеоконференциях и WebRTC-продуктах мы используем H.264 Constrained Baseline ради совместимости с любым устройством, которое может принести пользователь; в видеостриминге и OTT/Internet TV основной поток клиентских библиотек кодируется в High Profile, а рядом – ладдер AV1/HEVC для устройств с поддержкой этих кодеков. Системы видеонаблюдения, которые мы разрабатывали для интеграторов безопасности, передают H.264 по RTSP в рекордер и H.264 по WebRTC в live-плеер в рамках одного и того же пайплайна. E-learning и телемедицинские продукты, как правило, multi-codec, и H.264 – это кодек, с помощью которого мы гарантируем воспроизведение на закрытых устройствах учреждений. AR/VR-проекты в основном используют HEVC и AV1 из-за пропускной способности, но H.264-резервная версия всё равно входит в ладдер. Паттерн везде один: H.264 – это кодек, который мы применяем, когда важнее, чтобы «работало», чем чтобы «экономило байты».

Рис. 4. Битрейт при одинаковом перцептивном качестве, индекс H.264 = 100%. Лабораторные BD-rate; в продакшене разрывы меньше.

Ключевые тезисы

  • H.264 / AVC был опубликован ITU-T и ISO/IEC MPEG в мае 2003 года как единый документ под двумя названиями: ITU-T H.264 и ISO/IEC 14496-10.
  • В 2026 году он всё ещё используется в 79–80% профессиональных стриминговых рабочих процессов и остаётся единственным кодеком, поддерживаемым более чем в 98% всех браузеров.
  • Профиль Constrained Baseline обязателен для WebRTC согласно IETF RFC 7742; профиль High – стандартный по умолчанию во всех основных областях, включая Blu-ray, телевидение высокой чёткости и почти весь VOD-контент.
  • H.264 требует примерно вдвое большего битрейта по сравнению с HEVC и втрое – по сравнению с AV1 для достижения того же качества – это плата за универсальную совместимость.
  • Кодек x264 побеждает в MSU-конкурсе с 2006 года и остаётся эталоном качества; аппаратные энкодеры сейчас уступают ему всего на 5–10% при одинаковом битрейте.
  • Последний американский патент H.264 в пуле Via LA истекает 29 ноября 2027 года, после чего кодек станет royalty-free в США, как это произошло с MPEG-2 в 2018 году.

Что почитать дальше

Источники

  1. IETF RFC 7742, WebRTC Video Processing and Codec Requirements, March 2016. https://datatracker.ietf.org/doc/html/rfc7742 – H.264 Constrained Baseline Profile Level 1.2 – mandatory-to-implement для WebRTC.
  2. Bitmovin, Video Developer Report 2025, обобщено Streaming Media и KitPlus, февраль 2025. https://www.streamingmedia.com/Articles/ReadArticle.aspx?ArticleID=143193 – H.264 ≈ 79–80% профессиональных воркфлоу; HEVC ≈ 49%; AV1 ≈ 30%.
  3. Advanced Video Coding, Wikipedia, accessed 2026-05-16. https://en.wikipedia.org/wiki/Advanced_Video_Coding – JVT сформирован в декабре 2001, первая версия одобрена в марте 2003 (ISO) и мае 2003 (ITU-T), JVT возглавляли Sullivan, Wiegand, Luthra.
  4. ITU-T Study Group 16, Joint Video Team, accessed 2026-05-16. https://www.itu.int/en/ITU-T/studygroups/com16/video/Pages/jvt.aspx
  5. H.264, Apple Wiki, accessed 2026-05-16. https://apple.fandom.com/wiki/H.264 – первый iPhone был с аппаратным декодером H.264; Apple агрессивно стандартизировала H.264 в iTunes, iPod, iPhone, iPad.
  6. Apple-supported H.264 standard gains free license for Internet video use, AppleInsider, 26 August 2010. https://appleinsider.com/articles/10/08/26/apple_supported_h_264_standard_gains_free_license_for_internet_video_use – MPEG LA анонсирует бессрочный отказ от роялти за интернет-видео, бесплатное для конечного пользователя.
  7. Cisco's OpenH264 Now Part of Firefox, Cisco Blogs, 2013. https://blogs.cisco.com/collaboration/ciscos-openh264-now-part-of-firefox – Cisco раздаёт бинарник OpenH264, оплачивая роялти MPEG LA пер-бинарно за каждого пользователя.
  8. Context-adaptive binary arithmetic coding, Wikipedia, accessed 2026-05-16. https://en.wikipedia.org/wiki/Context-adaptive_binary_arithmetic_coding – CABAC жмёт на 10–15% лучше CAVLC ценой большей работы декодера; доступен только в Main и старше.
  9. MPEG-4 AVC / H.264, ITU-T Workshop on End-to-End Quality of Service, May 2006 (Ajay Luthra). https://www.itu.int/ITU-T/worksem/h325/200605/presentations/s3p1-luthra.pdf – 8×8-transform и 8×8 intra-prediction High Profile дают ≈ 5–10% дополнительной экономии против Main.
  10. Decoding Netflix's AV1 Streams, Kay Singh (анализ публичных данных Netflix), accessed 2026-05-16. https://singhkays.com/blog/netflix-av1-decode/ – AV1 ≈ 30% стриминга Netflix; AV1-сессии используют на ⅓ меньше трафика, чем H.264, на 45% меньше rebuffering, +4,3 VMAF к H.264 при том же битрейте.
  11. Can I use… MPEG-4 / H.264 video format, caniuse.com, accessed 2026-05-16. https://caniuse.com/#feat=mpeg4 – Выше 98% поддержка в десктопных и мобильных браузерах в 2026.
  12. Via Licensing and MPEG LA Unite to Form Via Licensing Alliance, Via LA, апрель 2023. https://www.via-la.com/via-licensing-and-mpeg-la/ – MPEG LA вошла в Via LA в апреле 2023; пул H.264 продолжается под новым администратором.
  13. Firm quietly boosts H.264 streaming license fees from $100,000 up to staggering $4.5 million, Tom's Hardware, 2026. https://www.tomshardware.com/service-providers/streaming/h264-streaming-license-fees-jump-from-100000-to-4-5-million – Via LA в 2026 заменяет плоский потолок 100 тыс. USD многоуровневым тарифом до 4,5 млн USD/год для самых крупных новых лицензиатов.
  14. US Patent Expiration for MP3, MPEG-2, H.264, OSnews. https://www.osnews.com/story/24954/us-patent-expiration-for-mp3-mpeg-2-h264/ – последний H.264-патент в пуле MPEG LA / Via LA, US 7 826 532, истекает 29 ноября 2027.
  15. Lighterra: Video Encoding Settings for H.264 Excellence. https://www.lighterra.com/papers/videoencodingh264/ – x264 выигрывает MSU MPEG-4 AVC/H.264 Codec Comparison ежегодно с 2006; справочник по пресетам и rate-control.
  16. Hardware vs Software Live Streaming Encoders, Wowza. https://www.wowza.com/blog/hardware-vs-software-live-streaming-encoders – аппаратные H.264-энкодеры исторически отставали; к 2024–2026 разрыв сократился до ~5–10% против медленных пресетов x264.

Строите такую систему?

Подберём параметры кодирования под ваш контент и посчитаем стоимость доставки до старта разработки.