Zum Inhalt springen
BlogLinodeUmstellung von clientseitigem auf serverseitiges adaptives Bitraten-Streaming

Umstellung von clientseitigem auf serverseitiges Streaming mit adaptiver Bitrate

Text: Umstellung von clientseitigem auf serverseitiges Streaming mit adaptiver Bitrate

Streaming-Plattformen skalieren, um Millionen von gleichzeitigen Zuschauern auf verschiedenen Geräten und unter verschiedenen Netzwerkbedingungen unterzubringen, was effizientes Streaming mit adaptiver Bitrate (ABR) unerlässlich macht. In diesem Blogbeitrag werden wir die technischen Aspekte des Übergangs von clientseitigem zu serverseitigem ABR untersuchen und uns dabei auf Implementierungsdetails und Leistungsoptimierungen konzentrieren.

Grundlagen des Streamings mit adaptiver Bitrate

Wie genau funktioniert das Streaming mit adaptiver Bitrate? Lassen Sie uns die einzelnen Schritte durchgehen. Zunächst werden die Videoinhalte vorbereitet, indem sie mit mehreren Bitraten kodiert werden (z. B. 500 KBit/s, 1 MBit/s, 2 MBit/s usw.) und diese verschiedenen Wiedergabearten gespeichert werden. 

Eine Manifestdatei, z. B. eine M3U8 für HLS oder MPD für DASH, enthält Informationen über die verschiedenen verfügbaren Bitratenströme.

Wenn ein Benutzer die Wiedergabe startet, lädt das Client-Gerät die Manifestdatei herunter, um die verfügbaren Bitratenoptionen anzuzeigen. Der Client wählt eine anfängliche Bitrate aus, wobei er in der Regel mit einer niedrigeren Bitrate beginnt, um die Wiedergabe schneller zu starten. 

Während der Videowiedergabe überwacht das Client-Gerät kontinuierlich die Netzwerkbedingungen und seine internen Pufferstände. Wenn die Netzwerkbandbreite eingeschränkt wird, fordert der Client niedrigere Bitraten an, um eine erneute Pufferung zu verhindern. Verbessert sich dagegen die Bandbreite, fordert der Client höhere Bitraten an, um die Videoqualität zu verbessern. Diese Bitratenumschaltung erfolgt durch die Anforderung neuer Videosegmente mit der aktualisierten Bitratenstufe. 

Herausforderungen des herkömmlichen Streaming mit adaptiver Bitrate (Client-seitiges ABR)

Traditionell wurde ABR-Streaming auf der Client-Seite verwaltet, wobei das Gerät, das das Video abspielt, die beste Bitrate bestimmt. Dieser Ansatz bringt jedoch einige Herausforderungen mit sich. Erstens sind die Client-Geräte sehr unterschiedlich in ihrer Verarbeitungsleistung. Ein älteres Telefon ist möglicherweise nicht in der Lage, die für die ständige Anpassung der Videoqualität erforderliche Rechenleistung so reibungslos zu bewältigen wie ein brandneues Spitzenmodell. Aus diesem Grund kann die Videoqualität manchmal schwanken, wenn Sie eine Sendung auf Ihrem Handy ansehen. 

Ein weiteres Problem ist, dass Internetverbindungen selbst innerhalb eines kurzen Zeitraums stark schwanken können. Ihr Gerät muss sich ständig an diese Änderungen anpassen, was zu wirklich spürbaren Qualitätseinbußen oder häufigem Umschalten zwischen Auflösungen führen kann, was ein ziemlich unangenehmes Seherlebnis zur Folge hat. Vor allem, wenn Sie in einem Gebiet mit lückenhaftem Internet leben, kann es zu vielen Pufferungen oder Qualitätseinbrüchen kommen.

Ein weiteres Problem ist die Latenzzeit: Wenn Ihr Gerät erst mit Verzögerung erkennt, dass sich die Verbindung geändert hat, passt es die Bitrate möglicherweise nicht schnell genug an, was zu Verzögerungen oder plötzlichen Qualitätseinbrüchen führt.

Schließlich können all diese ständigen Anpassungen und potenziellen Ineffizienzen dazu führen, dass mehr Daten als nötig verbraucht werden. Dies kann für Nutzer mit begrenzten mobilen Datentarifen ein echtes Problem darstellen.

Wie Server-seitiges ABR diese Herausforderungen lösen kann

Um diese Probleme zu lösen, legt SSABR die geeignete Bitrate nicht auf der Client-Seite fest, sondern trifft die Auswahl auf der Server-Seite.

