Livestreaming von Web-Audio und -Video
Livestreaming-Technologie wird oft eingesetzt, um Live-Events wie Sport, Konzerte und allgemein TV- und Radioprogramme, die live ausgestrahlt werden, zu übertragen. Oft auf Streaming verkürzt, bezeichnet Livestreaming den Prozess der Übertragung von Medien 'live' auf Computer und Geräte. Dies ist ein ziemlich komplexes und neues Thema mit vielen Variablen. In diesem Artikel führen wir Sie in das Thema ein und zeigen Ihnen, wie Sie beginnen können.
Der entscheidende Faktor beim Streaming von Medien in einen Browser ist, dass wir anstatt einer abgeschlossenen Datei eine Datei übertragen, die spontan erstellt wird und keine vordefinierte Start- oder Endzeit hat.
Wichtige Unterschiede zwischen gestreamten und statischen Medien
In diesem Fall verwenden wir statische Medien, um Medien zu beschreiben, die durch eine Datei wie eine MP3- oder WebM-Datei dargestellt werden. Diese Datei befindet sich auf einem Server und kann wie die meisten anderen Dateien an den Browser geliefert werden. Dies wird oft als progressiver Download bezeichnet.
Livestreamed Medien haben im Gegensatz zu einer statischen Datei keine feste Start- und Endzeit, sondern sind ein Datenstrom, den der Server an den Browser weiterleitet und der oft adaptiv ist (siehe unten). In der Regel benötigen wir verschiedene Formate und spezielle serverseitige Software, um dies zu erreichen.
Adaptives Streaming
Eines der Hauptziele beim Livestreaming ist es, den Player mit dem Stream synchron zu halten: Adaptives Streaming ist eine Technik, um dies im Falle von geringer Bandbreite zu erreichen. Die Idee ist, dass die Datenübertragungsrate überwacht wird und wenn es scheint, dass diese nicht ausreicht, wechseln wir zu einem Stream mit niedrigerer Bandbreite (und folglich geringerer Qualität). Um diese Fähigkeit zu haben, müssen wir Formate verwenden, die dies ermöglichen. Livestreaming-Formate erlauben im Allgemeinen adaptives Streaming, indem Streams in eine Reihe von kleinen Segmenten unterteilt und diese Segmente in unterschiedlichen Qualitäten und Bitraten bereitgestellt werden.
Streaming Audio und Video auf Abruf
Streaming-Technologie wird nicht ausschließlich für Livestreams verwendet. Sie kann auch anstelle der traditionellen progressiven Download-Methode für Audio und Video auf Abruf genutzt werden:
Es gibt mehrere Vorteile hierfür:
- Die Latenz ist im Allgemeinen niedriger, sodass Medien schneller abgespielt werden
- Adaptives Streaming sorgt für bessere Erfahrungen auf einer Vielzahl von Geräten
- Medien werden just-in-time heruntergeladen, was die Bandbreitennutzung effizienter macht
Streaming-Protokolle
Während statische Medien in der Regel über HTTP bereitgestellt werden, gibt es mehrere Protokolle für die Bereitstellung von adaptiven Streams; lassen Sie uns die Optionen ansehen.
HTTP
Derzeit ist HTTP bei weitem das am häufigsten unterstützte Protokoll, das verwendet wird, um Medien auf Abruf oder live zu übertragen.
RTMP
Real Time Messaging Protocol (RTMP) ist ein proprietäres Protokoll, das von Macromedia (jetzt Adobe) entwickelt wurde und vom Adobe Flash-Plugin unterstützt wird. RTMP gibt es in verschiedenen Varianten, einschließlich RTMPE (verschlüsselt), RTMPS (sicher über TLS/SSL) und RTMPT (in HTTP-Anfragen eingeschlossen).
RTSP
Hinweis: Real Time Streaming Protocol (RTSP) steuert Mediensitzungen zwischen Endpunkten und wird oft zusammen mit Real-time Transport Protocol (RTP) und Real-time Control Protocol (RTCP) für die Bereitstellung von Medienstreams verwendet. Die Verwendung von RTP mit RTCP ermöglicht adaptives Streaming. Dies wird derzeit in den meisten Browsern noch nicht nativ unterstützt.
Einige Anbieter implementieren proprietäre Transportprotokolle, wie RealNetworks und ihr Real Data Transport (RDT).
RTSP 2.0
RTSP 2.0 ist derzeit in der Entwicklung und ist nicht rückwärtskompatibel mit RTSP 1.0.
Die Verwendung von Streaming-Protokollen
Der Prozess der Verwendung der verschiedenen Protokolle ist beruhigend vertraut, wenn Sie es gewohnt sind, mit Medien über HTTP zu arbeiten.
Zum Beispiel:
<video src="rtsp://myhost.com/mymedia.format">
<!-- Fallback here -->
</video>
Media Source Extensions (MSE)
Media Source Extensions ist ein W3C-Arbeitsentwurf, der plant, HTMLMediaElement zu erweitern, um JavaScript zu ermöglichen, Medienstreams zur Wiedergabe zu generieren. Die Möglichkeit für JavaScript, Streams zu generieren, erleichtert eine Vielzahl von Anwendungsfällen wie adaptives Streaming und zeitversetzte Livestreams.
Zum Beispiel könnten Sie MPEG-DASH mit JavaScript implementieren und das Dekodieren an MSE auslagern.
Hinweis: Zeitversetztes Streaming ist der Prozess des Konsumierens eines Livestreams einige Zeit nach der tatsächlichen Ausstrahlung.
Video-Streaming-Dateiformate
Einige HTTP-basierte Livestreaming-Videoformate beginnen Unterstützung in Browsern zu sehen.
Hinweis: Sie finden einen Leitfaden zum Kodieren von HLS und MPEG-DASH für die Verwendung im Web unter Einrichten von adaptiven Streaming-Medienquellen.
MPEG-DASH
DASH steht für Dynamic Adaptive Streaming over HTTP. Es wird über Media Source Extensions unterstützt, die von JavaScript-Bibliotheken wie DASH.js verwendet werden. Dieser Ansatz erlaubt es uns, "Chunks" des Videostreams mittels XHR herunterzuladen und die "Chunks" an den Stream anzuhängen, der vom <video>-Element abgespielt wird. Wenn wir also feststellen, dass das Netzwerk langsam ist, können wir beginnen, für das nächste Segment kleinere Chunks niedriger Qualität anzufordern. Diese Technologie ermöglicht auch, dass ein Werbesegment an den Stream angehängt/eingefügt wird.
Hinweis: Sie können auch WebM mit dem MPEG DASH adaptiven Streaming-System verwenden.
HLS
HLS oder HTTP Live Streaming ist ein Protokoll, das von Apple Inc. erfunden wurde und auf iOS, Safari und den neuesten Versionen der Android-Browser/Chrome unterstützt wird. HLS ist ebenfalls adaptiv.
HLS kann auch mit JavaScript dekodiert werden, was bedeutet, dass wir die neuesten Versionen von Firefox, Chrome und Safari unterstützen können. Siehe diesen HTTP Live Streaming JavaScript-Player.
Am Anfang der Streaming-Sitzung wird eine erweiterte M3U (m3u8) Playlist heruntergeladen. Diese enthält die Metadaten für die verschiedenen angebotenen Substreams.
Audio-Streaming-Dateiformate
Es gibt auch verschiedene Audioformate:
Opus
Opus ist ein gebührenfreies und offenes Format, das die Qualität bei verschiedenen Bitraten für unterschiedliche Arten von Audio optimiert. Musik und Sprache können auf unterschiedliche Weise optimiert werden und Opus verwendet die SILK- und CELT-Codecs, um dies zu erreichen.
Derzeit wird Opus von Firefox auf Desktop und Mobilgeräten sowie den neuesten Versionen von Chrome und Opera auf Desktops unterstützt.
Hinweis: Opus ist ein obligatorisches Format für WebRTC-Browserimplementierungen.
MP3, AAC, Ogg Vorbis
Die meisten gängigen Audioformate können mit spezifischen serverseitigen Technologien gestreamt werden.
Hinweis: Es ist potenziell einfacher, Audio mit nicht-streamenden Formaten zu streamen, da es im Gegensatz zu Video keine Keyframes gibt.
Serverseitige Streaming-Technologien
Um Live-Audio und -Video zu streamen, müssen Sie spezifische Streaming-Software auf Ihrem Server ausführen oder Drittanbieterdienste nutzen.
GStreamer
GStreamer ist ein Open-Source Multimedia-Framework, das plattformübergreifend Medienkomponenten, einschließlich Streaming-Komponenten, erstellt. Durch sein Pluginsystem bietet GStreamer Unterstützung für mehr als hundert Codecs (einschließlich MPEG-1, MPEG-2, MPEG-4, H.261, H.263, H.264, RealVideo, MP3, WMV und FLV).
GStreamer-Plugins wie souphttpclientsink und shout2send existieren, um Medien über HTTP zu streamen, oder Sie können sich auch in das Twisted-Framework von Python integrieren.
Für den RTMP-Transfer können Sie das Nginx RTMP-Modul verwenden.
SHOUTcast
SHOUTcast ist eine plattformübergreifende proprietäre Technologie für das Streaming von Medien. Entwickelt von Nullsoft, ermöglicht es die Übertragung digitaler Audiodaten im MP3- oder AAC-Format. Für den Webeinsatz werden SHOUTcast-Streams über HTTP übertragen.
Icecast
Der Icecast Server ist eine Open-Source-Technologie für das Streaming von Medien. Verwaltet von der Xiph.org Foundation, streamt er Ogg Vorbis/Theora sowie MP3 und AAC-Format über das SHOUTcast-Protokoll.
Hinweis: SHOUTcast und Icecast gehören zu den etabliertesten und beliebtesten Technologien, aber es gibt viele weitere Streaming-Medien-Systeme.
Streaming-Dienste
Obwohl Sie Software wie GStreamer, SHOUTcast und Icecast installieren können, finden Sie auch viele Drittanbieter-Streaming-Dienste, die einen Großteil der Arbeit für Sie erledigen.
Siehe auch
- HTTP Live Streaming
- HLS Browser Unterstützung
- HTTP Live Streaming JavaScript Player
- Die Grundlagen des HTTP Live Streaming
- DASH Adaptive Streaming für HTML 5 Video
- Dynamisches Adaptive Streaming über HTTP (MPEG-DASH)
- MPEG-DASH Media Source Demo
- DASH Referenzclient
- Dynamisches Streaming über HTTP
- Der Stand der MPEG-DASH-Implementierung
- Kein Plugin erforderlich: Live-Streaming in den Browser mit Media Source Extensions und MPEG-DASH
- Media Source Extensions (W3C)
- Icecast
- SHOUTcast
- GStreamer
- Streaming GStreamer Pipelines über HTTP
- GStreamer und Raspberry Pi
- Vergleich von Streaming-Medien-Systemen
- Mozilla Hacks - Streaming Media on demand mit Media Source Extensions