MPEG-DASH

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

MPEG-DASH (от MPEG и англ. Dynamic Adaptive Streaming over HTTP) — технология адаптивной потоковой передачи данных, предоставляющая возможность доставки потокового мультимедиа-контента через Интернет по протоколу HTTP[1]. Является первым решением по потоковой передаче данных с адаптивным битрейтом, получившим статус международного стандарта[2][3].

Описание[править | править вики-текст]

Технология предусматривает разбиение контента на последовательность небольших файловых сегментов, каждый из которых содержит небольшой отрывок содержимого. Сам контент может создаваться в нескольких битрейтах, и клиенту DASH становятся доступными альтернативные сегменты, выравненные в одной временной шкале. По мере проигрывания, клиент автоматически выбирает следующий сегмент для скачивания и воспроизведения из доступных альтернатив исходя из условия работы сети. Клиент выбирает сегмент с наивысшим битрейтом, который возможно скачать и проиграть вовремя, без зависания и буферизации.

Технология использует существующую инфраструктуру веб-серверов HTTP, применяемую для доставки практически всего контента Всемирной паутины, это позволяет таким устройствам как настольные персональные компьютеры, смартфоны, планшеты, телевизоры с доступом в сеть потреблять мультимедийный контент (видео, радио, телевидение) с учётом переменных условий работы Интернета.

Спецификация предусматривает специальный формат для описания медиапотока (MPD, англ. media presentation description), в нём содержится информация о сегментах (временна́я шкала, URL, характеристики медиа, такие как разрешение и битрейт видео)[4]. Сегменты могут содержать любые медиаданные, однако спецификация подробно описывает два типа контейнеров: медиафайл ISO[en] (например, формат файла 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[en][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)
  2. 1 2 MPEG ratifies its draft standard for DASH, MPEG (2 декабря 2011). Архивировано 20 августа 2012 года. Проверено 26 августа 2012.
  3. DASH Overview by C. Timmerer and C. Mueller
  4. 3GPP Dynamic Adaptive Streaming over HTTP — Standards and Design Principles by T. Stockhammer
  5. Google Scholar Citations
  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
  7. ISO/IEC DIS 23009-1.2 Dynamic adaptive streaming over HTTP (DASH)
  8. ISO/IEC 23009-1:2012
  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
  11. Current DASH-IF members
  12. http://www.mpegla.com/Lists/MPEG%20LA%20News%20List/Attachments/96/n-15-07-27.pdf MPEG LA Announces Call for Patents to Organize Joint License for MPEG-DASH
  13. 1 2 HTML5 MSE
  14. April 08, 2014 - Akamai Announces Native MPEG-DASH and HDS Support for Live Video Workflows
  15. MPEG-DASH and streaming reference and resources (Windows)
  16. http://www.bitmovin.net/bitcodin-cloud-based-transcoding-streaming-platform/ bitcodin cloud service
  17. 1 2 bitdash MPEG-DASH Player
  18. 1 2 3 DASH at ITEC, VLC Plugin, DASHEncoder and Dataset 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.
  20. 1 2 GPAC Telecom ParisTech
  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.
  22. MPEG DASH Test Suite
  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.
  24. libdash: Open-source DASH client library от bitmovin Gmbh
  25. MPEG-DASH in Nimble Streamer
  26. Path 1 MPEG-DASH AVC Live Profile Adaptive Bitrate Encoder | Path 1
  27. MPEG-DASH Support in Wowza Streaming Engine

См. также[править | править вики-текст]

Ссылки[править | править вики-текст]