Leitfaden zu bewährten Methoden für Livestreaming mit Media Services

Kund*innen fragen häufig, wie sie die Latenz ihres Livestreams reduzieren können. In diesem Artikel werden bewährte Methoden zum Erreichen von Livestreams mit geringer Latenz und zusätzlich zur Liveereigniscodierung beschrieben.

Hinweis

Bevor Sie mit dem Lesen dieses Artikels fortfahren, lesen Sie den Artikel HLS mit geringer Latenz (LOW Latency HLS, LL-HLS), um die niedrige Latenz bei der Liveereigniscodierung zu verstehen. Kehren Sie dann zu diesem Leitfaden zurück, um zu verstehen, was sich noch auf die Streaminglatenz auswirken kann.

Neben der Codierung des Mediums gibt es viele Faktoren, die die End-to-End-Latenz eines Datenstroms bestimmen. Im Folgenden sind einige Faktoren aufgeführt, die Sie berücksichtigen sollten:

  1. Verzögerungen auf der Seite des Beitragsencoders. Wenn Kund*innen eine Codierungssoftware wie OBS Studio oder Wirecast verwenden, um einen RTMP-Livestream an Media Services zu senden. Die Einstellungen dieser Software wirken sich auf die End-to-End-Latenz eines Livestreams aus.

  2. Verzögerungen in der Livestreaming-Pipeline innerhalb von Azure Media Services

  3. CDN-Leistung.

  4. Pufferungsalgorithmen des Videoplayers und Netzwerkbedingungen auf Clientseite.

  5. Zeitpunkt der Bereitstellung.

Beitragsencoder

Bevor der RTMP-Stream Media Services erreicht, haben Sie über den Quellencoder Einfluss auf die Streamingeinstellungen. Im Folgenden finden Sie einige Empfehlungen für die Einstellungen, mit denen Sie die geringstmögliche Latenz erzielen:

  1. Wählen Sie die physische Region aus, die dem Beitragsencoder Ihres Media Services-Kontos am nächsten liegt. Dadurch stellen Sie eine herausragende Netzwerkverbindung mit Ihrem Media Services-Konto sicher.

  2. Verwenden Sie eine einheitliche Fragmentgröße. Es wird eine GOP-Größe von 2 Sekunden empfohlen. Der Standardwert für einige Encoder wie OBS beträgt 8 Sekunden. Diese Einstellung sollten Sie unbedingt ändern.

  3. Verwenden Sie den GPU-Encoder, wenn Ihre Codierungssoftware dies zulässt. Dadurch können Sie CPU-Arbeit auf die GPU auslagern.

  4. Verwenden Sie ein Codierungsprofil, das für geringe Latenz optimiert ist. Wenn Sie beispielsweise bei OBS Studio den Encoder Nvidia H.264 verwenden, ist möglicherweise „zero latency“ (Keine Latenz) voreingestellt.

  5. Senden Sie Inhalte mit einer Auflösung, die nicht höher ist, als gestreamt werden soll. Wenn Sie beispielsweise Liveereignisse mit der Standardcodierung von 720p verwenden, senden Sie einen Stream, der bereits 720p aufweist.

  6. Halten Sie Ihre Framerate bei maximal 30 BpS, es sei denn, Sie verwenden Passthrough-Liveereignisse. Es werden zwar Eingaben mit 60 BpS für Liveereignisse unterstützt, bei Codierungsausgaben für Liveereignisse beträgt die Bildrate jedoch maximal 30 BpS. Für HLS mit niedriger Latenz wird die feste Bildrate empfohlen, und die maximale Framedauer sollte 0,5 Sekunden nicht überschreiten, um die beste Benutzererfahrung zu erzielen.

Konfiguration von Azure Media Services-Liveereignissen

Im Folgenden sind einige Konfigurationen aufgeführt, mit denen Sie die Latenz in unserer Pipeline reduzieren können:

  1. Verwenden Sie die Streamoptionen mit geringer Latenz für Liveereignisse. Verwenden Sie für die Streamoptionen Standardcodierung (bis zu 720p) und Premium-Codierung (bis zu 1080p) die Einstellung "Streamlatenz" mit niedriger Latenz, es sei denn, Sie benötigen ein DVR-Fenster, das länger als 6 Stunden oder eine reibungslose Streamingausgabe ist.

  2. Es wird empfohlen, die für die HLS- und DASH-Wiedergabe CMAF-Ausgabe auszuwählen. So können Sie für beide Formate die gleichen Fragmente freigeben. Dadurch erhöht sich bei Verwendung eines CDN die Cachetrefferquote. Beispiel:

    Typ Format URL-Beispiel
    HLS CMAF format=m3u8-cmaf https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=m3u8-cmaf)
    MPEG-DASH CMAF format=mpd-time-cmaf https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=mpd-time-cmaf)
  3. Wenn Sie die TS-Ausgabe auswählen müssen, verwenden Sie ein HLS-Komprimierungsverhältnis von 1. Dadurch ist es möglich, jeweils nur ein Fragment pro HLS-Segment zu komprimieren. In nativen Apple-Playern können Sie die Vorteile von LL-HLS nicht in vollem Umfang nutzen.

