HLS (HTTP Live Streaming)

HLS (HTTP Live Streaming) ist ein HTTP-basiertes Kommunikationsprotokoll (nicht zu verwechseln mit dem Format) für das Streaming von Medien, das von Apple als Teil von QuickTime, Safari, OS X und iOS-Software entwickelt wurde. Es basiert auf dem Prinzip der Aufteilung eines gesamten Streams in kleine Teile, die nacheinander über HTTP heruntergeladen werden. Der Strom ist kontinuierlich und könnte theoretisch endlos sein. Zu Beginn einer Sitzung wird eine Wiedergabeliste im M3U-Format heruntergeladen, die Metadaten über die verfügbaren verschachtelten Streams enthält. HTTP Live Streaming (HLS) ist nicht nur das am weitesten verbreitete, sondern auch eines der ältesten HTTP-Videoübertragungsprotokolle.

Ein Vorteil von HLS besteht darin, dass alle mit dem Internet verbundenen Geräte das HTTP-Protokoll unterstützen, wodurch es einfacher zu implementieren ist als Streaming-Protokolle, die spezielle Server erfordern. Ein weiterer Vorteil ist, dass das HLS-Streaming die Videoqualität je nach Netzwerkbedingungen erhöhen oder verringern kann, ohne die Wiedergabe zu unterbrechen. Aus diesem Grund kann sich die Videoqualität in der Mitte eines Videos verbessern oder verschlechtern, während der Benutzer es anschaut. Diese Funktion wird als “adaptive Videobereitstellung” oder “adaptives Streaming” bezeichnet, und ohne sie kann die Videowiedergabe bei langsamen Netzwerkbedingungen vollständig unterbrochen werden.

Wie funktioniert HLS?

HLS ist ein wichtiges Protokoll für das Live-Streaming. Der Prozess des Live-Streaming sieht in etwa so aus:

  • Erfassungsgeräte (Kameras, Mikrofone usw.) erfassen Inhalte.
  • Der Inhalt wird vom Aufnahmegerät an einen Live-Video-Encoder gesendet.
  • Der Encoder überträgt die Inhalte über das RTMP-Protokoll an die Videohosting-Plattform.
  • Die Videohosting-Plattform verwendet HLS-Ingest, um die Inhalte an den HTML5-Videoplayer zu senden.
  • Dieser Prozess erfordert zwei grundlegende Softwarelösungen: einen HLS-Encoder für Live-Videos und eine leistungsstarke Videohosting-Plattform. Wenn Sie sich für das Streamen von Videos mit HLS entscheiden, müssen Sie sicherstellen, dass beide Softwarelösungen die genannten Protokolle und Funktionen bieten.

HLS-Architektur

HLS verwendet einen Standard-Webserver, um Video auf Abruf zu verbreiten, erfordert aber spezielle Software, um das Streaming von Inhalten in Echtzeit zu ermöglichen.

Server-Teil

Kodiert und wandelt eingehende Medien in ein für die Zustellung geeignetes Format um. Anschließend wird das Material durch Segmentierung für die Verteilung vorbereitet. Die Medien werden in Chunks und eine Indexdatei (Wiedergabeliste) unterteilt. Kodierung: Video wird in H.264 und Audio in MP3, HE-AAC oder AC-3 kodiert. All diese Daten werden in einen MPEG-2-Transportstrom eingefügt, der später ausgeliefert wird. Segmentierung: Inhalte in MPEG-2 TS werden in gleich lange Abschnitte segmentiert und in .ts-Dateien geschrieben. Es wird auch eine Indexdatei erstellt, die Verweise auf Slices oder andere Indexdateien enthält - diese wird als .m3u8-Datei gespeichert

Verteilung

Der Server arbeitet wie ein Standard-Webserver, nimmt Anfragen von Clients entgegen und liefert alles, was für die Wiedergabe benötigt wird.

Kunde

Fordert alle Dateien an und lädt sie herunter, um dem Nutzer einen kontinuierlichen Videostrom zu liefern. Die Client-Software lädt die erste Indexdatei über eine URL herunter, gefolgt von mehreren verfügbaren Mediendateien. Die Wiedergabesoftware fügt alles in einer Sequenz zusammen, um es abzuspielen. Es gibt zwei HLS-Betriebsarten - “On-Demand” und Live-Streaming. Im On-Demand-Modus enthält die Wiedergabeliste Links zu allen Fragmenten, vom ersten bis zum letzten. Im Live-Modus bezieht sich die Wiedergabeliste nur auf die letzten Fragmente, und die Fragmente ändern sich von Patch zu Patch und spiegeln den aktuellen Stand der Sendung wider.

HLS unterstützt die adaptive Bitrate, eine Technik, bei der mehrere gleichzeitige Streams mit unterschiedlichen Inhalten, die mit unterschiedlichen Bitraten kodiert sind, und auch mit unterschiedlichen Merkmalen verfügbar sein können. Während der Wiedergabe kann der Client zwischen mehreren verfügbaren Streams wählen, so dass sich die Sitzung an die externen Netzübertragungsbedingungen anpassen kann.

HLS unterstützt:

  • Live-Streams und aufgezeichnete Inhalte (Video-on-Demand oder VOD)
  • Mehrere alternative Streams mit unterschiedlichen Bitraten
  • Intelligentes Stream-Switching als Reaktion auf wechselnde Netzwerkbandbreiten
  • Medienverschlüsselung und Benutzerauthentifizierung