MPEG-DASH

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Nickpo (обсуждение | вклад) в 13:59, 24 декабря 2014 (стилевые правки). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

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].

Практическая реализация

Для создания веб-плееров с поддержкой DASH разработаны и стандартизованы специальные расширения HTML5 — MSE (Media Source Extentions)[13], примером использования таких расширений служить открытый проект dash.js — JavaScript-проект[13].

Некоторые опробованные реализации серверных и клиентских решений, использующих DASH :

  • Akamai CDN поддерживает DASH во всех режимах[14].
  • Azure Media Services полностью поддерживают технологию DASH[15].
  • Платформа Bitcodin от компании Bitcovin поддерживает создание потоков в MPEG-DASH на выходе[16].
  • Плеер bitdash может проигрывать DASH в браузере как через HTML5 и JavaScript, так и через Flash для устаревших браузеров[17].
  • DASHEncoder от ITEC поддерживает создание контента в MPEG-DASH[18][19].
  • Мультимедийный фреймворк от GPAC group в Telecom ParisTech[20] и CastLabs поддерживает создание контента в MPEG-DASH.
  • Поддержка DASH и SDK для создания плеера на Android (с 2.2 по 4.x) реализована в Helix Universal Server.
  • Различные наборы данных DASH разработаны Институтом информационных технологий Клагенфуртского университета[19][21] группой GPAC в Telecom ParisTech[20] и в Digital TV Labs.[22]; кроме того, институтом предоставляется сервис проверки файлов описания медиапрезентации (MPD)[18], а также разработан плагин к VLC, позволяющий как вещать DASH, так и проигрывать его[18][23].
  • Клиентская свободно распространяемая библиотека libdash[24] не зависит от платформы и может использоваться на платформах Android, iOS, Windows Phone и других.
  • Модуль nginx-rtmp для Nginx позволяет выдавать контент MPEG-DASH в режиме живого потока, такой поток проигрывается модифицированным плеером dash.js, а также плеером bitdash[17].
  • Nimble Streamer позволяет выдавать потоки MPEG-DASH в режиме VOD из MP4-файлов и живом режиме из RTMP[25].
  • Path1 PiXiE Encoder выдаёт DASH потоки в живом режиме[26].
  • Wowza Streaming Engine позволяет выдавать потоки DASH в разных режимах[27].

Примечания

  1. Overview of Dynamic Adaptive Streaming over HTTP (DASH)
  2. 1 2 "MPEG ratifies its draft standard for DASH". MPEG. 2011-12-02. Дата обращения: 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. http://scholar.google.com/citations?view_op=view_citation&citation_for_view=ZDbuOE4AAAAJ:hqOjcs7Dif8C
  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. 1 2 HTML5 MSE
  13. http://www.akamai.com/html/about/press/releases/2014/press-040814.html
  14. http://msdn.microsoft.com/en-us/library/ie/dn551370(v=vs.85).aspx
  15. http://www.bitmovin.net/bitcodin-cloud-based-transcoding-streaming-platform/ bitcodin cloud service
  16. 1 2 bitdash MPEG-DASH Player
  17. 1 2 3 DASH at ITEC, VLC Plugin, DASHEncoder and Dataset by C. Mueller, S. Lederer, C. Timmerer
  18. 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.
  19. 1 2 GPAC Telecom ParisTech
  20. 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.
  21. MPEG DASH Test Suite
  22. 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.
  23. libdash: Open-source DASH client library от bitmovin Gmbh
  24. MPEG-DASH in Nimble Streamer
  25. http://path1.com/products/pixie-encoder
  26. MPEG-DASH Support in Wowza Streaming Engine

Ссылки