Playeroptimierungen

Achten Sie beim Auswählen und Konfigurieren eines Videoplayers darauf, dass Sie Einstellungen verwenden, die für eine geringere Latenz optimiert sind.

Media Services unterstützt die Streamingprotokollausgaben DASH, HLS mit TS-Ausgabe und HLS mit CMAF-Fragmenten. Bei Verwendung der Streamingoption LowLatencyV2 müssen Sie einen Player verwenden, der Low Latency HLS (LL-HLS) unterstützt. Je nach Implementierung des Players wirken sich die Entscheidungen zur Pufferung auf die vom Betrachter wahrzunehmende Latenz aus. Schlechte Netzwerkbedingungen oder Standardalgorithmen zur Verbesserung von Qualität und Stabilität der Wiedergabe können dazu führen, dass Player zur Vermeidung von Unterbrechungen während der Wiedergabe mehr Inhalte vorab puffern. Durch Puffer vor und während der Wiedergabesitzungen wird die End-to-End-Latenz erhöht.

Wenn Azure Media Player verwendet wird, wird der Player durch das Profil Low Latency Heuristics (Heuristik mit geringer Latenz) optimiert, sodass er die geringstmögliche Latenz aufweist. Allerdings unterstützt dieser Player nur DASH – es sei denn, er wird auf Safari auf Apple-Geräten verwendet.

CDN-Auswahl und -Optimierungen

Streamingendpunkte sind die Ursprungsserver, die die Live- und VoD-Streaminginhalte direkt an das CDN oder den Kunden übermitteln. Es ist am besten, ein Content Delivery Network (CDN) mit einem abgeschirmten Ursprung zu verwenden, um sicherzustellen, dass der Datenverkehr für Ihre Medieninhalte effizient übermittelt wird.

Es wird empfohlen, Azure CDN zu verwenden, das von Verizon (Standard oder Premium) bereitgestellt wird. Die Integration wurde so optimiert, dass Kund*innen dieses CDN mit nur einer Auswahl im Azure-Portal konfigurieren können. Stellen Sie sicher, dass Sie Origin Shield und Streamingoptimierungen für Ihren CDN-Endpunkt aktivieren, wenn Sie Ihren Streamingendpunkt starten.

Unsere Kund*innen haben auch gute Erfahrungen mit eigenen CDNs gemacht. Stellen Sie sicher, dass auf dem CDN Maßnahmen ergriffen werden, um den Ursprung vor übermäßigem Datenverkehr zu schützen.

Sie können auch die Leistung verbessern, indem Sie Regeln für das CDN-Profil konfigurieren. Weitere Informationen finden Sie unter Aktivieren von CDN-Optimierungen.

Skalierung von Streamingendpunkten

Hinweis

Ein Standardstreamingendpunkt/-ursprung ist eine freigegebene Ressource, die es Kund*innen mit geringem Datenverkehrsvolumen ermöglicht, Inhalte zu geringeren Kosten zu streamen. Ein Standardstreamingendpunkt sollte nicht zum Skalieren von Streamingeinheiten verwendet werden, wenn ein hohes Datenverkehrsvolumen erwartet wird oder ein CDN verwendet werden soll.

Ein Premium-Streamingendpunkt/-ursprung bietet Kund*innen mehr Flexibilität bei der Skalierung und bessere Möglichkeiten bei der Isolation, da dedizierte Streamingeinheiten hinzugefügt oder entfernt werden können. Eine Streamingeinheit ist eine Computeressource, die einem Streamingendpunkt zugeordnet ist. Jede Streamingeinheit kann etwa 200 MBit/s Datenverkehr streamen.

Es ist zwar möglich, viele Liveereignisse gleichzeitig mit demselben Streamingendpunkt zu streamen. Für einen Streamingendpunkt werden jedoch standardmäßig maximal 10 Streamingeinheiten benötigt. Wenn Sie mehr als die 10 standardmäßigen Streamingeinheiten anfordern möchten, können Sie ein Supportticket öffnen.

Ermitteln der erforderlichen Premium-Streamingeinheiten

