Открыть сервис

Common Media Application Format

Common Media Application Format (CMAF) — это открытый стандарт медиаконтейнера и формат доставки мультимедийного контента, разработанный для унификации процессов кодирования, упаковки и распространения видео и аудио через интернет. Стандарт направлен на упрощение рабочих процессов в потоковом вещании (стриминге), позволяя создавать один файл, который может воспроизводиться как в системах с поддержкой протокола HTTP Live Streaming (HLS), так и в системах с поддержкой MPEG-DASH (Dynamic Adaptive Streaming over HTTP). CMAF был разработан организацией MPEG (Moving Picture Experts Group) и опубликован как международный стандарт ISO/IEC 23000-19.

История и предпосылки создания

До появления CMAF рынок потокового видео был фрагментирован. Основные конкурирующие технологии — HLS (разработан Apple) и MPEG-DASH (открытый стандарт) — использовали разные форматы сегментов и манифестов. Для доставки контента на все устройства (от iPhone до Smart TV) провайдерам приходилось хранить и обрабатывать два набора файлов, что увеличивало затраты на хранение, транскодирование и доставку. Это было особенно критично для прямых трансляций (live streaming), где время задержки и стоимость ресурсов имели первостепенное значение.

Работа над стандартом началась в 2014 году в рамках группы MPEG. Целью было создание единого формата, который бы абстрагировал логику упаковки от конкретного протокола доставки. В 2016 году был опубликован первый черновик, а в 2017 году стандарт был утверждён. Ключевую роль в разработке сыграли компании Microsoft, Apple, Google и Netflix, которые стремились снизить операционные издержки и улучшить пользовательский опыт. CMAF стал результатом компромисса: он базируется на контейнере ISO Base Media File Format (ISOBMFF), который лежит в основе как HLS (фрагменты .ts и .fmp4), так и MPEG-DASH (сегменты .mp4). Таким образом, CMAF использует формат фрагментированного MP4 (fMP4), который совместим с обоими протоколами.

Основные характеристики и архитектура

Контейнер и кодеки

CMAF использует контейнер ISOBMFF (ISO/IEC 14496-12), который является расширением формата QuickTime. Внутри контейнера могут быть упакованы различные кодеки:

  • Видео: AVC/H.264, HEVC/H.265, AV1, VP9.
  • Аудио: AAC, MP3, Opus, AC-3, E-AC-3, FLAC.
  • Субтитры: Timed Text (TTML), WebVTT, IMSC1.

Стандарт не определяет конкретные кодеки, а лишь задаёт правила их хранения и синхронизации.

Структура данных

Ключевое нововведение CMAF — это разделение контента на два уровня:

  1. CMAF Fragment (фрагмент): минимальная единица данных, которая может быть декодирована и воспроизведена независимо. Фрагмент содержит один или несколько полных GOP (Group of Pictures) — последовательностей кадров, начинающихся с ключевого кадра (I-frame). Длительность фрагмента обычно составляет от 0,5 до 6 секунд.
  2. CMAF Track (трек): последовательность фрагментов, представляющих один поток (видео, аудио, субтитры). Трек может быть упакован в один файл (Chunk) или разбит на несколько файлов.

Адаптивная битрейтная передача (ABR)

CMAF поддерживает адаптивную передачу (ABR), при которой один и тот же контент кодируется с разными битрейтами и разрешениями. Каждый вариант (representation) представляет собой отдельный трек. Плейлисты (манифесты) для HLS и MPEG-DASH указывают на одни и те же CMAF-файлы, но с разной логикой выбора сегментов. Это позволяет плееру на стороне клиента переключаться между битрейтами без разрыва воспроизведения.

Низкая задержка (Low-Latency)

Одним из главных преимуществ CMAF является возможность достижения очень низкой задержки (чтобы видео было близко к реальному времени). В традиционных HLS/DASH задержка составляла 10–30 секунд из-за необходимости накопления целых сегментов. CMAF, благодаря использованию фрагментов, позволяет серверу отправлять данные клиенту по мере их поступления, а не дожидаясь завершения всего сегмента. Это даёт задержку в 2–5 секунд, что сопоставимо с вещательными стандартами (например, через RTMP или HLS с CMAF). Для этого используется механизм Chunked Transfer Encoding (HTTP/1.1) или HTTP/2 Push.

Применение

Прямые трансляции (Live Streaming)

CMAF активно используется для прямых эфиров, особенно в спортивных и новостных трансляциях, где важна минимальная задержка. Платформы, такие как YouTube, Twitch и Facebook (организация признана экстремистской и запрещена в РФ), внедрили CMAF для снижения задержки и унификации кодирования. В России CMAF применяется крупными стриминговыми сервисами (например, «Кинопоиск», «VK Видео») для оптимизации доставки контента на мобильные устройства и Smart TV.