Das serverseitige adaptive Bitraten-Streaming könnte folgendermaßen funktionieren. Zunächst sendet der Client eine HTTP-GET-Anfrage für die Manifestdatei. Die Anfrage enthält Client-Metadaten (z. B. Gerätetyp, Bildschirmauflösung, unterstützte Codecs). Anschließend analysiert der Server die Client-Metadaten aus den Headern der Anfrage (aktuelle CDN-Auslastung, geografische Entfernung zum Client, historische Leistung für ähnliche Clients usw.). Anschließend erstellt der Server eine benutzerdefinierte Manifestdatei, die auf die Fähigkeiten des Kunden und die aktuellen Netzwerkbedingungen zugeschnitten ist und nur die Bitraten enthält, die für den Kunden geeignet sind. Der Server wählt dann die optimale Bitrate auf der Grundlage der verfügbaren Bandbreite (geschätzt anhand von RTT und Durchsatz), der Komplexität des Inhalts (I-Frame-Größe, Bewegungsvektoren) und der Puffergröße des Clients (die über Echtzeit-Feedback gemeldet wird). Anschließend übergibt der Server die mit der ausgewählten Bitrate kodierten Videosegmente an das Client-Gerät, das sie dann dekodiert und abspielt. Schließlich überwacht der Server kontinuierlich die Netzwerkbedingungen und die Fähigkeiten des Wiedergabegeräts. Ändern sich die Bedingungen während der Wiedergabe (z. B. bei Netzwerküberlastung), kann der Server die Bitrate dynamisch anpassen, um eine reibungslose Wiedergabe ohne Pufferung oder Qualitätsverlust zu gewährleisten.

Dieser serverseitige Ansatz bietet viele Vorteile. Anstatt dass das Client-Gerät die Wahl der richtigen Bitrate selbst treffen muss, hat der Server einen viel besseren Überblick über die Netzwerkbedingungen, die Komplexität der Videoinhalte und die Leistungsfähigkeit Ihres Geräts. Mit all diesen Informationen kann er besser entscheiden, ob die Bitrate erhöht oder gesenkt werden soll. Das bedeutet fließendere Übergänge zwischen verschiedenen Qualitätsstufen und ein insgesamt konsistenteres, pufferfreies Streaming-Erlebnis für die Zuschauer.

Durch die Verlagerung der Bitratenauswahl auf den Server wird auch die Verarbeitungslast auf den Client-Geräten verringert. Dies ist vor allem für Geräte mit eingeschränkten Ressourcen von Vorteil und verbessert deren Leistung und Akkulaufzeit.

Ein weiterer Vorteil des serverseitigen adaptiven Bitraten-Streamings besteht darin, dass der Server die Netzwerkbedingungen kontinuierlich in Echtzeit überwachen und die Bitrate genauer und schneller anpassen kann als clientseitige Algorithmen. Wenn er also feststellt, dass Ihre Verbindung langsamer zu werden droht, kann er die Bitrate proaktiv senken, noch bevor Sie irgendwelche Probleme haben. Und sobald die Verbindungsgeschwindigkeit wieder steigt, wird die Qualität wieder erhöht. Es kann sogar analysieren, wie komplex der Videoinhalt selbst zu einem bestimmten Zeitpunkt ist. Bei bewegungsintensiven Szenen mit viel Action wird die Bitrate erhöht, um die Qualität zu verbessern, während ruhigere Szenen mit einer niedrigeren Bitrate übertragen werden können, ohne dass sie schlechter aussehen. 

Und schließlich kann das serverseitige adaptive Bitraten-Streaming für Streaming-Anbieter sehr kosteneffizient sein. Eine effizientere Bitratenverwaltung bedeutet niedrigere Bandbreitenkosten für alle Beteiligten. Streaming-Anbieter können Videos in hoher Qualität bereitstellen, ohne dass übermäßige Datenübertragungsgebühren anfallen, während die Nutzer ihre Lieblingsinhalte genießen können, ohne sich Gedanken über Datenüberlastungen zu machen.

Kurz gesagt: Hochwertigere Streams, flüssigere Wiedergabe, bessere Geräteleistung und Kosteneinsparungen sind gute Gründe, das serverseitige adaptive Bitraten-Streaming in Betracht zu ziehen.

Leistungsoptimierungen

Um die Vorteile der serverseitigen ABR zu maximieren, sollten Sie einige Leistungsoptimierungen in Betracht ziehen. Die erste ist Edge Computing. Durch die Bereitstellung von ABR-Logik auf Edge-Servern können Sie die Entfernung, die die Daten zurücklegen müssen, drastisch reduzieren, was wiederum die Latenzzeit bei der Videowiedergabe minimiert. Diese Nähe zu den Endnutzern führt nicht nur zu einem reibungsloseren Streaming mit weniger Pufferung und Verzögerung, sondern gewährleistet auch schnellere Anpassungen der Bitrate. Darüber hinaus kann eine geringere Belastung der zentralen Server zu einer besseren Skalierbarkeit und Gesamteffizienz des Netzwerks führen, so dass Sie höhere Verkehrslasten leichter bewältigen können.

Eine weitere wichtige Leistungsoptimierung ist die Implementierung effektiver Caching-Strategien. Durch intelligentes Zwischenspeichern beliebter Videosegmente mit verschiedenen Bitraten können Sie die Belastung Ihres Servers erheblich reduzieren und die Streaming-Leistung verbessern. Um dies zu erreichen, können Sie probabilistische Datenstrukturen wie Bloom-Filter verwenden, die die Beliebtheit verschiedener Segmente effizient verfolgen und vorhersagen. Auf diese Weise kann das System Inhalte, auf die häufig zugegriffen wird, schneller speichern und bereitstellen, wodurch die Latenzzeit für die Endbenutzer verringert und die Notwendigkeit, Daten wiederholt vom Ursprungsserver abzurufen, minimiert wird. Darüber hinaus kann dieser Ansatz zur Optimierung der Bandbreitennutzung beitragen, was zu einer skalierbaren und effizienten Streaming-Architektur führt.

Benchmarking und Monitoring Ihr Streaming-Erlebnis

Nach der Umstellung auf die serverseitige adaptive Bitratenbereitstellung sollten Sie die Verbesserungen anhand von Leistungskennzahlen (KPIs) quantifizieren, die sowohl die Benutzerfreundlichkeit als auch die Systemeffizienz messen. Es gibt einige wichtige Leistungsindikatoren, die wichtig sind.

Die erste ist die Startzeit, die die Zeit zwischen der Abspielanforderung eines Nutzers und dem ersten gerenderten Bild misst. Eine kürzere Startzeit ist für ein nahtloses Erlebnis von entscheidender Bedeutung, da lange Verzögerungen zu Frustration der Nutzer und erhöhter Abwanderung führen können. Ein weiterer wichtiger KPI ist die Rebuffer-Ratio, die berechnet wird, indem die gesamte Rebuffer-Zeit durch die gesamte Spielzeit geteilt und dann mit 100 multipliziert wird. Dieses Verhältnis spiegelt den prozentualen Anteil der Zeit wider, die ein Video während der Wiedergabe in der Pufferung verbringt, und eine Minimierung dieses Anteils gewährleistet eine unterbrechungsfreie Wiedergabe. Die Bitratenwechselhäufigkeit, die die Anzahl der Qualitätswechsel pro Minute angibt, ist eine weitere nützliche Kennzahl. Übermäßige Bitratenwechsel können das Nutzererlebnis stören, weshalb es wichtig ist, ein Gleichgewicht zwischen Leistung und Stabilität herzustellen. Die durchschnittliche Bitrate misst die durchschnittliche Bitrate, die während einer Sitzung geliefert wird, und gibt Aufschluss über die allgemeine Videoqualität, die die Benutzer erleben. Höhere Bitraten bedeuten in der Regel eine bessere Qualität, aber sie sollten mit der verfügbaren Bandbreite übereinstimmen, um Pufferung zu vermeiden. VMAF-Scores (Video Multi-Method Assessment Fusion) schließlich sind Metriken für die Wahrnehmungsqualität, die sicherstellen, dass die gelieferte Videoqualität mit den vom ABR-Algorithmus getroffenen Bitratenentscheidungen übereinstimmt. Hohe VMAF-Werte weisen auf eine gute visuelle Qualität im Verhältnis zur Bitrate hin und gewährleisten ein hochwertiges Seherlebnis. 

Startzeit, Rebuffer-Rate, Bitratenwechselhäufigkeit, durchschnittliche Bitrate und VMAF-Scores sind allesamt KPIs, die Sie zur Feinabstimmung von ABR-Algorithmen und zur Optimierung der Benutzerzufriedenheit verwenden können.

Fazit

Serverseitiges adaptives Bitraten-Streaming beseitigt viele der Einschränkungen des herkömmlichen clientseitigen ABR und bietet ein effizienteres und konsistentes Streaming-Erlebnis. Durch die Zentralisierung des Entscheidungsprozesses verbessert die serverseitige ABR die Leistung, verbessert die Qualitätskontrolle und optimiert die Datennutzung. 

In diesem Blogbeitrag haben wir die Herausforderungen von clientseitigem ABR und die überzeugenden Vorteile von serverseitigen Lösungen untersucht. Wenn Sie ein Entwickler in einem Streaming-Unternehmen sind und mehr über die Optimierung Ihrer adaptiven Bitraten-Streaming-Lösungen erfahren möchten, können Sie sich über diesen Link für ein Linode-Guthaben von bis zu 5.000 US-Dollar bewerben, um mehr zu erfahren.

Kommentare

Kommentar abgeben

Ihre E-Mail Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit *gekennzeichnet