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

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) для синхронизации.
  • Адаптационные наборы — группы представлений, которые могут быть переключены во время воспроизведения (например, разные разрешения одного видео).
  • Представления — отдельные потоки с конкретными параметрами (битрейт, разрешение, частота кадров).

Процесс воспроизведения

  1. Плеер загружает MPD-файл с сервера.
  2. Анализирует доступные представления и выбирает начальное качество (обычно среднее).
  3. Загружает первый сегмент выбранного представления.
  4. Во время воспроизведения плеер непрерывно мониторит скорость загрузки и буфер.
  5. Если скорость падает, плеер переключается на представление с меньшим битрейтом (downswitch); если скорость растёт — на более высокое (upswitch).
  6. Переключение происходит бесшовно, так как сегменты синхронизированы по времени.

Классификация и виды

MPEG-DASH поддерживает несколько режимов работы, которые определяются структурой MPD:

  • Live-потоки — контент генерируется в реальном времени (например, прямые эфиры). MPD обновляется динамически, добавляя новые сегменты.
  • VoD (Video on Demand) — предварительно записанный контент, доступный с начала до конца. MPD статичен.
  • Event-потоки — гибридный режим, когда в живой поток вставляются предварительно записанные фрагменты (например, рекламные вставки).

По способу доставки сегментов различают:

  • Static DASH — все сегменты доступны по постоянным URL (для VoD).
  • Dynamic DASH — URL сегментов генерируются на лету (для Live).

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

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

Недостатки

  • Задержка (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-DASHHLS (Apple)Smooth Streaming (Microsoft)RTMP (Adobe)
СтандартISO/IECПроприетарныйПроприетарныйПроприетарный
ПротоколHTTPHTTPHTTPRTMP (TCP)
КодекиЛюбыеH.264, H.265H.264, H.265H.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 →