EFFIZIENTES STREAMING VON MULTICODEC-VIDEO

Bild von JESS R
JESS R

In den letzten zehn Jahren wurde die Mehrheit der über das Internet übertragenen Videoströme mit dem ITU-T H.264 / MPEG-4 AVC Videocodec codiert. Dieser Codec wurde in den frühen 2000er Jahren entwickelt und wird inzwischen von einer Vielzahl von Geräten und Computerplattformen mit einer bemerkenswerten Reichweite von 97,93 % unterstützt.

Bild1

Was die Technologie betrifft, ist dieser Codec jedoch schon ziemlich alt. In den letzten Jahren wurden zwei neue Codecs eingeführt: HEVC von den ITU-T- und MPEG-Normengruppen und AV1 von der Alliance for Open Media. Beide behaupten, die Komprimierungseffizienz gegenüber H.264/AVC um mindestens 50 % zu steigern.

Theoretisch sollten diese Vorteile zu einer erheblichen Senkung der Streaming-Kosten führen. In der Praxis können diese neuen Codecs jedoch nur bestimmte Teilmengen der vorhandenen Geräte oder Webbrowser erreichen. HEVC beispielsweise hat Berichten zufolge nur eine Reichweite von 18,73 %, was hauptsächlich auf Apple-Geräte und Geräte mit Hardware-HEVC-Unterstützung zurückzuführen ist. Die Unterstützung von AV1 durch Webbrowser ist höher, wird aber von Apple-Geräten und den meisten bestehenden Set-Top-Box-Plattformen nicht unterstützt.

Bild2

Diese Situation wirft die Frage auf: Wie kann man angesichts einer derart fragmentierten Unterstützung neuer Codecs auf verschiedenen Geräten ein Streaming-System entwerfen, das alle Geräte mit der größtmöglichen Effizienz erreicht?

In diesem Blogbeitrag versuchen wir, diese Frage zu beantworten, indem wir das Konzept des Multicodec-Streaming vorstellen und die wichtigsten Elemente und Technologien erläutern, die wir zur Unterstützung der Brightcove-Plattform Video Cloud entwickelt haben.

STREAMING MIT ADAPTIVER BITRATE 101

Bevor wir uns mit dem Multicodec-Streaming befassen, wollen wir kurz die wichtigsten Grundsätze der Funktionsweise moderner Streaming-Systeme mit adaptiver Bitrate (ABR) erläutern. In der folgenden Abbildung ist ein konzeptionelles Diagramm eines solchen Systems dargestellt. Der Einfachheit halber konzentrieren wir uns auf den Fall der VOD-Bereitstellung.

Bild8

Wenn ein Video-Asset für das ABR-Streaming vorbereitet wird, wird es in der Regel in mehrere Wiedergabeversionen (oder Variantenströme) transcodiert. Diese Wiedergabeversionen haben in der Regel unterschiedliche Bitraten, Auflösungen und andere Parameter auf Codec- und Präsentationsebene.

Sobald alle Wiedergabedateien erstellt sind, werden sie auf dem Ursprungsserver abgelegt. Zusammen mit dem Satz von Wiedergabeversionen erhält der Ursprungsserver auch eine spezielle Manifestdatei, in der die Eigenschaften der kodierten Streams beschrieben werden. Solche Manifeste werden in der Regel in den Formaten HLS oder MPEG DASH präsentiert. Die anschließende Bereitstellung der kodierten Inhalte an die Benutzergeräte erfolgt über HTTP und unter Verwendung eines Content Delivery Network (CDN), das die Zuverlässigkeit und Skalierbarkeit des Bereitstellungssystems gewährleistet.

Zum Abspielen der Videoinhalte verwenden die Geräte der Nutzer eine spezielle Software, einen so genannten Streaming-Client. In der einfachsten Form kann ein Streaming-Client ein JavaScript sein, das von einem Webbrowser ausgeführt wird. Es kann sich auch um eine benutzerdefinierte Anwendung oder einen vom Betriebssystem bereitgestellten Videoplayer handeln. Unabhängig von der Implementierung enthalten die meisten Streaming-Clients eine Logik für die adaptive Auswahl von Streams/Renditionen während der Wiedergabe.

