Echtzeit-Übertragung Live mit geringer Latenz

Die zeitliche Verzögerung zwischen dem realen Geschehen vor der Kamera und der Anzeige auf dem Bildschirm des Zuschauers wird "Latenz" genannt.

Die zeitliche Verzögerung zwischen dem realen Geschehen vor der Kamera und der Anzeige auf dem Bildschirm des Zuschauers wird "Latenz" genannt.

Viele Kunden nennen dies auch "Delay" oder "Echtzeit Übertragung". Wichtig ist dies bei Liveübertragungen mit Rückfragen von anderen Standorten, für Online-Auktionen, Versteigerungen, etc.

Die Streaming-Latenz entsteht im Wesentlichen an 3 Punkten:
1) Live-Encoder vor Ort: 0,1 bis 3 Sekunden
2) Streamingserver: 0,1 bis 1,5 Sekunden
3) Videoplayer ca. 4 bis 60 Sekunden per HTML5
(und per Flash- und VLC-Videoplayer ca. 0,1 bis 4 Sek.)

Bei unseren Streamingpaketen ist per Standardeinstellung eine Gesamtlatenz von ca. 10-16 Sek. zu erwarten. Wir können diese auch auf 5-12 Sek. reduzieren.
Hinzu kommen Sonderlösungen z.B. per WebRTC mit 0,5 - 2 Sek. Latenz.

Optimierung von Punkt 1: Live-Encoder vor Ort
Ihr Livebild wird vom Live-Encoder verarbeitet und an den Streamingserver geschickt. Ein Hardware-Encoder ist in der Regel sehr schnell (0,2 - 0,8 Sek.). Software Live-Encoder wie Wirecast oder OBS können auf ca. 0,2 bis 1,5 Sek. konfiguriert werden. 

Optimierung von Punkt 2: Streamingserver
Wir können die Bufferzeiten auf dem Streamingserver auf ca. 0,1 Sek. reduzieren. Zu empfehlen ist eine Bufferzeit von mind. 0,5 Sek. Im Fall einer Übertragung von Ihnen zum Streamingserver per LTE sollte mind. 0,8 bis 1,4 Sekunde konfiguriert werden, um der Latenz der LTE-Datenpakete und dem mobilen Packet Loss gerecht zu werden. Im Fall einer Satellitenübertragung sind 2 Sekunden Buffer zu empfehlen. Diese Konfiguration nehmen wir gerne für Sie vor.

Serverseitig kommt das Live-Transcoding in zusätzliche geringere Auflösungen hinzu (0,3 - 0,5 Sek.), sollte der Zuschauer die geringeren Auflösungen statt Ihrem Originalstream abrufen.

Optimierung von Punkt 3: Player
Der Videoplayer im Browser kann von uns für eine Latenz für Streaming per HTML5 HLS auf ca. 4 bis 12 Sekunden eingestellt werden. Der Wert ist variabel je nach Browser, Mobilgerät, Internetgeschwindigkeit, etc. und kann bei manchen Zuschauern auch länger ausfallen.


Fazit: Soweit es an uns liegt, können Sie mit einer Verzögerung von unter 1 Sekunde übertragen. Das entspricht beispielsweise einer Skype-Verbindung.
 Auf die verfügbare Playertechnologie im Browser des Zuschauers haben wir jedoch keinen Einfluss. Hier steht heutzutage oft nur HTML5 HLS zur Verfügung, um über 99 % der Zuschauer zu erreichen! Für diese sind 5-12 Sekunden Latenz realistisch. Je mehr Bufferzeiten und HLS-Segmentgrößen reduziert werden, desto mehr Zuschauer werden möglicherweise (bei mittelmäßiger Internetverbindung) einen stockenden Livestream oder Nachladezeiten erleben.

Was Sie erwarten können

Bei einer Standard-Konfiguration:
Die normale Latenz von Livestream auf allen unseren Accounts beträgt ca. 10 - 16 Sekunden per HTML5 Video.

Bei einer Konfiguration für geringe Latenz:
In der Summe lässt sich die Übertragungs-Latenz für die breite Masse der Zuschauer auf 5-12 Sekunden reduzieren. 

Je nach älterem Browser und/oder Mobilgerät sowie anderen technischen Umständen kann es Abweichungen nach oben geben. Zudem ist die Verzögerung durch den Live-Encoder bei Ihnen vor Ort zu beachten.

Warum wird nicht immer für eine geringe Latenz konfiguriert?