Die Anzahl der erforderlichen Streamingendpunkte und Streamingeinheiten wird in zwei Schritten ermittelt:

  1. Ermitteln der insgesamt erforderlichen ausgehenden Daten

  2. Dividieren der insgesamt ausgehenden Daten durch 200 (maximale Anzahl von MBit/s, die pro Streamingeinheit gestreamt werden kann)

Ermitteln der insgesamt erforderlichen ausgehenden Daten

Ermitteln Sie mithilfe der folgenden Formel die insgesamt erforderlichen ausgehenden Daten.

Insgesamt erforderliche ausgehende Daten = durchschnittliche Bandbreite x Anzahl der gleichzeitigen Zuschauer*innen x Prozentsatz, der vom Streamingendpunkt verarbeitet wird.

Sehen wir uns die einzelnen Multiplikatoren der Reihe nach an:

Durchschnittliche Bandbreite. Wie hoch ist die Bitrate, die Sie durchschnittlich streamen möchten? Anders ausgedrückt: Wenn mehrere Bitraten verfügbar sind, welche Bitrate entspricht dann dem Durchschnitt aller geplanten Bitraten? Diesen Wert können Sie mit einer der folgenden Methoden schätzen:

Liveereignis, bei dem eine Codierung verwendet wird:

  • Wenn Sie nicht wissen, wie hoch Ihre durchschnittliche Bandbreite ist, können Sie unsere höchsten Bitraten als Schätzwert verwenden. Unsere maximale Bitrate beträgt 5,5 MBit/s für 1080p-codierte Liveereignisse. Somit beträgt Ihre durchschnittliche Bitrate etwa 3,5 MBit/s.

  • Sehen Sie sich die zum Codieren des Liveereignisses verwendeten Codierungsvoreinstellung an, z. B. die Voreinstellung „AdaptiveStreaming(H.264)“. Ein Beispiel für die Ausgabe finden Sie hier.

Liveereignis, bei dem lediglich Passthrough und keine Codierung verwendet wird:

  • Verschaffen Sie sich einen Überblick über die von Ihrem lokalen Encoder für die Codierung verwendete Bitratenreihe.

Anzahl gleichzeitiger Zuschauer*innen Wie viele gleichzeitige Zuschauer*innen werden erwartet? Dies ist möglicherweise schwer abzuschätzen, aber versuchen Sie es auf Basis Ihrer Kundendaten. Streamen Sie eine Konferenz an ein globales Publikum? Planen Sie einen Livestream, um Ihren Kund*innen verschiedene Produkte zu verkaufen?

Prozentsatz des Datenverkehrs, der vom Streamingendpunkt verarbeitet wird. Dieser Wert kann als „Prozentsatz des Datenverkehrs, der nicht vom CDN übernommen wird“ ausgedrückt werden, da dies die Anzahl ist, die in der Formel verwendet wird. Wie hoch ist vor diesem Hintergrund also die erwartete Auslagerung ins CDN? Wenn vom CDN voraussichtlich 90 % des Livedatenverkehrs übernommen wird, werden nur 10 % des Datenverkehrs für den Streamingendpunkt erwartet. In der Formel wird die Zahl 0,1 verwendet. Diese Zahl entspricht dem Prozentsatz des Datenverkehrs, der auf dem Streamingendpunkt erwartet wird.

Ermitteln der Anzahl der erforderlichen Premium-Streamingeinheiten

Erforderliche Premium-Streamingeinheiten = durchschnittliche Bandbreite x Anzahl der Zuschauer*innen x Prozentsatz des Datenverkehrs, der nicht vom CDN übernommen wird / 200 MBit/s

Beispiel

Sie haben vor kurzem ein neues Produkt auf den Markt gebracht und möchten es Ihren bestehenden Kund*innen vorstellen. Sie wünschen sich eine geringe Latenz, da Sie Ihr ohnehin bereits ausgelastetes Publikum nicht frustrieren möchten. Daher verwenden Sie Premium-Streamingendpunkte und ein CDN.

Sie haben etwa 100.000 Kund*innen, aber wahrscheinlich werden sich nicht alle Ihr Liveereignis ansehen. Sie gehen davon aus, dass im besten Fall lediglich 1 % der Kund*innen teilnehmen wird, sodass Sie 1.000 Zuschauer*innen gleichzeitig erwarten.

Anzahl gleichzeitiger Benutzer*innen =1.000

Sie möchten Ihren Livestream mit Media Services codieren und kein Passthrough verwenden. Sie wissen nicht, wie hoch die durchschnittliche Bandbreite sein wird, aber Sie wissen, dass Sie 1080p bereitstellen (höchste Bitrate von 5,5 Mbit/s), sodass Ihre durchschnittliche Bandbreite für Ihre Berechnungen auf 3,5 Mbit/s geschätzt wird.