Wenn der Client beispielsweise feststellt, dass die beobachtete Netzwerkbandbreite zu gering ist, um die Echtzeitwiedergabe des aktuellen Streams zu unterstützen, kann er beschließen, zu einem Stream mit niedrigerer Bitrate zu wechseln. Dadurch wird Pufferung vermieden. Andernfalls, wenn die Bandbreite ausreicht, kann der Client zu einer höheren Bitrate wechseln, d. h. zu einem qualitativ hochwertigeren Stream, was zu einer besseren Qualität des Erlebnisses führt. Diese Logik macht die Streaming-Bereitstellung anpassungsfähig. Sie ist auch der Grund, warum Videos immer in mehrere (in der Regel 5-10) Streams transkodiert werden.

Das im obigen Diagramm dargestellte System hat zwei zusätzliche Komponenten: Das Analysesystem, das die Wiedergabestatistiken von CDNs und Streaming-Clients sammelt, und der ABR-Codierungsleitergenerator, der die Anzahl und die Eigenschaften der zu erstellenden Wiedergabeversionen festlegt. Im Brightcove Video Cloud -System entspricht dieser Block unserem CAE-Modul ( Context-Aware Encoding ).

DIE MIT DEM STREAMING-SYSTEM ERREICHBARE KODIERUNGSLEITER UND QUALITÄT

Betrachten wir nun ein Beispiel für eine Kodierungsleiter, die für das Streaming verwendet werden kann. Dieses spezielle Beispiel wurde von Brightcove CAE für Actionfilm-Videocontent erstellt.

Bildschirmfoto 2021-03-23 um 8.37.41 AM

Wie unschwer zu erkennen ist, definiert die Kodierungsleiter fünf Streams, die die Bereitstellung von Videos mit Auflösungen von 216p bis 1080p und einer Bandbreite von 260 bis 4200 Kbps ermöglichen. Alle Streams werden mit dem H.264/AVC-Codec erzeugt. In der letzten Spalte dieser Tabelle sind die Werte für die wahrgenommene visuelle Qualität aufgeführt, die für die Wiedergabe dieser Wiedergaben auf einem PC-Bildschirm geschätzt wurden. Diese Werte werden anhand der MOS-Skala ( Mean Opinion Score ) angegeben. MOS-Wert fünf bedeutet ausgezeichnete Qualität, während Wert eins bedeutet, dass die Qualität schlecht ist.

Als Nächstes werden die Punkte (Bitrate, Qualität) aufgetragen, die den Wiedergaben entsprechen, sowie die beste Qualität, die das Streaming-System bei unterschiedlicher Netzwerkbandbreite erreichen kann. Daraus ergibt sich eine Stufenfunktion, die in Blau dargestellt ist.

Bild3

In der obigen Abbildung ist auch die so genannte Qualitätsraten-Modellfunktion [1-3] dargestellt, die die bestmöglichen Qualitätswerte beschreibt, die bei der Codierung desselben Inhalts mit demselben Codierer erreicht werden können. Diese Funktion wird durch eine gestrichelte rote Kurve dargestellt.

Wie leicht zu erkennen ist, werden die Wiedergabepunkte bei einem geeigneten Leiterdesign zu einer Teilmenge von Punkten aus dem Qualitätsratenmodell, und die Stufenfunktion, die die durch Streaming erreichbare Qualität beschreibt, wird zu einer Annäherung an dieses Modell. Was die Qualität des Streaming-Systems beeinflusst, ist die Anzahl der Wiedergaben in der Codierungsleiter sowie die Platzierung der Wiedergaben entlang der Bandbreitenachse. Je näher die sich ergebende Stufenfunktion am Qualitätsratenmodell liegt, desto besser ist die Qualität, die das Streaming-System liefern kann.

Das bedeutet, dass Kodierungsprofile/Leitungen für ABR-Streaming sorgfältig entworfen werden müssen. Aus diesem Grund verwenden die meisten modernen Streaming-Systeme spezielle Profilgeneratoren, die diesen Schritt dynamisch durchführen, indem sie die Eigenschaften des Inhalts, der Netzwerke und anderer relevanter Kontexte berücksichtigen.

