MPEG-DASH: различия между версиями
[отпатрулированная версия] | [отпатрулированная версия] |
Rubinbot (обсуждение | вклад) м бот: добавление заголовков в сноски; исправление двойных сносок, см. ЧаВо |
Rubinbot (обсуждение | вклад) м бот: добавление заголовков в сноски; исправление двойных сносок, см. ЧаВо |
||
Строка 21: | Строка 21: | ||
Некоторые опробованные реализации серверных и клиентских решений, использующих DASH <!--в идеале списки примеров должны базироваться на независимых от авторов этих примерах источнике, и в совокупности рассматривающих предмет-->: |
Некоторые опробованные реализации серверных и клиентских решений, использующих DASH <!--в идеале списки примеров должны базироваться на независимых от авторов этих примерах источнике, и в совокупности рассматривающих предмет-->: |
||
* [[Akamai]] [[CDN]] поддерживает DASH во всех режимах<ref>http://www.akamai.com/html/about/press/releases/2014/press-040814.html</ref>. |
* [[Akamai]] [[CDN]] поддерживает DASH во всех режимах<ref>[http://www.akamai.com/html/about/press/releases/2014/press-040814.html April 08, 2014 - Akamai Announces Native MPEG-DASH and HDS Support for Live Video Workflows<!-- Заголовок добавлен ботом -->]</ref>. |
||
* [[Microsoft Azure|Azure Media Services]] полностью поддерживают технологию DASH<ref>[http://msdn.microsoft.com/en-us/library/ie/dn551370(v=vs.85).aspx MPEG-DASH and streaming reference and resources (Windows)<!-- Заголовок добавлен ботом -->]</ref>. |
* [[Microsoft Azure|Azure Media Services]] полностью поддерживают технологию DASH<ref>[http://msdn.microsoft.com/en-us/library/ie/dn551370(v=vs.85).aspx MPEG-DASH and streaming reference and resources (Windows)<!-- Заголовок добавлен ботом -->]</ref>. |
||
* Платформа Bitcodin от компании Bitcovin поддерживает создание потоков в MPEG-DASH на выходе<ref>http://www.bitmovin.net/bitcodin-cloud-based-transcoding-streaming-platform/ bitcodin cloud service</ref>. |
* Платформа Bitcodin от компании Bitcovin поддерживает создание потоков в MPEG-DASH на выходе<ref>http://www.bitmovin.net/bitcodin-cloud-based-transcoding-streaming-platform/ bitcodin cloud service</ref>. |
Версия от 22:43, 3 апреля 2015
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].
Примечания
- ↑ Overview of Dynamic Adaptive Streaming over HTTP (DASH)
- ↑ 1 2 "MPEG ratifies its draft standard for DASH". MPEG. 2011-12-02. Дата обращения: 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 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
- ↑ 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
- ↑ Current DASH-IF members
- ↑ 1 2 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
- ↑ 1 2 bitdash MPEG-DASH Player
- ↑ 1 2 3 DASH at ITEC, VLC Plugin, DASHEncoder and Dataset 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.
- ↑ 1 2 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
- ↑ 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