HLS (HTTP Live Streaming), MPEG-DASH (Dynamic Adaptive Streaming over HTTP) und RTMP (Real-Time Messaging Protocol) sind die drei dominierenden Protokolle für Video-Streaming, entwickelt von Apple (HLS, 2009), MPEG/ISO (DASH, 2012) und Adobe (RTMP, 2002), standardmäßig eingesetzt für Live-Streams, Video-on-Demand (VOD) auf OTT-Plattformen und Content-Delivery-Networks (CDNs) weltweit.
Typ: Streaming-Protokolle (keine Codecs) · Kompatible Codecs: H.264, H.265, AV1, VP9 · Transport: HTTP (HLS, DASH), TCP (RTMP) · Lizenz: Offen (HLS RFC 8216, DASH ISO/IEC 23009-1), Proprietär (RTMP Adobe)
Was sind Streaming-Protokolle?
Streaming-Protokolle definieren, wie Video-Daten vom Server zum Endnutzer transportiert werden – unabhängig davon, welcher Codec (H.264, H.265, AV1) das Video komprimiert hat. Die Wahl des Streaming-Protokolls beeinflusst Latenz, Qualitätsadaption, Browser-Kompatibilität und Infrastrukturanforderungen erheblich.
Die Grundidee aller modernen Streaming-Protokolle ist Adaptives Bitraten-Streaming (ABR): Das Video wird in mehrere Qualitätsstufen (Renditions) mit unterschiedlichen Bitraten und Auflösungen kodiert. Der Client wählt automatisch die optimale Qualitätsstufe basierend auf der verfügbaren Bandbreite. Bricht die Verbindung ein, schaltet der Player ohne sichtbaren Abbruch auf eine niedrigere Qualität um.
Die Aufteilung in kleine Segmente (typisch 2–10 Sekunden) erlaubt außerdem, dass Standard-HTTP-Infrastruktur (CDNs, Webserver) für Streaming genutzt werden kann – kein spezielles Streaming-Server-Protokoll notwendig (Pantos / May, RFC 8216; ISO 23009-1, 2019).
HLS – HTTP Live Streaming
Überblick
Apple entwickelte HLS 2009 als Lösung für iPhone-Streaming ohne Flash-Unterstützung. HLS ist heute der universellste Standard: Alle Apple-Geräte, alle modernen Browser, Smart-TVs und Set-Top-Boxes unterstützen HLS nativ.
Technische Funktionsweise
HLS segmentiert das Video in kleine .ts-Segmente (MPEG-2 Transport Stream) oder .fmp4-Segmente (Fragmented MP4, seit HLS v4). Eine Manifest-Datei im .m3u8-Format (Extended M3U) beschreibt alle verfügbaren Qualitätsstufen (Renditions) und verweist auf die zugehörigen Segmente:
`` #EXTM3U #EXT-X-VERSION:3 #EXT-X-STREAM-INF:BANDWIDTH=1400000,RESOLUTION=854x480 480p/index.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=4000000,RESOLUTION=1280x720 720p/index.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=8000000,RESOLUTION=1920x1080 1080p/index.m3u8 ``
Der Media Player lädt zunächst die Master-Playlist (.m3u8), wählt die passende Rendition und lädt fortlaufend die nächsten Segmente. Für Live-Streaming werden neue Segmente kontinuierlich an die Playlist angehängt.
Latenz
Standard-HLS hat eine Latenz von 15–30 Sekunden (durch Segmentgröße und Puffer). Low-Latency HLS (LL-HLS), eingeführt in HLS v4 (Apple 2019), reduziert die Latenz auf 1–3 Sekunden durch kleinere Partial Segments.
Codec-Unterstützung
HLS unterstützt H.264 (universell), H.265 / HEVC (seit HLS v5, Apple-Geräte) und AV1 (neueste Spezifikation, begrenzte Unterstützung).
Einsatzgebiet
- Apple TV+, Netflix, Hulu, MLB, NFL (alle primär HLS)
- YouTube (Fallback für Safari)
- Alle iOS/macOS Live-Streams
- CDN-Infrastrukturen (AWS CloudFront, Akamai, Fastly)
MPEG-DASH – Dynamic Adaptive Streaming over HTTP
Überblick
MPEG-DASH wurde 2012 von ISO/IEC als codec-agnostischer, plattformunabhängiger Streaming-Standard standardisiert. Im Gegensatz zu HLS (Apple-Ökosystem) ist DASH vollständig herstellerneutral und unterstützt eine breite Palette von Codecs.
Technische Funktionsweise
DASH verwendet eine MPD (Media Presentation Description) – ein XML-Manifest – das alle verfügbaren Adaptations-Sets (Qualitätsstufen), Codecs, Container und Zeitstrukturen beschreibt:
``xml <?xml version="1.0"?> <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" type="dynamic" minimumUpdatePeriod="PT2S" availabilityStartTime="2024-01-01T00:00:00Z"> <Period> <AdaptationSet mimeType="video/mp4" codecs="avc1.64001E"> <Representation id="1" bandwidth="1500000" width="854" height="480"> <SegmentTemplate media="480p_$Number$.m4s" duration="4"/> </Representation> <Representation id="2" bandwidth="4000000" width="1280" height="720"> <SegmentTemplate media="720p_$Number$.m4s" duration="4"/> </Representation> </AdaptationSet> <AdaptationSet mimeType="audio/mp4" codecs="mp4a.40.2"> <Representation id="3" bandwidth="128000"> <SegmentTemplate media="audio_$Number$.m4s" duration="4"/> </Representation> </AdaptationSet> </Period> </MPD> ``
Segmente werden als Fragmented MP4 (.m4s) oder MPEG-2 TS ausgeliefert. Die MPD kann statisch (VOD) oder dynamisch (Live) sein.
DASH und Kopierschutz (CENC)
DASH integriert Common Encryption (CENC, ISO/IEC 23001-7) für DRM-Schutz. Multi-DRM-Systeme (Widevine, PlayReady, FairPlay) arbeiten über CENC mit DASH zusammen.
Codec-Unterstützung
DASH ist codec-agnostisch: H.264, H.265, AV1, VP9 sind alle kompatibel. YouTube verwendet DASH mit VP9 und AV1 für Desktop-Browser.
Einsatzgebiet
- YouTube (VP9/AV1 in DASH)
- Netflix (DASH für Android/PC, HLS für iOS/tvOS)
- Amazon Prime Video
- Disney+ (DASH auf nicht-Apple-Plattformen)
- Deutsche Öffentlich-Rechtliche (ZDFmediathek: DASH)
Safari-Einschränkung
Safari unterstützt MPEG-DASH nicht nativ – Apple bevorzugt HLS. Für universellen Browser-Support müssen DASH und HLS parallel bereitgestellt werden.
RTMP – Real-Time Messaging Protocol
Überblick
RTMP wurde von Macromedia (später Adobe) entwickelt und war jahrelang das Standard-Protokoll für Flash-Video-Streaming. Seit dem Ende von Flash (2020) ist RTMP als End-to-End-Protokoll obsolet, lebt aber als Ingest-Protokoll für Live-Streaming weiter.
Technische Funktionsweise
RTMP basiert auf TCP und sendet Video, Audio und Metadaten in kleinen Chunks über eine persistente Verbindung. Die Standard-Portierung: TCP Port 1935 (RTMP), Port 443 (RTMPS, verschlüsselt), Port 80 (RTMPE).
Moderne Nutzung: Der Live-Encoder (OBS Studio, Wirecast, Livestream Studio) sendet den Video-Stream per RTMP an einen Ingest-Server (z.B. YouTube Live, Twitch, Facebook Live). Der Ingest-Server wandelt RTMP in HLS oder DASH für CDN-Auslieferung um.
`` [Kamera] → [Encoder: OBS/Wirecast] → [RTMP-Ingest] → [CDN] → [HLS/DASH] → [Zuschauer] ``
Typische RTMP-Einstellungen (OBS Studio)
- Server:
rtmp://live.twitch.tv/app+ Stream-Key - Video Bitrate: 1.000–8.000 kbps (je nach Plattform und Internet-Bandbreite)
- Audio Bitrate: 128–320 kbps AAC
- Codec: H.264 (universal), H.265 (Twitch Enhanced RTMP)
RTMP-Varianten
- RTMPS – RTMP über TLS/SSL (Port 443); von YouTube, Facebook und modernen Plattformen bevorzugt
- RTMPE – ältere Adobe-Verschlüsselung (veraltet)
- SRT (Secure Reliable Transport) – moderner Ersatz für RTMP bei professionellem Live-Ingest; niedrigere Latenz, bessere Paketkorrektur (ARQ)
- WebRTC – ultraniedriger Latenz (unter 500ms) für interaktive Anwendungen (Videokonferenz, Online-Gaming-Streams)
Einsatzgebiet
- Twitch, YouTube Live, Facebook Live: alle nutzen RTMP für Ingest
- Professionelle Broadcast-Encoder (Teradek, Haivision)
- OBS Studio, Streamlabs, XSplit als Encoder-Software
Vergleich der Streaming-Protokolle
| Merkmal | HLS | MPEG-DASH | RTMP |
|---|---|---|---|
| Entwickler | Apple | ISO/IEC (MPEG) | Adobe |
| Standardisierung | RFC 8216 (IETF) | ISO 23009-1 | Keine offizielle Spec |
| Transport | HTTP | HTTP | TCP |
| ABR-Unterstützung | Ja | Ja | Nein |
| Latenz (Standard) | 15–30 s | 6–30 s | 1–3 s |
| Latenz (Low-Latency) | 1–3 s (LL-HLS) | 1–3 s (LL-DASH) | N/A |
| Safari-Unterstützung | Ja (nativ) | Nein | Nein |
| Chrome/Firefox-Support | Ja (via MSE) | Ja (via MSE) | Nein (RTMP-Plugin veraltet) |
| Codec-Unterstützung | H.264, H.265, AV1 | Alle | H.264 (primär) |
| DRM-Unterstützung | FairPlay (Apple) | Widevine, PlayReady | Eingeschränkt |
| Primäres Einsatzgebiet | iOS, Apple-Ökosystem, Universal | YouTube, Netflix, OTT | Live-Ingest |
| Lizenz | Offen | Offen | Proprietär (Adobe) |
Beispiele
1. YouTube-Live (RTMP-Ingest → DASH/HLS-Delivery) OBS Studio sendet per RTMP an YouTube-Ingest-Server. YouTube transcodiert in mehrere Qualitätsstufen (1080p, 720p, 480p, 360p) und liefert per DASH (VP9/H.264) an Desktop-Browser und per HLS an iOS-Geräte.
2. Netflix VOD (HLS + DASH nach Plattform) Netflix serviert iOS/tvOS in HLS (H.265, Dolby Vision), Android/PC in MPEG-DASH (H.265 oder AV1). Beide Formate liegen parallel auf CDN-Servern.
3. ZDFmediathek (MPEG-DASH, H.264/H.265) Die ZDFmediathek verwendet MPEG-DASH für Streaming mit H.264 in verschiedenen Qualitätsstufen (360p bis 1080p) und H.265 für 4K-Inhalte auf kompatiblen Endgeräten.
4. Twitch Enhanced Broadcasting (RTMP, H.264) Twitch-Streams werden mit RTMP ingestiert. Standard: H.264, 1080p@60fps, 6–8 Mbit/s für Partner. Enhanced RTMP (Twitch 2023) erlaubt H.265 und AV1-Ingest.
5. Unternehmens-Webcast (HLS + LL-HLS) Unternehmen nutzen Low-Latency HLS für Live-Webcasts: Encoder (Zoom Events, Wowza) → CDN → LL-HLS mit 2–3 s Latenz für globale Zuschauerschaft.
In der Praxis
FFmpeg für HLS-Erstellung: ``bash ffmpeg -i input.mp4 \ -filter_complex "[0:v]split=3[v1][v2][v3]" \ -map "[v1]" -c:v libx264 -b:v 400k -s 854x480 \ -map "[v2]" -c:v libx264 -b:v 1500k -s 1280x720 \ -map "[v3]" -c:v libx264 -b:v 4000k -s 1920x1080 \ -map 0:a -c:a aac -b:a 128k \ -var_stream_map "v:0,a:0 v:1,a:0 v:2,a:0" \ -master_pl_name master.m3u8 \ -f hls -hls_time 4 -hls_playlist_type vod \ hls_output/stream_%v/index.m3u8 ``
MPEG-DASH mit FFmpeg: ``bash ffmpeg -i input.mp4 \ -c:v libx264 -b:v 1500k -s 1280x720 \ -c:a aac -b:a 128k \ -f dash -seg_duration 4 \ output.mpd ``
Häufige Fragen (FAQ)
Was ist der Unterschied zwischen RTMP und SRT? RTMP ist TCP-basiert und hat keine integrierte Fehlerkorrektur. Bei Paketverlusten (schlechte Verbindung) kommt es zu Artefakten oder Verbindungsabbrüchen. SRT (Secure Reliable Transport, Haivision) ist modern und ARQ-basiert: verlorene Pakete werden automatisch neu angefordert, was professionelles Live-Streaming über unsichere Verbindungen (Satellit, Mobilnetz) ermöglicht.
Welches Protokoll sollte ich für eine Livestream-Anwendung mit niedrigster Latenz wählen? Unter 500ms: WebRTC (für interaktive Anwendungen wie Videokonferenz). 1–3 Sekunden: Low-Latency HLS (LL-HLS) oder Low-Latency DASH (LCEVC + DASH). 3–10 Sekunden: SRT für professionelle Broadcast-Ingest-Kette. Für Zuschauer-Streaming mit ABR-Qualitätsadaption ist LL-HLS der praktischste Standard (Pantos / May, RFC 8216).
Verwandte Einträge
- H.264 / AVC – der meistverbreitete Video-Codec
- AV1 – Open Source Codec der Zukunft
- WebM – Video für das Web
Weiterführend
- Pantos, R. / May, W. (2022): HTTP Live Streaming. RFC 8216. IETF.
- ISO/IEC 23009-1 (2019): Dynamic adaptive streaming over HTTP (DASH) – Part 1: Media presentation description and segment formats. ISO/IEC.
- Stockhammer, T. (2011): Dynamic Adaptive Streaming over HTTP – Standards and Design Principles. In: Proceedings of the ACM MMSys 2011.
- Adobe Systems (2012): RTMP Specification.
- Haivision (2019): SRT Protocol Technical Overview.