Видео по запросу (VOD)

Для VOD CMAF позволяет хранить один набор файлов, который обслуживает и HLS (для iOS, macOS), и MPEG-DASH (для Android, Windows, Smart TV). Это снижает затраты на хранение в CDN (Content Delivery Network) и упрощает управление контентом. Например, Netflix использует CMAF для доставки контента на все устройства, что позволило сократить количество копий файлов и ускорить внедрение новых кодеков.

Мультиэкранность и кросс-платформенность

CMAF решает проблему совместимости: один и тот же файл может быть воспроизведён на любом устройстве, поддерживающем HLS или MPEG-DASH. Это особенно важно для платформ, которые хотят охватить все сегменты аудитории без необходимости дублировать инфраструктуру.

Преимущества и недостатки

Преимущества

  • Экономия ресурсов: снижение затрат на хранение (до 50% по сравнению с хранением двух наборов файлов) и транскодирование.
  • Унификация: единый формат для всех протоколов доставки упрощает разработку и тестирование.
  • Низкая задержка: возможность достижения задержки менее 5 секунд для прямых эфиров.
  • Гибкость: поддержка широкого спектра кодеков и субтитров.
  • Совместимость: обратная совместимость с существующими HLS-плеерами (Apple) и DASH-плеерами (Google, Microsoft).

Недостатки

  • Сложность внедрения: требует модернизации серверного ПО (пакетировщиков, шифровальщиков) и CDN-инфраструктуры.
  • Ограниченная поддержка старых устройств: некоторые устаревшие плееры (например, на старых Smart TV) не поддерживают fMP4 и требуют традиционных .ts-сегментов HLS.
  • Зависимость от HTTP/2: для достижения максимальной производительности при низкой задержке требуется поддержка HTTP/2 на стороне сервера и клиента.
  • Сложность с DRM (Digital Rights Management): хотя CMAF поддерживает стандартное шифрование (Common Encryption, CENC), интеграция с конкретными системами DRM (например, Widevine, FairPlay) может быть нетривиальной.

Взаимодействие с другими стандартами

CMAF тесно связан с рядом других стандартов MPEG:

  • MPEG-DASH (ISO/IEC 23009-1): CMAF предоставляет формат сегментов, а DASH — протокол доставки и манифест (MPD).
  • HLS (IETF RFC 8216): CMAF-файлы могут быть использованы в HLS через плейлисты .m3u8, где сегменты указываются как .mp4-файлы.
  • CENC (Common Encryption, ISO/IEC 23001-7): стандарт для единого шифрования контента, который позволяет использовать один ключ для разных DRM-систем.
  • CMAF-CTE (Chunked Transfer Encoding): расширение для низкой задержки, описанное в отдельном документе MPEG.

Критика и перспективы

Критики CMAF отмечают, что стандарт не решает проблему фрагментации на уровне протоколов (HLS vs DASH) полностью, а лишь унифицирует формат данных. Плееры всё равно должны поддерживать оба протокола, хотя теперь они могут обрабатывать одинаковые файлы. Кроме того, внедрение CMAF требует значительных инвестиций в обновление ПО для кодирования и пакетирования.

Тем не менее, CMAF считается стандартом де-факто для современного потокового вещания. Его поддержка встроена во все основные облачные платформы (AWS Elemental MediaPackage, Azure Media Services, Google Cloud Media CDN) и в популярные плееры (ExoPlayer, AVPlayer, Shaka Player). В будущем ожидается дальнейшее развитие CMAF для поддержки новых кодеков (например, VVC/H.266) и улучшения механизмов низкой задержки.

Интересные факты

  • Разработка CMAF заняла около 3 лет, при этом в рабочей группе участвовало более 50 инженеров из разных компаний.
  • Название «Common Media Application Format» подчёркивает, что это не протокол, а формат приложения, то есть способ упаковки данных, который может использоваться в разных прикладных сценариях.
  • Первой крупной платформой, полностью перешедшей на CMAF, стала Netflix в 2018 году, что позволило компании сократить количество копий контента на 30–40%.

Источники

  • ISO/IEC 23000-19:2018 — Information technology — Multimedia application format (MPEG-A) — Part 19: Common Media Application Format (CMAF).
  • RFC 8216 — HTTP Live Streaming (HLS) — Apple Inc.
  • ISO/IEC 23009-1 — Dynamic Adaptive Streaming over HTTP (DASH).
  • «CMAF: A New Standard for Streaming» — статья на сайте Streaming Media Magazine, 2017.
  • «Apple and Microsoft Join Forces to Simplify Streaming with CMAF» — отчёт на сайте The Verge, 2016.
  • Документация AWS Elemental MediaPackage по CMAF.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →