HLS Streaming — Was HTTP Live Streaming ist und wie es funktioniert

HLS Streaming

HLS (HTTP Live Streaming) ist ein Video-Streaming-Protokoll, das Apple 2009 entwickelt hat und heute der dominierende Standard für die Auslieferung von Video im Web ist. Es zerschneidet ein Video in kleine, aufeinanderfolgende Segmente (typischerweise 2-10 Sekunden lang) und liefert jedes Segment über schlichtes HTTP aus.

Funktionsweise

  1. Der Encoder erzeugt mehrere Varianten des Videos in unterschiedlichen Auflösungen/Bitraten (360p, 720p, 1080p usw.).
  2. Jede Variante wird segmentiert — in Stücke fester Länge zerlegt.
  3. Eine Master-Playlist (.m3u8-Datei) listet alle Varianten und ihren Bandbreitenbedarf.
  4. Jede Variante hat eine Media-Playlist, die ihre Segmente in Reihenfolge auflistet.
  5. Der Player lädt die Master-Playlist, wählt eine Variante, lädt die Segmente nacheinander und fügt sie zu einer durchgehenden Wiedergabe zusammen.
  6. Der Player passt sich an — misst die Downloadgeschwindigkeit und wechselt die Variante an Segmentgrenzen nach oben oder unten.

Warum sich HLS durchgesetzt hat

  • HTTP-Auslieferung — funktioniert durch jede Firewall, jedes CDN, jeden Browser. Keine Sonderprotokolle nötig.
  • Adaptive Bitrate — Qualität passt sich nahtlos an die Netzbedingungen an.
  • Cache-fähige Segmente — unveränderliche Segmente lassen sich am CDN-Edge gut cachen.
  • Native Unterstützung — jeder große Browser, jede TV-Plattform, jedes Mobil-OS unterstützt HLS nativ oder über Bibliotheken (HLS.js für Chrome/Firefox).
  • Verschlüsselungsfreundlich — Segmente lassen sich auf Segmentebene mit AES-128 verschlüsseln (Verschlüsselung), wobei Schlüssel separat ausgeliefert werden.

Alternativen

  • DASH (Dynamic Adaptive Streaming over HTTP) — ähnlich wie HLS, aber per MPEG standardisiert. Flexibler bei Codecs, weniger Browser-Support out of the box.
  • WebRTC — Latenz unter einer Sekunde, peer-to-peer oder via SFU. Für interaktives Live (Konferenzen) — nicht für VOD.
  • Progressive Download (einfach ein MP4 über HTTP) — simpel, ohne Adaption, ohne Streaming-Kontrolle. Gut für kurze Clips, schlecht für lange Videos.

Dateiendungen

  • .m3u8 — Playlist-Datei (Master oder Media)
  • .ts — MPEG-TS-Segment (Legacy)
  • .m4s — fragmentiertes MP4-Segment (modern, das HLS seit 2017 nutzt)

Bei AVCaption

Jedes auf AVCaption hochgeladene Video wird als HLS mit AES-128 Multi-Key-Verschlüsselung kodiert. Der Player wählt automatisch HLS.js für Nicht-Safari-Browser und natives HLS auf Safari. Siehe Adaptive Bitrate Streaming für Details.

Verwandt

← content.back_to_index