MPEG-DASH: различия между версиями
[непроверенная версия] | [отпатрулированная версия] |
Oleg4280 (обсуждение | вклад) iw |
Oleg4280 (обсуждение | вклад) →Практическая реализация: оформление |
||
Строка 21: | Строка 21: | ||
== Практическая реализация == |
== Практическая реализация == |
||
Для создания веб-плееров с поддержкой DASH разработаны и стандартизованы специальные расширения [[HTML5]] — MSE (''Media Source Extentions'')<ref name="mse">{{Cite web |url=https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html |title=HTML5 MSE |access-date=2014-12-11 |archive-date=2019-03-23 |archive-url=https://web.archive.org/web/20190323030223/https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html |deadlink=no }}</ref>, примером использования таких расширений служит [[Открытое программное обеспечение|открытый проект]] |
Для создания веб-плееров с поддержкой DASH разработаны и стандартизованы специальные расширения [[HTML5]] — MSE (''Media Source Extentions'')<ref name="mse">{{Cite web |url=https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html |title=HTML5 MSE |access-date=2014-12-11 |archive-date=2019-03-23 |archive-url=https://web.archive.org/web/20190323030223/https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html |deadlink=no }}</ref>, примером использования таких расширений служит [[Открытое программное обеспечение|открытый проект]] dash.js — JavaScript-проект<ref name="mse"/>. |
||
Некоторые опробованные реализации серверных и клиентских решений, использующих DASH <!--в идеале списки примеров должны базироваться на независимых от авторов этих |
Некоторые опробованные реализации серверных и клиентских решений, использующих DASH <!--в идеале списки примеров должны базироваться на независимых от авторов этих примеров источнике, и в совокупности рассматривающих предмет-->: |
||
* [[Akamai]] [[CDN]] поддерживает DASH во всех режимах<ref>{{Cite web |url=http://www.akamai.com/html/about/press/releases/2014/press-040814.html |title=April 08, 2014 - Akamai Announces Native MPEG-DASH and HDS Support for Live Video Workflows<!-- Заголовок добавлен ботом --> |access-date=2014-12-11 |archive-date=2015-05-13 |archive-url=https://web.archive.org/web/20150513024723/http://www.akamai.com/html/about/press/releases/2014/press-040814.html |deadlink=no }}</ref>. |
* [[Akamai]] [[CDN]] поддерживает DASH во всех режимах<ref>{{Cite web |url=http://www.akamai.com/html/about/press/releases/2014/press-040814.html |title=April 08, 2014 - Akamai Announces Native MPEG-DASH and HDS Support for Live Video Workflows<!-- Заголовок добавлен ботом --> |access-date=2014-12-11 |archive-date=2015-05-13 |archive-url=https://web.archive.org/web/20150513024723/http://www.akamai.com/html/about/press/releases/2014/press-040814.html |deadlink=no }}</ref>. |
||
* [[Microsoft Azure|Azure Media Services]] полностью поддерживают технологию DASH<ref>{{Cite web |url=http://msdn.microsoft.com/en-us/library/ie/dn551370(v=vs.85).aspx |title=MPEG-DASH and streaming reference and resources (Windows)<!-- Заголовок добавлен ботом --> |access-date=2014-12-11 |archive-date=2014-12-26 |archive-url=https://web.archive.org/web/20141226084553/http://msdn.microsoft.com/en-us/library/ie/dn551370(v=vs.85).aspx |deadlink=no }}</ref>. |
* [[Microsoft Azure|Azure Media Services]] полностью поддерживают технологию DASH<ref>{{Cite web |url=http://msdn.microsoft.com/en-us/library/ie/dn551370(v=vs.85).aspx |title=MPEG-DASH and streaming reference and resources (Windows)<!-- Заголовок добавлен ботом --> |access-date=2014-12-11 |archive-date=2014-12-26 |archive-url=https://web.archive.org/web/20141226084553/http://msdn.microsoft.com/en-us/library/ie/dn551370(v=vs.85).aspx |deadlink=no }}</ref>. |
Версия от 19:08, 6 июня 2022
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.
{{cite news}}
: Неизвестный параметр|deadurl=
игнорируется (|url-status=
предлагается) (справка) - ↑ 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 года.