Weitere Einzelheiten zu mathematischen Methoden, die für die Konstruktion von Qualitätsratenmodellen und die Generierung optimaler Codierungsleitern verwendet werden können, finden sich in den Referenzen [1-5].

MULTICODEC-STREAMING: WICHTIGSTE GRUNDSÄTZE

Nachdem wir nun die wichtigsten Konzepte erklärt haben, können wir uns nun dem Multicodec-Streaming zuwenden.

Um dies zu verdeutlichen, betrachten wir ein Beispiel für eine Kodierungsleiter, die mit zwei Codecs erstellt wurde: H.264/AVC und HEVC. Auch hier wurde Brightcove CAE zur Erstellung verwendet.

Bildschirmfoto 2021-03-23 um 8.38.05 Uhr

Die Diagramme der Wiedergabepunkte, der Qualitätsratenmodelle und der von Streaming-Clients erreichbaren Qualität bei der Dekodierung von H.264- und HEVC-Streams sind in der folgenden Abbildung dargestellt.

Bild4

Wie unschwer zu erkennen ist, ist die Qualitäts-Raten-Modellfunktion für HEVC durchweg besser als das Qualitäts-Raten-Modell für H.264/AVC. Aus demselben Grund sollten HEVC-Wiedergaben auch ein besseres Qualitäts-Raten-Verhältnis aufweisen als Wiedergaben, die mit einem H.264/AVC-Encoder kodiert wurden.

Wenn man jedoch bedenkt, dass es in der Regel nur wenige Wiedergabepunkte gibt und diese spärlich und in einem verschachtelten Muster platziert sein können, kann dies zu Bitratenbereichen führen, in denen H.264/AVC-Wiedergaben eine bessere Qualität liefern als die nächste HEVC-Wiedergabe mit geringerer oder gleicher Bitrate. Solche Bereiche sind in der obigen Abbildung zu sehen, wenn die Stufenfunktionen für H.264/AVC-Clients über die gleichen Funktionen für HEVC-Clients hinausgehen.

Was bedeutet das? Es bedeutet, dass mit einer Zwei-Codec-Leiter die Dekodierung nur von HEVC-kodierten Streams nicht automatisch zur bestmöglichen Qualität führt! Eine noch bessere Qualität kann von Clients erreicht werden, die selektiv und intelligent zwischen H.264/AVC- und HEVC-Streams wechseln. Die folgende Grafik veranschaulicht die Qualität, die mit solchen "Zwei-Codec-Clients" erreicht werden kann.

Bild5

In diesem Beispiel kann der Zwei-Codec-Client neun Anpassungsschritte statt nur fünf in HEVC- oder reinen H.264-Leitern vornehmen. Dies ermöglicht eine bessere Nutzung der verfügbaren Netzwerkbandbreite und eine insgesamt bessere Qualität.

UNTERSTÜTZUNG VON MULTICODEC-FUNKTIONEN IN BESTEHENDEN STREAMING-CLIENTS

Wie wir gerade gesehen haben, ist die Fähigkeit des Streaming-Clients, nicht nur zu dekodieren, sondern auch intelligent und nahtlos zwischen H.264/AVC- und HEVC-Streams zu wechseln, äußerst wichtig. Dies führt zu einer besseren Qualität und ermöglicht es, weniger Streams/Renditionen zu erzeugen, was die Kosten für das Streaming senkt.

Allerdings verfügen nicht alle vorhandenen Streaming-Clients über eine solche Fähigkeit. Die bekanntesten Beispiele für Clients, die dies gut können, sind die nativen Player in aktuellen Apple-Geräten: iPhones, iPads, Mac-Computer usw. Sie können nahtlos zwischen H.264/AVC- und HEVC-Streams dekodieren und umschalten. Die neueren Versionen der Browser Chrome und Firefox unterstützen die so genannte Change Type-Methode, die es JavaScript-basierten Streaming-Clients technisch ermöglicht, zwischen den Codecs zu wechseln.

Streaming-Clients auf vielen Plattformen mit Hardware-Decodern wie SmartTVs, Set-Top-Boxen usw. können nur entweder H.264/AVC- oder HEVC-Streams dekodieren und während einer Streaming-Sitzung nicht zu einem anderen Codec wechseln. Und natürlich gibt es viele ältere Geräte, die nur H.264/AVC-kodierte Streams dekodieren können.