Durchschnittliche Bandbreite =3,5

Da Ihr Publikum weltweit verteilt ist, gehen Sie davon aus, dass der Großteil (90 %) des Livedatenverkehrs vom CDN übernommen wird. Daher übernehmen die Premium-Streamingendpunkte nur 10 % des Datenverkehrs.

Prozentsatz, der vom Streamingendpunkt verarbeitet wird =10 % = 0,1

Mit der obigen Formel ergibt sich Folgendes:

Insgesamt erforderliche ausgehende Daten = durchschnittliche Bandbreite x Anzahl der gleichzeitigen Zuschauer*innen x Prozentsatz, der vom Streamingendpunkt verarbeitet wird.

Insgesamt erforderliche ausgehende Daten = 3,5 x 1.000 x 0,1

Insgesamt erforderliche ausgehende Daten = 350 MBit/s

Durch Dividieren der insgesamt ausgehenden Daten durch 200 ergibt sich ein Bedarf von 1,75 Premium-Streamingeinheiten.

Erforderliche Premium-Streamingeinheiten = insgesamt erforderliche ausgehende Daten/200 MBit/s

Erforderliche Premium-Streamingeinheiten = 1,75

Wir runden diese Zahl auf 2 auf, sodass wir 2 Einheiten benötigen.

Verwenden des Portals zum Schätzen des Bedarfs

Mit dem Azure-Portal können Sie den Bedarf ganz einfach berechnen. Auf der Seite „Streaming“ können Sie mit dem bereitgestellten Rechner die geschätzte Zielgruppenreichweite anzeigen, indem Sie die durchschnittliche Bandbreite, die CDN-Trefferquote und die Anzahl der Streamingeinheiten ändern.

  1. Wählen Sie hierzu auf der Seite „Media Services-Konto“ im Menü die Option Streamingendpunkte aus.

  2. Fügen Sie einen neuen Streamingendpunkt hinzu, indem Sie Add streaming endpoint (Streamingendpunkt hinzufügen) auswählen.

  3. Geben Sie dem Streamingendpunkt einen Namen.

  4. Wählen Sie Premium-Streamingendpunkt als Streamingendpunkttyp aus.

  5. Da Sie zu diesem Zeitpunkt nur eine Schätzung erhalten, sollten Sie den Streamingendpunkt nach der Erstellung nicht starten. Wählen Sie Nein aus.

  6. Wählen Sie als CDN-Tarif Standard Verizon oder Premium Verizon aus. Der Profilname ändert sich entsprechend. Behalten Sie den Namen für diese Übung bei.

  7. Wählen Sie für das CDN-Profil Neues Element erstellen aus.

  8. Klicken Sie auf Erstellen. Nachdem der Endpunkt bereitgestellt wurde, wird der Bildschirm mit den Streamingendpunkten angezeigt.

  9. Wählen Sie den Streamingendpunkt aus, den Sie gerade erstellt haben. Der Bildschirm mit dem Streamingendpunkt wird den geschätzten Publikumsreichweiten angezeigt.

  10. Die Standardeinstellung für den Streamingendpunkt mit einer Streamingeinheit zeigt, dass schätzungsweise 571 Zuschauer*innen gleichzeitig mit 3,5 Mbit/s streamen können, wobei 90 % des CDN und 10 % des Streamingendpunkts genutzt werden.

  11. Ändern Sie den Prozentsatz der Quelle der ausgehenden Daten von 90 % vom CDN-Cache in 0 %. Der Rechner schätzt, dass ohne CDN 57 Zuschauer*innen gleichzeitig mit 3,5 MBit/s bei 200 MBit/s streamen können.

  12. Ändern Sie nun die Quelle der ausgehenden Daten wieder in 90 %.

  13. Ändern Sie anschließend den Wert für die Streamingeinheiten in 2. Der Rechner schätzt, dass 1143 Zuschauer*innen gleichzeitig mit 3,5 MBit/s und 4000 MBit/s streamen können, wobei das CDN 90 % des Datenverkehrs übernimmt.

  14. Wählen Sie Speichern aus.

  15. Sie können den Streamingendpunkt starten und Daten an den Streamingendpunkt senden. Mit den Metriken am unteren Bildschirmrand wird der tatsächliche Datenverkehr nachverfolgt.

Zeitliche Steuerung

Sie sollten Streamingeinheiten eine Stunde vor der erwarteten Spitzenauslastung bereitstellen, um sicherzustellen, dass die Streamingeinheiten bereit sind

Anfordern von Hilfe und Support

Sie können Media Services mit Fragen kontaktieren oder unsere Updates mit einer der folgenden Methoden verfolgen: