Extrem niedrige Latenz im Jahr 2021 mit nanocosmos, von Robert Reinhardt

 1.408 seconds of latency: Wirecast broadcast time (left), Browser playback (right)
1.408 seconds of latency: Wirecast broadcast time (left), Browser playback (right)

Robert Reinhardt ist ein international renommierter Experte in Bezug auf Multimedia-Anwendungen, deren Entwicklung und auch was Online-Video angeht – insbesondere aber Live Streaming. Er hat die aktuellen und bevorstehenden Lösungen von nanocosmos genau unter die Lupe genommen und im Februar 2021 im Englischen veröffentlicht: “Im zweiten Monat von 2021 hält der Bedarf nach virtuellen Events und Präsentationen weiter an. Meine Rolle bei Projekten ist verstärkt die, die richtige Technologie zu finden oder den Drittanbieter ausfindig zu machen, der die Anforderungen an ein Online Video Produkt erfüllen kann. Wenn Sie auf der Suche nach Video Streaming mit extrem niedriger Latenz sind, gucken Sie sich nanocosmos genau an- Zeit und Budget werden es wert sein.

Original im Englischen veröffentlicht im Februar 2021.

Ultra Low Latency in 2021 with nanocosmos

Zum Jahresende 2020 wurde ich von nanocosmos angesprochen, ob ich ihre aktuellen und künftigen Dienstleistungsangebote rund um das Streaming mit extrem niedriger Latenz unter die Lupe nehmen könnte. Während ich mich in ihr Angebot einlaß, war es eine willkommene Gelegenheit, die Beta-Version des nanocosmos Bintu-Dashboards zu testen. Innerhalb von 10 Minuten nach der Anmeldung auf ihrem neuen System, konnte ich einen neuen Stream erstellen, einen RTMP-Encoder auf meiner Seite einrichten und eine Testseite auf meinem Webserver mit dem automatisch generierten Quellcode für den Player anlegen. Mit weniger als eineinhalb Sekunden (1,408 Sekunden im ersten Testlauf) waren die Latenzzeiten beeindruckend. Die Tatsache, dass nanocosmos’ Live-Streaming für große Publikumszahlen verwendet werden kann und diese Technologie bereits vor der jüngsten WebRTC Adoption und LL-HLS Bereitstellungsstrategien entwickelt wurde, beeindruckte mich ebenso. Hier ist eine Zusammenfassung von dem, was sich unter der Haube von nanoStream Cloud befindet:

H5Live Player