Dieser fragmentierte Bereich von Streaming-Clients und ihre Fähigkeiten müssen bei der Erstellung von Codierungsleitern, bei der korrekten Definition von HLS- und DASH-Manifesten und beim Entwurf des Bereitstellungssystems für das Streaming mit mehreren Codes berücksichtigt werden. Im nächsten Abschnitt wird kurz erläutert, wie wir all diese Herausforderungen in der Brightcove-Plattform Video Cloud angegangen sind.

MULTICODEC-UNTERSTÜTZUNG IN DER BRIGHTCOVE-VIDEOCLOUD-PLATTFORM

Brightcove Video Cloud ist eine End-to-End-Onlinevideoplattform, die alle Bausteine des ABR-Streaming-Systems enthält, das wir in diesem Blogbeitrag vorgestellt haben.

So erfolgt beispielsweise die Generierung von Codierungsleitern in diesem System mithilfe der CAE-Technologie von Brightcove. Für den Benutzer/Betreiber des Systems zeigt sich dies durch das Vorhandensein mehrerer vorkonfigurierter CAE-Ingest-Profile, die H.264-, HEVC- und Mixed-Codec-Streaming-Bereitstellungen ermöglichen.

Bildschirmfoto 2021-03-23 um 8.38.40 AM

Wenn das Multiplatform Extended HEVC (CAE) Mixed Codec Ingest-Profil ausgewählt wird, ist das Ergebnis eine Mixed Codec Ladder, die sowohl H.264- als auch HEVC-Streams enthält. Dieses Profil kann drei bis 12 Ausgabeströme für beide Codecs erzeugen, die den Auflösungsbereich von 180p bis 1080p und Bitraten im Bereich von 250 Kbps bis 4200 Kbps abdecken. Der CAE-Profilgenerator legt alles Weitere automatisch fest, basierend auf den Merkmalen des Inhalts sowie den für das Konto beobachteten Wiedergabestatistiken.

Auf Video Cloud werden die Manifeste und Mediensegmente gemäß einer Vielzahl von Streaming-Standards und -Profilen (z. B. HLS v3, HLS v7, MPEG DASH, Smooth usw.) erstellt. Diese werden alle dynamisch auf der Grundlage der Präferenzen und Fähigkeiten der Empfangsgeräte generiert. Darüber hinaus können auch bestimmte Filterregeln(Zustellungsregeln) angewandt werden. Wenn beispielsweise eine Wiedergabeanforderung von einem älteren Gerät kommt, das nur das H.264/AVC- und HLS v3-Streamingformat unterstützt, wird ihm nur ein HLS v3-Manifest zusammen mit TS-basierten Segmenten angeboten, und diese enthalten nur H.264/AVC-codierte Streams.

Bei neueren Geräten, die in der Lage sind, sowohl H.264/AVC- als auch HEVC-Streams zu erkennen, kann das Übermittlungssystem hingegen ein Manifest erstellen, das sowohl H.264/AVC- als auch HEVC-codierte Streams enthält. Die Deklaration von gemischten Codec-Streams in Manifesten erfolgt gemäß den HLS- und DASH-IF-Bereitstellungsrichtlinien. Im Folgenden werden konzeptionelle Beispiele für solche Deklarationen gezeigt.

Bildschirmfoto 2021-03-23 um 8.38.40 AM

Wie beobachtet, können bei HLS gemischte Codec-Wiedergaben in der natürlichen Reihenfolge in die Master-Wiedergabeliste aufgenommen werden. In MPEG DASH müssen sie jedoch separat aufgeführt werden, und zwar in verschiedenen Anpassungssätzen, die nach den einzelnen Codecs sortiert sind. Um das Umschalten zwischen Mixed-Codec-Wiedergaben in DASH zu ermöglichen, ist in jedem Adaptation Set ein spezieller SupplementalProperty-Deskriptor enthalten.

