Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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.

Warnung: Obwohl die <audio> und <video> Tags protokollunabhängig sind, unterstützt derzeit kein Browser außer HTTP ein anderes Protokoll ohne Plugins, obwohl sich dies zu ändern scheint. Protokolle außer HTTP können ebenfalls von Firewalls oder Proxy-Servern blockiert werden.

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:

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

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