MPEG-DASH (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].

Примечания

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