Was ist HTTP-Livestreaming? | HLS Streaming

HTTP-Livestreaming (HLS) ist ein weit verbreitetes Videostreamingprotokoll, das auf fast jedem Server ausgeführt werden kann und von den meisten Geräten unterstützt wird. Mit HLS können sich Clientgeräte reibungslos auf veränderte Netzwerkbedingungen einstellen. Dazu wird die Qualität des Streams erhöht oder verringert.

Share facebook icon linkedin icon twitter icon email icon

HTTP-Livestreaming

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • HTTP Live Streaming (HLS) definieren
  • Die Funktionsweise von HLS kennenlernen
  • Vorteile des adaptiven Bitrate-Streamings

Was ist HTTP-Livestreaming (HLS)?

HTTP Live Streaming (HLS) ist eines der am häufigsten verwendeten Protokolle für Video-Streaming. Auch wenn es HTTP „Live“ Streaming heißt, wird es sowohl für On-Demand-Streaming als auch für Live-Streaming eingesetzt. Bei HLS werden Videodateien in kleinere herunterladbare HTTP-Dateien zerlegt und mithilfe des HTTP-Protokolls übertragen. Client-Geräte laden diese HTTP-Dateien und geben sie dann als Video wieder.

Ein Vorteil von HLS besteht darin, dass alle mit dem Internet verbundenen Geräte HTTP unterstützen. Dadurch ist die Implementierung einfacher als bei Streamingprotokollen, für die spezielle Server erforderlich sind. Außerdem kann bei einem HLS-Stream die Videoqualität abhängig von den Netzwerkbedingungen erhöht oder verringert werden, ohne die Wiedergabe zu unterbrechen. Deshalb kann die Videoqualität mitten in einem Video besser oder schlechter werden, während man es sich ansieht. Dieses Feature nennt man „Bitraten-adaptive Videoübertragung“ oder „Bitraten-adaptives Streaming“. Ohne diese Funktion könnte die Wiedergabe eines Videos insgesamt scheitern, wenn das Netzwerk zu langsam wird.

HLS wurde von Apple für Apple-Produkte entwickelt, inzwischen aber für eine Vielzahl von Geräten verwendet.

Was ist Streaming?

Streaming ist eine Methode, visuelle und akustische Medien über das Internet für Benutzer bereitzustellen. Dazu wird die Mediendatei kontinuierlich in kleinen Abschnitten an das Gerät eines Benutzers gesendet und nicht als ganze Datei. Die ursprüngliche Mediendatei ist entweder auf einem Server gespeichert oder wird im Fall von Livestreams in Echtzeit an einem anderen Standort mit einer Kamera oder einem Mikrofon erzeugt. So können Video oder Audio abgespielt werden, ohne dass zuerst die gesamte Datei auf das Gerät des Benutzers heruntergeladen werden muss.

Was ist HTTP?

HTTP ist ein Protokoll auf Ebene des Application Layers, mit dem Informationen zwischen Geräten in einem Netzwerk übertragen werden. Alle Websites und Anwendungen für normale Benutzer werden über HTTP ausgeführt. Bei HTTP erfolgt die Datenübertragung normalerweise in Form von Anfragen und Antworten. Fast alle HTTP-Nachrichten sind entweder eine Anfrage oder eine Antwort auf eine Anfrage.

Beim Streaming über HTTP gibt es diese Struktur aus Anfragen und Antworten nicht. Die Verbindung zwischen Client und Server bleibt während des Streams offen, und der Server sendet Videodaten an den Client, sodass der Client nicht jedes Videodatensegment einzeln anfordern muss.

Wie funktioniert HLS?

Server: Ein HLS-Stream stammt von einem Server, auf dem die Mediendatei gespeichert ist (On-Demand-Streaming) oder auf dem der Stream erstellt wird (Livestreaming). Da HLS auf HTTP basiert, kann der Stream auf jedem normalen Webserver erzeugt werden.

Die beiden wichtigsten Vorgänge finden auf dem Server statt:

  1. Codierung: Die Videodaten werden umformatiert, sodass jedes Gerät die Daten erkennen und auswerten kann. Bei HLS muss H.264- oder H.265-Codierung verwendet werden.
  2. Segmentierung: Das Video wird in Segmente von jeweils einigen Sekunden Länge unterteilt. Die Länge der Segmente kann variieren, beträgt standardmäßig aber 10 Sekunden.
    • Neben der Aufteilung des Videos in Segmente wird bei HLS eine Indexdatei der Videosegmente erstellt, in der die richtige Reihenfolge der Segmente festgehalten wird.
    • Bei HLS werden außerdem mehrere Duplikate der Segmentsätze in unterschiedlichen Qualitätsstufen erstellt: 480p, 720p, 1080p usw.

