Dynamic Adaptive Streaming over HTTP
Dynamic Adaptive Streaming over HTTP (DASH), auch bekannt als MPEG-DASH, ermöglicht qualitativ hochwertiges Streaming von Medieninhalten über das Internet durch herkömmliche HTTP-Webserver.
Funktionsweise[Bearbeiten]
Ähnlich Apples Lösung, dem HTTP Live Streaming (HLS), funktioniert MPEG-DASH, indem die Inhalte in eine Folge kleiner HTTP-basierter Datei-Segmente zerlegt werden, wobei jedes Segment einen kurzen Abschnitt der Gesamtspielzeit eines Medienobjektes von potenziell mehreren Stunden Dauer enthält, etwa eines Films oder der Live-Übertragung eines Sport-Ereignisses. Die Inhalte werden in einer Auswahl verschiedener Bitraten vorgehalten, also alternative, inhaltlich übereinstimmende Abschnitte, die mit unterschiedlichen Bitraten kodiert sind. Wenn Inhalte von einem MPEG-DASH-Client wiedergegeben werden, wählt dieser für den nächsten Abschnitt aus den angebotenen Alternativen automatisch die für die derzeitigen Verbindungsbedingungen passende aus. Der Client wählt das Segment mit der höchstmöglichen Bitrate aus, das in der verfügbaren Zeit bis zur Wiedergabe übertragen werden kann, ohne dass die Wiedergabe stockt und erst wieder gepuffert werden muss. Dadurch kann sich ein DASH-Client nahtlos an veränderliche Netzwerkbedingungen anpassen und hochwertige, flüssige Wiedergabe gewährleisten.
MPEG-DASH ist die erste Bitraten-adaptive HTTP-basierte Streaming-Lösung, die ein internationaler Standard wurde.<ref name="MPEGPressRelease" />
MPEG-DASH setzt die weit verbreitete HTTP-Webserver-Infrastruktur ein, die zur Auslieferung von Internet-Inhalten jeglicher Art im Einsatz ist. Es ermöglicht Geräten wie Fernsehern mit Internetzugang, TV-Beistellgeräten, Desktop-Rechnern, Smartphones, Tablet-Rechnern den Zugriff auf per Internet gelieferte Multimedia-Inhalte (Video, TV, Radio) und dabei dank der adaptiven Streaming-Technik mit veränderlichen Empfangsbedingungen zurechtzukommen. Das Standardisieren einer Lösung für adaptives Streaming soll auf dem Markt für Vertrauen in die universelle Einsetzbarkeit sorgen, gegenüber ähnlichen, stärker anbieter-abhängigen Lösungen wie HLS von Apple, Smooth Streaming von Microsoft oder HDS von Adobe.
Standardisierung[Bearbeiten]
DASH wurde von der MPEG entwickelt. Die Arbeit an DASH begann 2010, und im Januar 2011 wurde es offizieller Entwurf für einen internationalen Standard, der im November 2011 als Standard verabschiedet wurde.<ref name="MPEGPressRelease" /><ref name="timmerer-1" /> Der DASH-Standard wurde im April 2012 als ISO/IEC 23009-1:2012 veröffentlicht.<ref name="iso" />
DASH ist technisch verwandt mit Adobes HTTP Dynamic Streaming, Apples HTTP Live Streaming (HLS) und Microsofts Smooth Streaming.<ref name="timmerer-2" /> DASH basiert auf Adaptive HTTP streaming (AHS) aus 3GPP Release 9 und auf HTTP Adaptive Streaming (HAS) aus dem Open IPTV Forum Release 2.<ref name="3GPP" /><ref name="oipf" /> Als Teil ihrer Zusammenarbeit mit MPEG übernahm 3GPP Release 10 DASH (mit bestimmten Codecs und Betriebs-Modi) für die Nutzung über drahtlose Netzwerke.<ref name="3GPP" />
Überblick[Bearbeiten]
DASH ist eine Technik für Bitraten-adaptives Streaming, bei der eine Multimedia-Datei in ein oder mehrere Segmente aufgeteilt ist und über HTTP an einen Client geliefert wird.<ref name=":0">Thomas Stockhammer: Dynamic Adaptive Streaming over HTTP – Design Principles and Standards. W3C, abgerufen am 3. Mai 2024 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> Eine Media Presentation Description (MPD) beschreibt Segment-Informationen (Zeitablauf, URL, Medieneigenschaften wie Video-Auflösung und Bitraten).<ref>Christian Timmerer, Christopher Müller: Dynamic Adaptive Streaming over HTTP (DASH). In: Slideshare. 2. Mai 2011, S. 11, abgerufen am 3. Mai 2024.</ref> Segmente können beliebige Mediendaten enthalten, wobei die Spezifikation bestimmte Empfehlungen und Formate für die Nutzung mit zwei Arten von Container-Formaten angibt, dem MPEG-4 Dateiformat oder MPEG-2-Transportstrom.<ref name="timmerer-2" />
DASH ist (Audio-/Video-)Codec-agnostisch. Multimedia-Dateien sind typischerweise in mehreren Repräsentationen verfügbar (also Versionen mit unterschiedlichen Auflösungen oder Bitraten). Anhand von Verbindungssituation, Gerätefähigkeiten und Benutzereinstellungen kann eine Auswahl vorgenommen werden, wodurch Bitraten-adaptives Streaming<ref name=":0" /> und Quality of Experience (QoE)-Fairness erreicht werden.<ref>Panagiotis Georgopoulos, Yehia Elkhatib, Matthew Broadbent, Mu Mu, Nicholas Race: Towards network-wide QoE fairness using openflow-assisted adaptive video streaming. In: Proceedings of the 2013 ACM SIGCOMM workshop on Future human-centric multimedia networking. ACM, Hong Kong China 2013, ISBN 978-1-4503-2183-9, S. 15–20, doi:10.1145/2491172.2491181 (acm.org [abgerufen am 2. Mai 2024]).</ref>
DASH ist auch bezüglich des darunterliegenden Protokolls auf der Anwendungsschicht agnostisch. Dadurch kann DASH mit beliebigen Protokollen genutzt werden, wie bei DASH über CCN.<ref name="dashccn" />
Implementierungen[Bearbeiten]
Client-Implementierungen für Desktoprechner sind das DASH-VLC-Modul vom Institute of Information Technology (ITEC) der Alpen-Adria-Universität Klagenfurt,<ref name="itec-dash" /> die quelloffene DASH-Client-Bibliothek libdash der österreichischen Firma bitmovin,<ref name="libdash" /> das Multimedia-Framework der GPAC-Gruppe der Télécom ParisTech und der Client der deutschen Firma castLabs.<ref name="GPAC Telekom ParisTech" />
Die Erstellung von Inhalten ist mit der MP4Box von GPAC möglich<ref name="GPAC Telekom ParisTech" /> oder mit dem Wrapper-Werkzeug „DASHEncoder“ (ebenfalls vom ITEC).<ref name="itec-dash" /><ref name="dataset" /> Auch das Open-Source-Projekt FFmpeg bietet die Möglichkeit, DASH-Streams nach ISO/IEC 23009-1:2014 zu erstellen.<ref>FFmpeg Formats Documentation. In: ffmpeg.org. 2. Mai 2024, abgerufen am 3. Mai 2024 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
Die erste DASH-Server- und Android- (2.2 bis 4.x) SDK-Player-Implementierung wurde von RealNetworks auf der IBC 2012 mit dem Helix Universal Server und dem Helix SDK für Android vorgeführt, als Vorführung der ab November 2012 kommerziell erhältlichen Auslieferungs- und Wiedergabe-Formate mit MPEG2-TS (Smart TV) und ISO BMFF (MP4 Smartphone, Tablet). Die quelloffene Bibliothek libdash<ref name="libdash" /> ist plattformunabhängig und daher auf Mobil-Plattformen wie Android, iOS und Windows Phone lauffähig.
Googles YouTube experimentierte mit serverseitiger Unterstützung für MPEG-DASH.<ref name="Youtube" /> Google Chrome unterstützt es auf der Client-Seite.<ref name="Chromium" /> Vom Institute of Information Technology (ITEC) der Alpen-Adria-Universität Klagenfurt und der GPAC-Gruppe der Télécom ParisTech<ref name="GPAC Telekom ParisTech" /> werden mehrere DASH-Datensätze angeboten.<ref name="dataset" /><ref name="distributeddataset" /> Das ITEC bietet auch einen Überprüfungsdienst für MPEG-DASH-Media-Presentation-Description-Dateien (MPD).<ref name="itec-dash" />
Im Web ist DASH mittels der HTML5 Media Source Extentions (MSE)<ref name="mse" /> sowie JavaScript-basierten Playern möglich. Hierzu gibt es Open-Source-Projekte wie z. B. dash.js<ref name="dashjs" /> vom DASH Industry Forum, aber auch Produkte wie bitdash<ref name="bitdash" /> (für HTML5 mit JavaScript als auch Flash, falls es keine Unterstützung der HTML5 MSE gibt).
Weblinks[Bearbeiten]
- MPEG-DASH-Standard
- DASH-Mailingliste
- DASH-Forschung der Alpen-Adria Universität Klagenfurt
- DASH Industry Forum – MPEG-DASH-Werbegruppe
Quellen[Bearbeiten]
<references> <ref name="MPEGPressRelease">Eric Schumacher-Rasmussen: MPEG DASH's Future: Unified Format or DASHed Hopes? In: Streaming Media. 7. Dezember 2011, abgerufen am 18. November 2023 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> <ref name="timmerer-1">HTTP Streaming of MPEG Media. In: Multimedia Communication. 26. April 2012, abgerufen am 18. Februar 2024 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> <ref name="bitdash">bitdash MPEG-DASH Player (HTML5 & Flash) www.dash-player.com</ref> <ref name="dashjs">DASH.JS auf Github </ref> <ref name="mse">HTML5 MSE </ref> <ref name="iso">ISO/IEC 23009-1:2012. ISO, April 2012, abgerufen am 18. Februar 2024 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> <ref name="3GPP">Specification #: 26.247. In: 3GPP Portal. 22. Januar 2015, abgerufen am 18. Februar 2024 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> <ref name="oipf"> Release 2 Specification Volume 2a - HTTP Adaptive Streaming. (PDF; 372 kB) Open ITV Forum, 22. Mai 2013, abgerufen am 18. Februar 2024 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> <ref name="timmerer-2">Dynamic Adaptive Streaming over HTTP (DASH). In: Multimedia Communication. 11. Februar 2011, abgerufen am 18. Februar 2024 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> <ref name="dashccn">Yaning Liu, Joost Geurts, Jean-Charles Point, Stefan Lederer, Benjamin Rainer, Christopher Mueller, Christian Timmerer, Hermann 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. Juni 2013, S. 3629–3633, doi:10.1109/ICC.2013.6655116.</ref> <ref name="itec-dash">Christopher Müller, Christian Timmerer: A VLC media player plugin enabling dynamic adaptive streaming over HTTP. In: Proceedings of the 19th ACM international conference on Multimedia. November 2011, S. 723–726, doi:10.1145/2072298.2072429 (uni-klu.ac.at [PDF; 872 kB; abgerufen am 3. Mai 2024]).</ref> <ref name="libdash">Libdash. In: Bitmovin. 16. Februar 2016, abgerufen am 2. Mai 2024 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> <ref name="GPAC Telekom ParisTech"> Sample Software. In: DASH Industry Forum. Abgerufen am 3. Mai 2024 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> <ref name="dataset">Stefan Lederer, Christopher Müller, Christian Timmerer: Dynamic adaptive streaming over HTTP dataset. In: Proceedings of the 3rd Multimedia Systems Conference. S. 89–94 (uni-klu.ac.at [PDF; 1,3 MB; abgerufen am 3. Mai 2024]).</ref> <ref name="Youtube">Streaming Media and RTOS: MPEG-DASH Support in Youtube</ref> <ref name="Chromium">Chromium Issue 109652: Support MPEG-DASH</ref> <ref name="distributeddataset">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.</ref> </references>