MPEG-DASH
MPEG-DASH (Dynamic Adaptive Streaming over HTTP) — это технология адаптивной потоковой передачи видео и аудио через протокол HTTP, стандартизированная Международной организацией по стандартизации (ISO) и Международной электротехнической комиссией (IEC) в рамках стандарта ISO/IEC 23009-1. DASH позволяет непрерывно воспроизводить медиаконтент в реальном времени, автоматически подстраивая качество потока под текущую пропускную способность сети и вычислительные возможности устройства пользователя. В отличие от проприетарных решений, таких как HLS (Apple) или Smooth Streaming (Microsoft), DASH является открытым стандартом, не привязанным к конкретному вендору.
История и развитие
Технология адаптивной потоковой передачи начала активно развиваться в середине 2000-х годов, когда рост популярности онлайн-видео (YouTube, Netflix) потребовал решений для стабильной доставки контента при нестабильных интернет-соединениях. Первые коммерческие системы, такие как Adobe Flash Dynamic Streaming (2007) и Microsoft Smooth Streaming (2008), были закрытыми и требовали специализированного ПО.
В 2009 году группа компаний, включая Microsoft, Netflix, Qualcomm и Ericsson, предложила стандартизировать подход на базе HTTP. Работа была передана в подкомитет MPEG (Moving Picture Experts Group). В 2012 году стандарт ISO/IEC 23009-1 был официально опубликован. Ключевым преимуществом DASH стала его независимость от кодеков и контейнеров: он поддерживает H.264/AVC, H.265/HEVC, VP9, AV1, а также аудиокодеки AAC, MP3, Opus.
В 2014 году DASH был принят в качестве базовой технологии для гибридного телевидения (HbbTV 2.0) и интернет-телевидения (IPTV). В России технология активно используется крупными видеосервисами, такими как «Кинопоиск», «Иви» и «Okko», а также в системах цифрового телевидения (например, «Триколор ТВ»).
Архитектура и принцип работы
MPEG-DASH основан на принципе разделения медиафайла на множество небольших сегментов (обычно длительностью от 2 до 10 секунд), каждый из которых закодирован с разным битрейтом и разрешением. Клиентское устройство (плеер) получает манифест-файл (Media Presentation Description, MPD), в котором описаны все доступные варианты (представления) контента.
Основные компоненты
- Media Presentation Description (MPD) — XML-документ, содержащий метаданные о контенте: список периодов, адаптационных наборов (аудио, видео, субтитры), представлений (битрейты, кодеки) и URL-адреса сегментов.
- Сегменты — фрагменты медиаданных в формате ISO Base Media File Format (ISOBMFF, обычно .mp4) или MPEG-2 Transport Stream (.ts). Каждый сегмент содержит один или несколько GOP (Group of Pictures) для синхронизации.
- Адаптационные наборы — группы представлений, которые могут быть переключены во время воспроизведения (например, разные разрешения одного видео).
- Представления — отдельные потоки с конкретными параметрами (битрейт, разрешение, частота кадров).
Процесс воспроизведения
- Плеер загружает MPD-файл с сервера.
- Анализирует доступные представления и выбирает начальное качество (обычно среднее).
- Загружает первый сегмент выбранного представления.
- Во время воспроизведения плеер непрерывно мониторит скорость загрузки и буфер.
- Если скорость падает, плеер переключается на представление с меньшим битрейтом (downswitch); если скорость растёт — на более высокое (upswitch).
- Переключение происходит бесшовно, так как сегменты синхронизированы по времени.
Классификация и виды
MPEG-DASH поддерживает несколько режимов работы, которые определяются структурой MPD:
- Live-потоки — контент генерируется в реальном времени (например, прямые эфиры). MPD обновляется динамически, добавляя новые сегменты.
- VoD (Video on Demand) — предварительно записанный контент, доступный с начала до конца. MPD статичен.
- Event-потоки — гибридный режим, когда в живой поток вставляются предварительно записанные фрагменты (например, рекламные вставки).
По способу доставки сегментов различают:
- Static DASH — все сегменты доступны по постоянным URL (для VoD).
- Dynamic DASH — URL сегментов генерируются на лету (для Live).
Преимущества и недостатки
Преимущества
- Открытость и стандартизация — не требует лицензирования, поддерживается любым сервером и плеером.
- Независимость от кодеков — можно использовать любые современные кодеки (H.265, AV1, VP9).
- Эффективное использование сети — адаптация под скорость соединения снижает буферизацию.
- Поддержка DRM — интеграция с системами защиты контента (Google Widevine, Microsoft PlayReady, Apple FairPlay).
- Масштабируемость — работает на стандартных HTTP-серверах (Apache, Nginx) и CDN.
Недостатки
- Задержка (latency) — из-за сегментации задержка в прямых эфирах составляет 3–10 секунд (против 1–2 секунд у RTMP или WebRTC).
- Сложность кодирования — требуется подготовка множества версий одного файла (до 10–15 вариантов битрейта).
- Зависимость от HTTP — при перегрузке сервера или потере пакетов возможны сбои (хотя TCP минимизирует потери).
Применение
MPEG-DASH широко используется в следующих областях:
- Видеосервисы и OTT (Over-the-Top) — Netflix, YouTube (частично), Amazon Prime Video, российские платформы («Кинопоиск», «Иви»).
- IPTV и гибридное телевидение — стандарт HbbTV (Европа), «Триколор ТВ» (Россия).
- Образовательные платформы — Coursera, Stepik, онлайн-курсы.
- Игры и стриминг — Twitch (использует HLS, но DASH применяется в некоторых клиентах).
- Медицинские системы — удалённая диагностика и телемедицина (требуют низкой задержки, но DASH используется для архивных записей).
Сравнение с другими технологиями
| Параметр | MPEG-DASH | HLS (Apple) | Smooth Streaming (Microsoft) | RTMP (Adobe) |
|---|---|---|---|---|
| Стандарт | ISO/IEC | Проприетарный | Проприетарный | Проприетарный |
| Протокол | HTTP | HTTP | HTTP | RTMP (TCP) |
| Кодеки | Любые | H.264, H.265 | H.264, H.265 | H.264 |
| Задержка | 3–10 с | 6–12 с | 3–8 с | 1–2 с |
| Поддержка DRM | Да | Да | Да | Ограниченно |
| Популярность в РФ | Высокая | Средняя | Низкая | Устаревшая |
Интересные факты
- Первая публичная демонстрация DASH состоялась в 2011 году на конференции IBC в Амстердаме.
- Стандарт DASH включает поддержку субтитров в форматах TTML и WebVTT.
- В России DASH активно применяется в системах цифрового вещания стандарта DVB-T2 (через HbbTV).
- Для тестирования DASH-потоков существует открытый инструмент dash.js от Google, который является эталонным плеером.
Критика
Основные претензии к MPEG-DASH связаны с его сложностью внедрения по сравнению с HLS. HLS, будучи проприетарным стандартом Apple, имеет более простую архитектуру (один файл .m3u8 для манифеста) и лучше поддерживается на устройствах Apple (iOS, macOS). Кроме того, DASH требует более сложной логики на стороне клиента для выбора представлений, что может приводить к ошибкам на слабых устройствах. В ответ на это сообщество разработчиков создало библиотеку dash.js, которая упрощает интеграцию.
Источники
- ISO/IEC 23009-1:2019 — Dynamic adaptive streaming over HTTP (DASH).
- MPEG-DASH: The Standard for Adaptive Streaming — IEEE Transactions on Broadcasting, 2013.
- Документация Google Web Fundamentals: Adaptive Streaming.
- Статья «Стандарт MPEG-DASH: принципы работы и применение» — журнал «Теле-Спутник», №5, 2020.
- Спецификация HbbTV 2.0.1 (ETSI TS 102 796).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →