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) . Дата обращения: 11 декабря 2014. Архивировано 24 ноября 2020 года.
- ↑ 1 2 "MPEG ratifies its draft standard for DASH". MPEG. 2011-12-02. Архивировано из оригинала 20 августа 2012. Дата обращения: 26 августа 2012.
- ↑ MPEG-DASH 2nd Edition Specification (ISO/IEC 23009-1:2014) . Дата обращения: 15 декабря 2014. Архивировано 27 сентября 2020 года.
- ↑ DASH Overview Архивная копия от 6 декабря 2014 на Wayback Machine 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 . Дата обращения: 11 декабря 2014. Архивировано 17 декабря 2014 года.
- ↑ 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 . Дата обращения: 11 декабря 2014. Архивировано 6 февраля 2019 года.
- ↑ ISO/IEC DIS 23009-1.2 Dynamic adaptive streaming over HTTP (DASH) . Дата обращения: 11 декабря 2014. Архивировано 29 января 2017 года.
- ↑ ISO/IEC 23009-1:2012 . Дата обращения: 11 декабря 2014. Архивировано 26 августа 2020 года.
- ↑ 1 2 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 . Дата обращения: 11 декабря 2014. Архивировано 4 мая 2015 года.
- ↑ Архивированная копия . Дата обращения: 28 июля 2015. Архивировано 7 августа 2015 года. MPEG LA Announces Call for Patents to Organize Joint License for MPEG-DASH
- ↑ 1 2 HTML5 MSE . Дата обращения: 11 декабря 2014. Архивировано 23 марта 2019 года.
- ↑ April 08, 2014 - Akamai Announces Native MPEG-DASH and HDS Support for Live Video Workflows . Дата обращения: 11 декабря 2014. Архивировано 13 мая 2015 года.
- ↑ MPEG-DASH and streaming reference and resources (Windows) . Дата обращения: 11 декабря 2014. Архивировано 26 декабря 2014 года.
- ↑ http://www.bitmovin.net/bitcodin-cloud-based-transcoding-streaming-platform/ Архивная копия от 17 декабря 2014 на Wayback Machine bitcodin cloud service
- ↑ 1 2 bitdash MPEG-DASH Player . Дата обращения: 18 июля 2021. Архивировано из оригинала 10 июля 2016 года.
- ↑ 1 2 3 DASH at ITEC, VLC Plugin, DASHEncoder and Dataset Архивная копия от 7 января 2019 на Wayback Machine by C. Mueller, S. Lederer, C. Timmerer
- ↑ 1 2 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. Дата обращения: 11 декабря 2014. Архивировано 7 июля 2020 года.
- ↑ 1 2 GPAC Telecom ParisTech . Дата обращения: 11 декабря 2014. Архивировано 21 ноября 2016 года.
- ↑ 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. Дата обращения: 11 декабря 2014. Архивировано 6 февраля 2019 года.
- ↑ 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. Дата обращения: 11 декабря 2014. Архивировано 4 сентября 2020 года.
- ↑ libdash: Open-source DASH client library Архивная копия от 2 сентября 2013 на Wayback Machine от bitmovin Gmbh
- ↑ MPEG-DASH in Nimble Streamer . Дата обращения: 11 декабря 2014. Архивировано 22 сентября 2020 года.
- ↑ Path 1 MPEG-DASH AVC Live Profile Adaptive Bitrate Encoder | Path 1 . Дата обращения: 11 декабря 2014. Архивировано 26 декабря 2014 года.
- ↑ MPEG-DASH Support in Wowza Streaming Engine . Дата обращения: 11 декабря 2014. Архивировано 15 декабря 2014 года.