Verteilung: Die codierten Videosegmente werden über das Internet an Clientgeräte gesendet, wenn der Stream von Clientgeräten angefordert wird. An der Verteilung des Streams in unterschiedliche geografische Regionen ist normalerweise ein Content Delivery Network (CDN) beteiligt. Auf einem CDN wird der Stream außerdem im Cache zwischengespeichert, damit er noch schneller für Clients bereitgestellt werden kann.

Clientgerät: Das Clientgerät ist das Gerät, auf dem der Stream empfangen und das Video wiedergegeben wird, zum Beispiel ein Smartphone oder Laptop des Benutzers. Das Clientgerät nutzt die Indexdatei als Referenz für die Zusammenstellung des Videos und wechselt bei Bedarf von einer höheren zu einer niedrigeren Bildqualität (und umgekehrt).

Was ist Bitraten-adaptives Streaming in HLS?

Einer der Vorteile von HLS gegenüber anderen Streamingprotokollen ist das Streaming mit adaptiver Bitrate. Damit ist die Möglichkeit gemeint, die Videoqualität mitten in einem Stream anzupassen, wenn sich die Netzwerkbedingungen ändern. Dadurch können Videos auch bei Beeinträchtigungen des Netzwerks weiter abgespielt werden. Umgekehrt wird die Videoqualität so hoch eingestellt, wie sie vom Netzwerk unterstützt werden kann.

Wenn das Netzwerk langsamer wird, erkennt dies der Videoplayer des Benutzers und die Qualität des Streams wird durch das Bitraten-adaptives Streaming verringert, damit das Video weiter abgespielt wird. Wenn mehr Netzwerkbandbreite verfügbar wird, verbessert Bitraten-adaptives Streaming die Qualität des Streams.

Bitraten-adaptives Streaming wird dadurch möglich, dass bei HLS während des Segmentierungsvorgangs mehrere Duplikate des segmentierten Streams in unterschiedlichen Qualitätsstufen erstellt werden. Der Videoplayer des Benutzers kann während der Videowiedergabe übergangslos von einem dieser Streams zu einem anderen wechseln.

Wird TCP oder UDP bei HLS als Transportprotokoll verwendet?

TCP und UDP sind Transportprotokolle, also für die Bereitstellung von Inhalten über das Internet zuständig. TCP liefert Daten in der Regel zuverlässiger als UDP, aber UDP ist viel schneller, wobei einige Daten während der Übertragung verloren gehen können.

Weil UDP schneller ist, arbeiten viele Streamingprotokolle mit UDP statt TCP. Bei HLS wird jedoch TCP eingesetzt. Dafür gibt es mehrere Gründe:

  1. HLS läuft über HTTP und das HTTP-Protokoll wurde (von einigen Ausnahmen abgesehen) für die Verwendung mit TCP entwickelt.
  2. In den Anfängen der Streaming-Entwicklung war das Internet noch nicht so zuverlässig und effizient wie heute. In vielen Teilen der Welt sind die Benutzer inzwischen deutlich besser vernetzt, insbesondere sind die Mobilverbindungen besser geworden. Die Benutzer haben heute genügend Bandbreite, sodass einzelne Videobilder bereitgestellt werden können.
  3. Durch Bitraten-adaptives Streaming kann die möglicherweise langsamere Datenübertragung von TCP kompensiert werden.
  4. HLS-Streaming muss nicht in „Echtzeit“ stattfinden, wie es bei Verbindungen für Videokonferenzen der Fall ist. Ein paar Sekunden Verzögerung beeinträchtigen das Benutzererlebnis nicht so stark wie fehlende Videobilder.

Welche Protokolle werden noch für Streaming verwendet?

Es gibt eine Reihe von Protokollen, die HLS ähnlich sind, etwa MPEG-DASH und HDS, die auch über HTTP ausgeführt werden und Bitraten-adaptives Streaming ermöglichen. Adobe Flash, das über das RTMP-Protokoll ausgeführt wird, war früher die wichtigste Videostreamingtechnologie. Viele Browser unterstützen Flash jedoch nicht mehr. RTMP ist immer noch weit verbreitet.

Unterstützt Cloudflare HTTP-Livestreaming?

Cloudflare unterstützt HLS sowohl für On-Demand- als auch für Live-Streaming. Cloudflare Stream integriert Videospeicherung, Codierung und einen anpassbaren Player in das schnelle, sichere und zuverlässige Cloudflare-Netzwerk, das sich über 200 Städte in über 100 Ländern erstreckt. Dies ermöglicht es Benutzern auf der ganzen Welt, schnelle und qualitativ hochwertige HLS-Streams zu empfangen. Erfahren Sie mehr über Cloudflare Stream.