Um den Kunden zu helfen, die richtigen Entscheidungen beim Wechsel zwischen Streams zu treffen, die mit unterschiedlichen Codecs kodiert wurden, können spezielle relative Qualitätsattribute verwendet werden. In HLS werden sie als SCORE-Attribute bezeichnet, wobei höhere Werte für eine bessere Qualität stehen. In MPEG DASH heißen sie "Quality Ranking"-Attribute, wobei niedrigere Werte eine bessere Qualität anzeigen. Beide Attribute sind jedoch optional und werden nur von einigen wenigen vorhandenen Client-Geräten unterstützt. Um sicherzustellen, dass alle Geräte/Clients beim Umschalten zwischen Multicodec-Streams in Brightcove Video Cloud nicht verwirrt werden, bietet Brightcove eine Manifestfilteroption, die nur Wiedergabeversionen mit progressiv steigenden Qualitätswerten in den endgültigen Manifesten für die Clients sichtbar macht.

Die endgültige Bereitstellung von Multicodec-Streams in Video Cloud erfolgt über eine zweistufige CDN-Konfiguration, die eine hohe Effizienz (niedrige Ursprungsbitrate) sowie eine hohe Skalierbarkeit und Zuverlässigkeit bei der Bereitstellung der Streams gewährleistet. Weitere Einzelheiten zu den verschiedenen Konfigurationen und Optimierungstechniken, die von Brightcove Video Cloud verwendet werden, finden Sie in unserem kürzlich veröffentlichten Artikel [3] oder in der Brightcove-Produktdokumentation.

SCHLUSSFOLGERUNGEN

Mit einer Kombination aus allen beschriebenen Funktionen und Tools für die Unterstützung von Multicodec-Streaming kann die Aktivierung und Bereitstellung mit Brightcove Video Cloud in wenigen Minuten erfolgen.

Wenn Sie ein hohes Volumen an Streams an Apple-Geräte oder andere HEVC-fähige Mobiltelefone und Set-Top-Boxen liefern, kann die Nutzung von HEVC und Multi-Codec-Streaming eine erhebliche Reduzierung des CDN-Verkehrs und der CDN-Kosten bewirken, ohne die Reichweite für ältere Geräte zu beeinträchtigen.

Die von uns entwickelten Tools stellen sicher, dass derartige Einsätze mit minimalen Kosten erfolgen und eine hohe Qualität und Zuverlässigkeit beim Erreichen aller Geräte gewährleistet wird.

REFERENZEN

[1] Y. Reznik, K. Lillevold, A. Jagannath, J. Greer, and J. Corley, "Optimal design of encoding profiles for ABR streaming," Proc. Packet Video Workshop, Amsterdam, The Netherlands, June 12, 2018. [2] Y. Reznik, X. Li, K. Lillevold, A. Jagannath, and J. Greer, "Optimal Multi-Codec Adaptive Bitrate Streaming," Proc. IEEE Int. Conf. Multimedia and Expo (ICME), Shanghai, China, 8. bis 12. Juli 2019. [3] Y. Reznik, X. Li, K. Lillevold, R. Peck, T. Shutt, and P. Howard, "Optimizing Mass-Scale Multiscreen Video Delivery," SMPTE Motion Imaging Journal, vol. 129, no. 3, pp. 26 - 38, 2020. [4] Y. Reznik, "Average Performance of Adaptive Streaming", Proc. Data Compression Conference (DCC'21), Snowbird, UT, März 2021. [5] Y. Reznik, "Effizientes Multicodec-Streaming" - Vortrag bei HPA Tech Retreat 2021

Teilen Sie

Brightcove half einem Hersteller von Diagnosegeräten dabei, die Unterrichtszeit und die Kosten zu reduzieren und gleichzeitig den Erfolg ...
Brightcove unterstützte den bekanntesten Automobilmarktplatz bei der Verwaltung seiner umfangreichen, älteren Videobibliothek und deren Monetarisierung...
Um die Markenintegrität zu wahren, benötigen Einzelhandelsmarken anpassbare Videoplayer, die es ihnen ermöglichen, die Farben, die Schriftart...

SIND SIE BEREIT, LOSZULEGEN?

Setzen Sie sich mit uns in Verbindung, um zu erfahren, wie wir Ihre Videomarketing-Bemühungen verbessern und Ihnen dabei helfen können, die gewünschten Ergebnisse und den gewünschten ROI zu erzielen.