Typische Herausforderungen

Livestream mit Nachladen oder hängender Übertragung

 a)
Wenn Sie sowohl über die selbe Leitung senden als auch empfangen (zur Kontrolle), kann unter Umständen die Kapazität der Internetleitung nicht ausreichen. Angenommen Ihr DSL-16000 Anschluss hat eine Upload-Leistung von 1.000 kbit/s und Download von 16.000 kbit/s, dann werden diese Werte nicht gleichzeitig erreicht, sondern behindern sich ein wenig gegenseitig.

Zudem erreicht z.B. ein regulärer DSL-16000 Anschluss oft nicht diese Maximalwerte, sondern sendet und empfängt evtl. real deutlich weniger als die angegebenen Leistung.

b)
Bei einem S-DSL Anschluss ist dieser Effekt besonders stark. Eine 3000er S-DSL-Leitung stellt die Kapazität nur ein mal zur Verfügung. Wenn sie mit 2000 kbit/s senden, können Sie nur noch mit 1000 kbit/s herunterladen. Senden Sie aber in der Praxis den 2000er Stream und öffnen den Player noch parallel herunter, bleibt für das Senden nur noch 1000 kbit/s übrig und es kommt zu Aussetzern.

c)
Achten Sie auch auf andere Nutzer im selben Netzwerk (insbesondere WLAN oder Funkstrecke). Auch wenn sich während der Übertragung alle Kollegen aus dem Internet fernhalten, könnte ein Windows- oder Virenkiller-Update im Hintergrund geladen werden. Ein Mailserver könnte Mails mit größeren Anhängen senden oder empfangen, etc.

Unsere Kunden hatten auch mehrfach die Beobachtung gemacht, das wenn an einem stark besuchten Veranstaltungsort das WLAN "sichtbar" ist, sich die Handys der Menschenmassen ständig versuchen zu verbinden... dies funktioniert ohne Zugangsdaten zwar nicht, kann aber das WLAN Netz bzw. die Arbeit des Routers so stark beeinflussen, das ein ständiger Packet-Loss entsteht und/oder die real nutzbare Datenrate für das Streaming deutlich sinkt.

d)
Bei mobilen Verbindungen wie UMTS/3G und LTE ist besonders darauf zu achten, das die Verbindung sich ändern kann. An öffentlichen Orten wie einem Messezentrum oder einem Stadion sind die Sendemasten oft besonders schnell mit dem Internet verbunden. Alle Nutzer des Sendemasten teilen sich jedoch dessen Leitungsgeschwindigkeit (vom Masten bis ins Internet).  Beim Testen vor Ihrer Übertragung ist der Datendurchsatz ggf. extrem gut. Wenn jedoch viele Personen im Bereich der Funkzelle ihre Smartphones verwenden, YouTube Videos ansehen, eigene Fotos oder Videos nach Facebook hochladen oder ggf. Ihren Stream vor Ort abrufen kann die Kapazität des Sendemasten schnell überlastet sein. (Hierfür gibt es z.B. bei Vodafone und der Telekom spezielle Verträge, in denen eine priorisierte Nutzung an einem Ort ermöglicht wird.)
Wichtig: in einem solchen Moment ist die Anzeige der Verbindung von Ihrem Gerät bis zum Sendemasten ausgezeichnet! Auf einem Handy werden alle Balken angezeigt. Die mögliche Datenrate der Übertragung ist aber möglicherweise im Bereich von unter einem 1 Mbit/s.
 

e)
Sie können den Speed der Internetverbindung gut über diese Webseite testen: www.speedtest.net (es gibt auch eine App vom selben Anbieter). Beim Ergebnis der Upload-Rate sollte mind. eine 15% Reserve eingeplant werden. Beträgt die Uploadrate z.B. 2800 kbit/s, sollte im Live-Encoder kein Wert über 2400 kbit/s eingestellt werden.

f)
Wenn Sie selbst eine extrem gute Upload-Kapazität zur Verfügung haben, beachten Sie bitte auch die Möglichkeiten Ihrer Zuschauer. Einen Stream von 3000 bis 6000 kbit/s werden viele Zuschauer nicht ohne weiteres abrufen können (beschränkte Verbindungen außerhalb von Ballungsgebieten, mobiler Empfang, Geschwindigkeit des Abspielgerät, ...). Wenn Sie dennoch einen HD-Stream mit top Qualität mit hohen Datenraten verwenden möchten, empfehlen wir verschiedene Stream-Qualitäten parallel zu verwenden. Siehe hier.

Mikro-Ruckler des Videos im Player

Mit "Mikroruckler" sind keine Nachladezeiten in der Videowiedergabe gemeint. Wenn die Wiedergabe für mehrere Sekunden pausiert um Daten zu laden ist dies kein Mikroruckeln. 

Mikroruckler fallen im laufenden Video nur manchen Zuschauern auf. Das Bild bleibt für 0,1 Sek. stehen und läuft dann sofort wieder weiter. Dies kann mehrfach in der Sekunde entstehen oder auch mit längeren Zwischenzeiten bis es erneut auftritt und die Wiedergabe optisch kurz hängt.

Dies ist ein wichtiger Unterschied zu Nachladezeiten, bei denen die Wiedergabe für meistens mehrere Sekunden stehen bleibt um neu Daten zu laden. Bei den Mikrorucklern entsteht das Problem nicht durch Nachladezeiten! (Nachladen steht normalerweise im Zusammenhang mit einer Videodatenrate die höher ausfällt als die Download-Geschwindigkeit des Wiedergabegerät.)

Es gibt typische Gründe für Mikroruckler:

a)
Das abspielende Gerät kann den Videostream nicht sauber mit der Framerate des Stream abspielen. (Das heißt es werden nicht alle 25, 30 oder 60 Bilder in der Sekunde ausgegeben die Sie senden, sondern es fallen einige dieser Bilder aus). Dies passiert beispielsweise häufig bei FullHD Stream auf einem alten PC, Mobilgerät oder einem aktuellen Android-Gerät aus der 70 Euro Preisklasse.
In diesem Fall treten die Mirkoruckler nur hier auf, auf einem parallel laufenden anderen Gerät läuft der Stream aber sauber ab.

b)
Das Problem kann auch bei allen Zuschauern gleichzeitig (an der selben Videoposition) sichtbar werden, wenn die Bildaussetzer bereits im Videostream enthalten sind. Mögliche Ursachen:
- Ihre Kamera ist auf 25, 30 oder 60 fps eingestellt. Sie übertragen das Bild in den PC und die Video-Eingangskarte erkennt das Bild mit einer leicht anderen Framerate (oder wurde z.B. auf 30 fps eingestellt, die Kamera läuft aber mit 29,97 fps).
- Die Kamera läuft mit 60 fps, Ihr Encoding wurde aber auf 25 statt 30 oder 60 fps eingestellt. Die manchmal hierbei entstehenden Hänger im Bildablauf sehen aber normalerweise nur Profis.
- Der Encoder läuft nicht im Optimum und die Bewegungserkennung ist nicht perfekt (ähnliche Bildstrukturen die sich von Bild zu Bild an einen anderen Ort bewegen). Wer gezielt auf die Bildqualität achtet wird dies wahrnehmen. Steht die Kamera fest, aber es bewegt sich ein Bildinhalt (wie ein fahrendes Auto) einmal durchs Bild , bewegt sich dieses leicht sprunghaft, statt flüssig. Hier hilft es die Encoding-Bildrate auf die selben fps wie die Kamera einzustellen.
Für die Bildästhetik ist es oft sinnvoll den Shutter der Kamera etwas länger einzustellen. Standbilder aus dem Video sind dann zwar an bewegten Objekten weniger scharf, dafür wirken Bewegungen im Bild aber "weicher" und weniger künstlich... dies ist aber unabhängig vom Streaming und gilt für jede Videoaufnahme.
- Für Encoder wird empfohlen das die CPU-Auslastung beim Encoding nicht über 70% gehen sollte. Ist bei einem Livestream die CPU im Bereich 75 bis 85% ausgelastet, kann dies dazu führen das eine kompliziertere Bildfolge (Kameraschwenk, Schnitt, viel Bewegung im Bild, etc.) gelegentlich nicht ganz sauber kodiert wird.
Steigt die CPU Auslastung auf 90 oder mehr Prozent, sind die Mikroruckler ständig zu sehen. Möglicherweise gibt es auch "Drop Frames" bei dem Bilder ausgelassen werden, weil sie nicht mehr bearbeitet werden konnten. Dies können je nach "Drop Frame" Anzeige sowohl verpasste Bilder beim Empfang von der Kamera oder nicht kodierte Bilder beim Videoencoding sein.
- Sollte die eingestellte Zieldatenrate bzw. die Kapazität der Internetleitung bei der aktuellen Datenrate nicht ausreichen, bleibt die Wiedergabe kurz stehen (für den Zuschauer). Der Encoder überträgt weiter die Daten, bekommt aber nicht alles durch den Flaschenhals der eingestellten Datenrate oder die Internetleitung hochgeladen. Dies kann zu Mikrorucklern bis hin zu kurzen Aussetzern führen (der Player lädt in dieser Zeit nicht nach, im Sinne von einem leeren Buffer, da er auf dem aktuellen Stand vom Streamingserver ist... dieser die Daten aber einfach in diesem Zustand erhält und weiterleitet.)
Manche Encoder wie der "Flash Media Live Encoder" bieten für eine solche Situation die "Auto Adjust" Funktion. Hier lässt sich gezielt einstellen ob im Zweifelsfall eher weniger Bilder je Sekunde oder lieber eher eine verminderte Videoqualität kodiert werden soll (wenn die Daten nicht durch die Leitung passen bzw. die eingestellte Datenrate zu gering ausfällt im Verhältnis zur Auflösung und Bildinhalt passt). Unsere Empfehlung: wir halten die Option 'degrade Qualität' statt 'drop frames' für die immer bessere Lösung. Führt dies dazu, dass das Bild sichtbar schlechter wird, weil eine gute Bildqualität permanent nicht durch Ihre Internetleitung passt, dann reduzieren Sie die Auflösung. Ein gutes Bild bei nicht optimaler Auflösung ist im Zweifelsfall besser als eine hohe Auflösung bei nicht ausreichender Bildqualität.

Livestream mit zeitlichem Versatz (Latenz, keine Echtzeit)

Auf mobilen Geräten und am PC ohne Flashplayer wird für Livestreaming HTML5 HLS oder MPEG DASH verwendet. Dies entspricht dem aktuellen Stand der Technik und hat keine sinnvollen Alternativen.

Die Übertragungstechnik basiert darauf einen Livestream in kleine Videoabschnitte zu "zerschneiden" (vergleichbar kleinen Videodateien). Diese werden übertragen und im Videoplayer ohne sichtbaren oder hörbaren Übergang durchgehend abgespielt.

Diese Abschnitte wurden von Apple (die HLS als erstes eingeführt haben) ursprünglich auf 30 Sekunden definiert und im Standard mehr oder weniger vorgeschrieben (ab iPhone 3G).
Der Livestream muss daher nach dem Start im Live-Encoder bereits 30 Sekunden übertragen werden, bis der erste Abschnitt fertig zur Verfügung steht und an den Player übertragen werden kann. Zudem hängt die Wiedergabe der realen "Echtzeit" immer 30 Sekunden hinterher (Latenz).

Lösung: wir reduzieren diese Zeit der Abschnitte auf ca. 8-10 Sekunden. Dies reduziert die Latenz deutlich!

Der Livestream erst nach 10-30 Sekunden nach Beginn der Liveübertragung abrufbar

Siehe vorheriger Punkt.

Ein Videostream startet nicht auf mobilen Geräten

Aktuelle Mobilgeräte unterstützten HTML5 HLS: iOS (iPhone, iPad, etc.), Android seit 2-3 Jahren, Blackberry, Kindle HD, etc.

Allerdings gibt es auf diesen Geräten gelegentlich Browser die die vom Gerät und Betriebssystem bereitgestellte Videoengine nicht verwenden und statt dessen eigene Lösungen einbauen. Wenn diese kein HTML5 HLS unterstützen wird es schwierig. Leider gehört der Firefox zu diesen Browsern.

Lösung: wir verwenden eine Browserweiche in unserem Player um diese Geräte zu erkennen. Es wird dann versucht eine per JavaScript nachprogrammierte Unterstützung für HTML5 HLS zu verwenden (Opensource Player cappr). Allerdings benötigt dies eine moderne JavaScript Engine im Browser. Der Browser muss daher aktuell und leistungsfähig sein.

 

Kein Livestream auf iOS oder aktuellen Android Geräten?
- Audio sollte "Stereo" übertragen werden, da manche iOS Versionen beim einem HLS-Stream mit Mono-Tonspur einen Bug haben.
- Video muss im Live-Encoder per "H.264" kodiert werden; Profil "Baseline" oder "Main", aber nicht "High". (Baseline funktioniert überall. Main auf den Mittelklasse bis Highend Geräten der letzten 2 Jahre. "High" oftmals nur auf wenigen Highend-Geräten.)
- Ist Live-Transcoding aktiv, befindet sich ggf. eine "livestream.smil" Datei auf Ihrem FTP-Account. Diese darf nicht gelöscht werden.

Ein spezielles Android Smartphone oder Tablet spielt einen Stream nicht ab

Android unterstützt schon seit langer Zeit das "RTSP" Protokoll für Live- und Dateistreaming. Mindestens seit Version 1.8 ist dies in allen Geräten enthalten.
Ab Android 4.0 wird HLS-Streaming unterstützt. Eine HTML5 Variante die auch Livestreaming möglich macht. Spätestens seit 4.2 ist es auch mit den meisten Unterfunktionen verfügbar (SMIL- / Adaptives Streaming). Dies bietet das iPhone/iPad schon seit Jahren an.

Die Problematik liegt nun bei Android Geräten darin, das die Hersteller wie Samsung, HTC, Sony, etc. oftmals deutlich angepasste Versionen herausgebracht haben. Und hier sind die installierten Browser (z.B. Firefox) je nach Version und Gerät nicht in der Lage das vom Androidsystem bereitgestellte HLS-Streaming auch wiederzugeben. Während es auf dem Chrome-Browser auf einem Tablet oder Smartphone z.B. funktioniert, kann ein Firefox Browser möglicherweise kein Livestreaming wiedergeben.

Samsung hat bei einigen Galaxy-Tablets einen Fehler im System, so das "Spulen" in einem Dateistream nur möglich ist, wenn das Video im Vollbildmodus abgespielt wird. Bei normaler Darstellung in der Webseite stürzt der Player ab.

Unser aktueller Player verwendet hier automatisch eine verfügbare Lösung. Beispielsweise auf alten Geräten das RTP/RTSP Protokoll und auf aktuellen Systemen eine JavaScript Lösung die das fehlende HTML5 HLS per Programmierung nachahmt (clappr-Player).

Sollte es auf einem Gerät dennoch Probleme geben, helfen wir Ihnen gerne individuell weiter. Bitte folgen Sie dieser Anleitung.

Streaming per JVC Stream Kamera

Leider zeigen die JVC Camcorder nur bedingt Fehler oder Übertragungs-Beschränkungen an.

Die Übertragung per UDP ist grundsätzlich kein Problem (RTSP und RTMP sind auch gerne möglich). Jedoch bemerkt die Kamerasteuerung es nicht, wenn die Datenrate zu hoch eingestellt ist. Der Videostream kann nicht in der Geschwindigkeit durch die Leitung übertragen werden, wie neue Daten entstehen. Es stockt, etc. und die Kamera sendet einfach immer weiter.

 Dies ist zumindest ein schon häufiger aufgetretenes Problem bei unseren Kunden mit dieser Kamera. Der Flashplayer kann in diesem Fall aus einem unvollständigem Stream mit kleinen Aussetzern gelegentlich noch ein Bild generieren, das kleine Hänger oder Bildfehler enthält. Auf mobilen Geräten bricht die Wiedergabe jedoch ab oder kann gar nicht erst aufgebaut werden.

Falls ähnliche Symptome bei Ihrem Testen bestehen, empfehlen wir im ersten Schritt die Auslösung und Datenrate testweise stark herabzusetzen. Z.B. auf 320x180 Pixel bei 300 kbit/s (0,3 MBit/s). Hier geht es nicht um die Qualität, sondern lediglich darum zu prüfen ob die Übertragung dann funktioniert. Wenn ja, können Sie die Datenrate und Auflösung Schritt für Schritt erhöhen und testen.

Als Bandbreiten-Test können wir die Webseite www.speedtest.net empfehlen. Es sollten mind. 15% der maximalen Upload-Geschwindigkeit als Reserve betrachtet werden. Bei mobilen Verbindungen gerne mehr.

Live-Streaming zu Windows Phone

Grundsätzlich schwierig verhalten sich aktuelle Microsoft Smartphones: Windows Phone 7 (WP7) und Tablets auf gleicher technischer Basis. Sie unterstützen bisher kein HTML5 HLS Streaming (und natürlich keinen Flashplayer). Ein VLC-Player oder ähnliches wird auch nicht aufgerufen, wenn eine RTSP-Adresse als Link angezeigt wird.

Auf der XBox One geht Microsoft zwischenzeitlich schon andere Wege und unterstützt die aktuellen Webstandards.

Microsoft bietet selber "Smooth Streaming" als Lösung an, eine eigene Technologie. Doch leider funktioniert ein Smoothstream (der mit dem Microsoft Silverlight-Player auf dem PC funktioniert) nicht unbedingt auf diesen mobilen Geräten. Wir möchten daher für diese Randgruppe momentan kein Livestreaming anbieten und gehen davon aus das Microsoft mit einem der nächsten Updates die HLS-Unterstützung nachreichen wird.

Parallel verwendet unser Player eine JavaScript basierte Lösung um dennoch HTML5 HLS abspielen zu können. Auf den aktuellen Windows Phones funktioniert dies einwandfrei.