Die extrem niedrige Latenz von nanocosmos wird angetrieben von einem dreistufigen Übergabesystem des H5Live Players, das drei Arten von ‘Transports/URLs’ unterstützt,

  •  Sichere WebSockets (wss://): Das Herzstück der extrem niedrigen Latenz-Lösung übergibt Audio und Video an WebSockets, ein bi-direktionales Binär-Protokoll, das in Web-Browsern verfügbar ist. Wie der Name schon sagt, wird zwischen dem Web-Browser-Client und dem nanocosmos Cloud-Service eine Socket aufrechterhalten.
  • HLS: Für Betriebssysteme, in denen WebSockets möglicherweise für Audio/Video Decoding nicht verfügbar sind, erstellt nanoStream Cloud auch ein benutzerdefiniertes HLS-Manifest. Diese Variante erzeugt auch extrem niedrige Latenzen von ca. 2 Sekunden (in meinen Tests).
  • Progressives Download: Für alle nicht JavaScript-fähigen Umgebungen wie VLC Player gibt es noch eine dritte Ausweichlösung: das progressive Download für Browser ohne HTML5 MediaSource-Erweiterung oder native HLS-Unterstützung.

Abhängig von dem Stream-Setup im nanocosmos Bintu-Dashboard, muss ggf. ein oder mehrere Transcodes einer bestimmten Einspielung zugeordnet werden, wie im folgenden Abschnitt erörtert. Jede Transcode-Wiedergabe wird in der JavaScript-Konfiguration für den H5Live Player festgelegt. Ich wollte unbedingt die Reaktionsfähigkeit der „Anpassungsfähigkeit” ihrer ABR-Umsetzung auf den Prüfstand bringen. Über WebSockets (der beste Ansatz für extrem niedrige Latenzzeiten im H5Live Player) verwendete ich die Netzwerklink-Conditioner-Systemeinstellungen von Apple, um die Download-Geschwindigkeit während der Wiedergabe in einem Web-Browser zu drosseln. Extreme Änderungen in der Bandbreite benötigten ein paar Sekunden, um bei unterschiedlichen Bitraten eine stabile Wiedergabe zu erzeugen.

Das Erzeugen eines Live-Streams ist der authentifizierte Zugriff für die Anzeige und Wiedergabe erforderlich. Hierfür bietet nanocosmos einen Zugang anhand eines Sicherheitsschlüssels (secure token). Um Kontrolle über die Streams mit solchen Sicherheitsschlüsseln zu ermöglichen, muss ein weiteres Konto bei nanocosmos erstellt werden.

Raum für Verbesserungen des H5Live Player gibt es in zwei speziellen Bereichen: Gestaltungsoptionen und benutzerdefinierte Steuerelemente. Es ist zwar möglich, das Aussehen des H5Live Players den Branding-Anforderungen entsprechend anzupassen, aber leider fehlt hierzu die nötige Dokumentation. Die Menüleiste für den Player besitzt keine Cast-Steuerung, mit der die Wiedergabe auf Chromecast oder Airplay-fähigen Fernsehern möglich wird. Als dieser Artikel geschrieben wurde, war nanocosmos noch dabei, benutzerdefinierte Ausgestaltung leichter zu bewerkstelligen.

 

Ingest Workflow

Wie bereits erwähnt konnte ich dank der cleveren Gestaltung von nanocosmos’ Bintu-Dashboards innerhalb kürzester Zeit einen funktionalen Live-Stream erstellen. Die hierfür verantwortliche Schaltfläche „Create New Stream“ ist über die Schnittstelle erreichbar und ermöglicht Folgendes zu definieren:

  • RTMP oder Webcaster Ingest-Stream: Sie können festlegen, welche Art von Übermittlung Sie für den Einsatz im nanoStream Cloud-Network verwenden werden.
  • Tags: Sie können jedem neuen Stream benutzerdefinierte Bezeichnungen geben, um so Ingest-Streams in Ihrer Übersicht einfacher identifizieren zu können. Ansonsten steht nur die Stream-ID als eindeutige ID zur Verfügung. Tags können zu jedem beliebigen Zeitpunkt nach Streamerstellung im Dashboard hinzugefügt oder entfernt werden.
  • Transcoding-Profil: Sie können für neue Einspielungen bis zu drei Transkodierungen zuweisen. Das Dashboard ermöglicht die Auswahl von Presets basierend auf Auflösung, Bitrate und Bildwechselfrequenz. Stellen Sie sicher, dass das Preset der Bildrate des Ingest-Streams entspricht. Standardmäßig sind Transcoding-Profile auf 25 fps (Bilder pro Sekunde) voreingestellt, was für PAL-basierte Workflows in Europa normal ist.

Meine ersten Tests mit Live-Stream-Encoders nutzten OBS und Videon Edgecaster 4K-Hardware. Ich war problemlos in der Lage, 1080p-Streams mit 30 fps direkt von OBS über RTMP auf nanoStream Cloud zu bekommen. Ähnlich einfach gestaltete sich der RTMP-Ingest aus der Edgecaster 4K-Hardware. Ich habe auch versucht, mit Telestream Wirecast eine RTMP-Einspielung nach nanoStream Cloud zu verschieben, hatte dann aber ein Problem mit der H5Live-Wiedergabe: „Out of sequence B-frames“. Offenbar hat Wirecast ein bekanntes Problem mit der B-Frame-Erstellung in RTMP-Streams. Sobald ich die B-Frame-Erstellung in Wirecast deaktiviert hatte, funktionierte bei der Wiedergabe alles wie erwartet.

Wenn Sie den Webcaster als primären Ingest-Stream-Typen auswählen, liefert das Bintu-Dashboard automatisch einen browser-basierten Publisher, der WebRTC verwendet um den Live Stream nach nanoStream Cloud zu laden. Obwohl der WebCaster WebRTC verwendet, wird die Wiedergabe weiterhin durch die spezifische WebSockets-Umsetzung von nanocosmos erledigt, wie im vorherigen Abschnitt erörtert. Die Latenzzeit war nahezu identisch zu einem RTMP-Schub von Wirecast, nämlich ungefähr 1,5 Sekunden. Ich war beeindruckt von der Benutzerfreundlichkeit des Webcasters im Bintu Dashboard — ich konnte Bezugsquelle, Auflösung und Bitraten für Audio und Videokanäle einstellen.

Die Qualität der Live-Transcodes von nanoStream Cloud war auch exzellent, aber die standardmäßige H5Live Player-Schnittstelle erlaubt es Ihnen nicht, die Transcode-Wiedergaben direkt zu wählen; ich musste auf die Wiedergabe-URL für jede Bitrate zurückgreifen und jede einzeln testen und überprüfen.

 

Kostenüberlegungen

Meine ersten Tests mit Live-Stream-Encoders nutzten OBS und Videon Edgecaster 4K-Hardware. Ich war problemlos in der Lage, 1080p-Streams mit 30 fps direkt von OBS über RTMP auf nanoStream Cloud zu bekommen. Ähnlich einfach gestaltete sich der RTMP-Ingest aus der Edgecaster 4K-Hardware. Ich habe auch versucht, mit Telestream Wirecast eine RTMP-Einspielung nach nanoStream Cloud zu verschieben, hatte dann aber ein Problem mit der H5Live-Wiedergabe: „Out of sequence B-frames“. Offenbar hat Wirecast ein bekanntes Problem mit der B-Frame-Erstellung in RTMP-Streams. Sobald ich die B-Frame-Erstellung in Wirecast deaktiviert hatte, funktionierte bei der Wiedergabe alles wie erwartet.

Wenn Sie den Webcaster als primären Ingest-Stream-Typen auswählen, liefert das Bintu-Dashboard automatisch einen browser-basierten Publisher, der WebRTC verwendet um den Live Stream nach nanoStream Cloud zu laden. Obwohl der Webcaster WebRTC verwendet, wird die Wiedergabe weiterhin durch die spezifische WebSockets-Umsetzung von nanocosmos erledigt, wie im vorherigen Abschnitt erörtert. Die Latenz war nahezu identisch zu einem RTMP-Schub von Wirecast, nämlich ungefähr 1,5 Sekunden. Ich war beeindruckt von der Benutzerfreundlichkeit des Webcasters im Bintu Dashboard — ich konnte Bezugsquelle, Auflösung und Bitraten für Audio und Videokanäle einstellen.

Die Qualität der Live-Transcodes von nanoStream Cloud war auch exzellent, aber die standardmäßige H5Live Player-Schnittstelle erlaubt es Ihnen nicht, die Transcode-Wiedergaben direkt zu wählen; ich musste auf die Wiedergabe-URL für jede Bitrate zurückgreifen und jede einzeln testen und überprüfen.

 

Vorschau

Eine nette Überraschung während meiner Bewertung der nanocosmos Services war die Einladung zur Verwendung einer ganz frühen Preview-Version von nanoMeet, eine von Grund auf neue WebRTC-basierte Plattform für Meetings, die auf einer optimierten Version von Jitsi aufbaut, in die nanoStream Cloud eingebunden ist. nanoMeet ist vollständig browserbasiert, und ich habe die Tagungsräume nur mit Desktop Browsern wie Safari und Chrome getestet. Wie von der WebRTC-Architektur zu erwarten, war die Latenz unterhalb einer Sekunde und die Benutzeroberfläche war intuitiv, schick und leicht zu verwenden. Wie auch der Rest des Serviceangebots von nanocosmos kann nanoMeet als White-Label-Lösung individuell auf Brandinganforderungen ausgerichtet werden.

Auf den ersten Blick denkt man vielleicht: Braucht das Internet ein weiteres Online-Meeting-Tool, wo es in diesem Marktsegment doch bereits so viele gibt? Der interessante Aspekt bzgl. nanoMeet ist jedoch die Integration mit der vorhandenen nanoStream Cloud Architektur: als Live-Stream mit dem integrierten H5Live Player und einer Latenz von weniger als zwei Sekunden kann man eine Versammlung mit einer weitaus größeren Zuschauermenge erreichen. Dabei weisen die meisten Videokonferenz-Optionen heutzutage noch erhebliche Verzögerungen bei Live-Streams von Versammlungen für größere Zielgruppen auf, mit Latenzzeiten bis zu 30 Sekunden.

Abschließend ist festzuhalten, dass Sie bei Ihrer Suche nach Live-Streaming mit geringen Latenzen für Ihre eigene Marke nanoStream Cloud als ernsthaften Mitbewerber berücksichtigen sollten — denn deren Motto „Um die Welt in 1 Sekunde” ist kein leeres Versprechen. Stellen Sie sicher, dass Sie dieses Angebot bei Ihrer sorgfältigen Prüfung in die Vielzahl der anderen verfügbaren mit einschließen.

Robert Reinhardts LinkedIn Profil: linkedin.com/in/adaptivestreaming
Webseite: https://videorx.com/

Leave a Reply