Der Streamingserver als auch der Videoplayer verwenden normalerweise eine Bufferzeit. Daten werden vorgeladen, um Leitungsschwankungen auszugleichen. Datenpakete werden im Internet nicht 100 % gleichmäßig übertragen. Für einzelne Datenpakete beträgt die Übertragungszeit nur 10 ms (Millisekunden) für andere 500 ms (0,5 Sek.). Im Fall einer Verbindung per 3G / UMTS oder LTE (und noch stärker bei einer Satellitenverbindung) kommen manche Datenpakete erst nach 1 bis 2 Sekunden an. 

- Für herkömmliche Downloads und das Laden einer Webseite mit Text und Bildern ist dies wenig relevant, da die Daten beim Empfänger (unabhängig von der Übertragungszeit) einfach beim Eintreffen zusammengesetzt werden. Der Inhalt der Webseite baut sich mit den empfangenen Daten Stück für Stück auf. Es entscheidet primär die Datenmenge, die insgesamt übertragen wird, nicht die Zeit, welche einzelne Datenpakete benötigen.
- Beim Live-Streaming kommen spät ankommende Datenpakete jedoch "zu spät". Wenn der Stream zeitlich die Position bereits abgespielt hat, zu dem gehörig Datenpakete verspätet ankommen, sind die Daten nutzlos. Der Zuschauer hat dann ggf. ein Rucken/Hängen im Video wahrgenommen. Wenn Datenpakete nicht nur einzeln, sondern reihenweise zu spät kommen, bleibt der Livestream zum Nachladen stehen, ggf. fehlen dann Abschnitte bei der Wiedergabe oder der Stream kann im schlimmsten Fall gar nicht mehr abgespielt werden.

Durch Bufferzeiten wird dies fast vollständig vermieden! Spät eintreffende Datenpakete werden noch rechtzeitig verarbeitet. Deshalb ist eine gewisse Latenz Absicht und wirkt sich sehr positiv aus.

Was ist notwendig bei Ihnen?

Einstellungen im Live-Encoder ohne die eine geringe Latenz nicht möglich ist:
- Stellen Sie bitte den Keyframe-Abstand auf 1 Sek. (falls Sie nur "GOP" einstellen können: GOP: 30).
- Encoding-Profil: "Main"
- Live-Encoder wie OBS und Wirecast sollten für das Encoding unbedingt auf "Zerolatency" bzw. "Low Latency" eingestellt werden.

Alternative: WebRTC

Um per Bild und Ton direkt zu kommunizieren, gibt es Anbieter wie Zoom, webEX und Microsoft Teams. Wie Sie dies mit Streaming kombinieren können lesen sie hier.

Im Laufe dieses Jahres wird wahrscheinlich auch WebRTC seinen Durchbruch haben. Aktuell gibt es hierfür jedoch nur Player die auf die jeweils passenden Browser und aktuelle Browserversionen angewiesen sind. Zudem wird teilweise eine höhere Bandbreite für dieselbe visuelle Qualität benötigt.

Gängige Live-Encoder unterstützen bisher kein WebRTC (Senden zum Streamingserver) und die stattdessen verwendeten eingebauten Live-Encoder im Chrome- und Firefox-Browser haben eine miserable Qualität. Während ein Full-HD 1080p Video in vielen Fällen mit 3 bis 6 MBit/s eine perfekte Bildqualität erreicht, sind bei gleicher Datenrate hier deutlich sichtbare Qualitätseinbußen zu erkennen. Sie kennen dies von z.B. Zoom- und Teams-Sitzungen. Zudem werden vom Browser oft nur angeschlossene Webcams erkannt (keine externen Kameras, Videomischer, Capturehardware, etc.).
Daher wird weiterhin per Live-Encoder mit einer RTMP-Verbindung zum Streamingserver übertragen. Dort wird in das WebRTC Protokoll umgewandelt und vom Player abgerufen. Nur so wird die erwartete Qualität erreicht.

Zur Zeit kommt eine ganz neue Herausforderung hinzu: NAT-Slipstreaming-Angriffe.
Siehe beispielsweise hier bei Heise.
Dieses Angriffsszenario führt bei manchen Firmen dazu, dass die Ports die für WebRTC verwendet würden, blockiert werden. D.h. ein Streaming per WebRTC ist hier nicht mehr möglich, bis für die NAT-Slipstreaming-Angriffe eine Lösung in aktuellen Firewalls und/oder Routern gefunden wurde.

Wir haben die Entwicklung im Auge und haben diverse Szenarien getestet. Bisher genügt dies aber nicht den Ansprüchen die Sie und wir an unsere Streamingpakete stellen. Dies betrifft die Bereiche Zuverlässigkeit, Kompatibilität bzw. Erreichbarkeit von 99 % der Nutzer, professionelle Möglichkeiten des Kameraanschlusses und die Encoding-Qualität.