MPEG-DASH
MPEG-DASH (от MPEG и англ. Dynamic Adaptive Streaming over HTTP) — технология адаптивной потоковой передачи данных, предоставляющая возможность доставки потокового мультимедиа-контента через Интернет по протоколу HTTP[1]. Является первым решением по потоковой передаче данных с адаптивным битрейтом, получившим статус международного стандарта[2][3].
Описание
Технология предусматривает разбиение контента на последовательность небольших файловых сегментов, каждый из которых содержит небольшой отрывок содержимого. Сам контент может создаваться в нескольких битрейтах, и клиенту DASH становятся доступными альтернативные сегменты, выравненные в одной временной шкале. По мере проигрывания, клиент автоматически выбирает следующий сегмент для скачивания и воспроизведения из доступных альтернатив исходя из условия работы сети. Клиент выбирает сегмент с наивысшим битрейтом, который возможно скачать и проиграть вовремя, без зависания и буферизации.
Технология использует существующую инфраструктуру веб-серверов HTTP, применяемую для доставки практически всего контента Всемирной паутины, это позволяет таким устройствам как настольные персональные компьютеры, смартфоны, планшеты, телевизоры с доступом в сеть потреблять мультимедийный контент (видео, радио, телевидение) с учётом переменных условий работы Интернета.
Спецификация предусматривает специальный формат для описания медиапотока (MPD, англ. media presentation description), в нём содержится информация о сегментах (временна́я шкала, URL, характеристики медиа, такие как разрешение и битрейт видео)[4]. Сегменты могут содержать любые медиаданные, однако спецификация подробно описывает два типа контейнеров: медиафайл ISO (например, формат файла MP4) и MPEG-2 Transport Stream.
Технология не зависит от используемых аудио- и видео-кодеков. Как правило, бывает доступно одно или несколько представлений мультимедиа-файлов (например, с разным разрешением или битрейтом) и выбор может быть сделан на основе состояния сети передачи данных, возможностей устройства или предпочтений пользователя, создавая, таким образом, условия для потоковой передачи с адаптивным битрейтом[5] и оптимальным качеством[6]. DASH также не зависит от протоколов прикладного уровня, таким образом, технология может использоваться поверх любого протокола, например CCN[7].
Стандартизация
Технология была разработана в рамках группы MPEG, работа была начата в 2010 году, в январе 2011 года получила статус драфта (черновика) международного стандарта и утверждена в качестве международного стандарта в ноябре 2011 года[2][8]. В апреле 2012 года стандарт MPEG-DASH опубликован с идентификатором ISO/IEC 23009-1:2012[9], в июле 2013 года одобрена вторая редакция стандарта, в которой были исправлены неточности и опечатки, также включившая поддержку сообщений о событиях и якоря медиапрезентаций, в декабре 2014 года вторая редакция стала общедоступной.
Стандарт основан на технологиях Adaptive HTTP streaming (описана в 9-м выпуске стандартов 3GPP) и HTTP Adaptive Streaming (HAS, из 2-го выпуска пакета стандартов Open IPTV Forum[10][11]. В рамках взаимодействия с MPEG, 10-й выпуск стандартов 3GPP принял DASH (со специфичными кодеками и режимами работы) для работы в беспроводных сетях[10]. Кроме того, технология DASH схожа с HLS (HTTP Live Streaming) от Apple, HDS (HTTP Dynamic Streaming) от Adobe и Smooth Streaming от Microsoft[уточнить].
В рабочую группу по разработке стандарта MPEG-DASH входят десятки представителей отрасли, среди них Microsoft, Adobe, Google, Sony, Netflix, Qualcomm, Ericsson, Samsung и другие компании[12].
Организация MPEG LA 27 июля 2015 года объявила о сборе патентов для создания единого патентного пула MPEG-DASH[13]
Практическая реализация
Для создания веб-плееров с поддержкой DASH разработаны и стандартизованы специальные расширения HTML5 — MSE (Media Source Extentions)[14], примером использования таких расширений служит открытый проект dash.js — JavaScript-проект[14].
Некоторые опробованные реализации серверных и клиентских решений, использующих DASH :
- Akamai CDN поддерживает DASH во всех режимах[15].
- Azure Media Services полностью поддерживают технологию DASH[16].
- Платформа Bitcodin от компании Bitcovin поддерживает создание потоков в MPEG-DASH на выходе[17].
- Плеер bitdash может проигрывать DASH в браузере как через HTML5 и JavaScript, так и через Flash для устаревших браузеров[18].
- DASHEncoder от ITEC поддерживает создание контента в MPEG-DASH[19][20].
- Мультимедийный фреймворк от GPAC group в Telecom ParisTech[21] и CastLabs поддерживает создание контента в MPEG-DASH.
- Поддержка DASH и SDK для создания плеера на Android (с 2.2 по 4.x) реализована в Helix Universal Server.
- Различные наборы данных DASH разработаны Институтом информационных технологий Клагенфуртского университета[20][22] группой GPAC в Telecom ParisTech[21] и в Digital TV Labs.[23]; кроме того, институтом предоставляется сервис проверки файлов описания медиапрезентации (MPD)[19], а также разработан плагин к VLC, позволяющий как вещать DASH, так и проигрывать его[19][24].
- Клиентская свободно распространяемая библиотека libdash[25] не зависит от платформы и может использоваться на платформах Android, iOS, Windows Phone и других.
- Модуль nginx-rtmp для Nginx позволяет выдавать контент MPEG-DASH в режиме живого потока, такой поток проигрывается модифицированным плеером dash.js, а также плеером bitdash[18].
- Nimble Streamer позволяет выдавать потоки MPEG-DASH в режиме VOD из MP4-файлов и живом режиме из RTMP[26].
- Path1 PiXiE Encoder выдаёт DASH потоки в живом режиме[27].
- Wowza Streaming Engine позволяет выдавать потоки DASH в разных режимах[28].
Примечания
- Overview of Dynamic Adaptive Streaming over HTTP (DASH)
- MPEG ratifies its draft standard for DASH, MPEG (2 декабря 2011). Архивировано 20 августа 2012 года. Дата обращения 26 августа 2012.
- MPEG-DASH 2nd Edition Specification (ISO/IEC 23009-1:2014)
- DASH Overview by C. Timmerer and C. Mueller
- 3GPP Dynamic Adaptive Streaming over HTTP — Standards and Design Principles Архивная копия от 5 августа 2016 на Wayback Machine by T. Stockhammer
- Google Scholar Citations
- Y. Liu, J. Geurts, J.-P. Point, S. Lederer, B. Rainer, C. Mueller, C. Timmerer and H. Hellwagner, «Dynamic Adaptive Streaming over CCN: A Caching and Overhead Analysis», In Proceedings of the IEEE International Conference on Communication (ICC) 2013 — Next-Generation Networking Symposium, Budapest, Hungary, June, 2013
- ISO/IEC DIS 23009-1.2 Dynamic adaptive streaming over HTTP (DASH)
- ISO/IEC 23009-1:2012
- ETSI 3GPP 3GPP TS 26.247; Transparent end-to-end packet-switched streaming service (PSS); Progressive Download and Dynamic Adaptive Streaming over HTTP (3GP-DASH)
- Open IPTV Forum Solution Specification Volume 2a — HTTP Adaptive Streaming V2.1 Архивировано 9 октября 2011 года.
- Current DASH-IF members
- Архивированная копия . Дата обращения: 28 июля 2015. Архивировано 7 августа 2015 года. MPEG LA Announces Call for Patents to Organize Joint License for MPEG-DASH
- HTML5 MSE
- April 08, 2014 - Akamai Announces Native MPEG-DASH and HDS Support for Live Video Workflows
- MPEG-DASH and streaming reference and resources (Windows)
- http://www.bitmovin.net/bitcodin-cloud-based-transcoding-streaming-platform/ bitcodin cloud service
- bitdash MPEG-DASH Player (недоступная ссылка). Дата обращения: 18 июля 2021. Архивировано 10 июля 2016 года.
- DASH at ITEC, VLC Plugin, DASHEncoder and Dataset by C. Mueller, S. Lederer, C. Timmerer
- S. Lederer, C. Mueller and C. Timmerer, «Dynamic Adaptive Streaming over HTTP Dataset», In Proceedings of the ACM Multimedia Systems Conference 2012, Chapel Hill, North Carolina, February 22-24, 2012.
- GPAC Telecom ParisTech
- S. Lederer, C. Mueller, C. Timmerer, C. Concolato, J. Le Feuvre and K. Fliegel, Distributed DASH Dataset, In Proceedings of the ACM Conference on Multimedia Systems (ACM MMSys) 2013, Oslo, Norway, 2013.
- MPEG DASH Test Suite (недоступная ссылка). Дата обращения: 11 декабря 2014. Архивировано 7 марта 2014 года.
- C. Müller and C. Timmerer, «A VLC Media Player Plugin enabling Dynamic Adaptive Streaming over HTTP», In Proceedings of the ACM Multimedia 2011 , Scottsdale, Arizona, November 28, 2011.
- libdash: Open-source DASH client library от bitmovin Gmbh
- MPEG-DASH in Nimble Streamer
- Path 1 MPEG-DASH AVC Live Profile Adaptive Bitrate Encoder | Path 1
- MPEG-DASH Support in Wowza Streaming Engine