Wie YouTube die Videoleistung mit der Media Capabilities API verbessert hat

Sorgen für eine flüssige Videowiedergabe auf allen Geräten

François Beaufort
François Beaufort

Bei einem Test mit der Media Capabilities API konnte YouTube eine Steigerung der mittleren Wiedergabezeit um 7,1% bei nur einer Verringerung der durchschnittlichen Auflösung der ausgelieferten Videos um 0,4% verzeichnen.

Das Problem

Normalerweise haben Medienwebsites mehrere Varianten jedes Videos, die Nutzern präsentiert werden können. Diese sind mit unterschiedlichen Frameraten, Auflösungen und Codecs codiert. Bis vor Kurzem mussten Webentwickler ausschließlich isTypeSupported() oder canPlayType() verwenden, um festzustellen, ob jede Variante im Browser eines einzelnen Nutzers wiedergegeben werden konnte. Damit konnte der Entwickler zwar feststellen, ob Medien überhaupt abgespielt werden konnten, aber er erhielt keine Informationen zur Wiedergabequalität, z. B. ob es zu Frame-Drops oder Akkuentladung des Geräts kommen würde. Ohne diese Informationen mussten Entwickler entweder ihre eigenen Heuristiken erstellen oder einfach davon ausgehen, dass ein Gerät, das eine Kombination aus Codec und Auflösung wiedergeben kann, dies reibungslos und energieeffizient tun kann. Für Nutzer mit weniger leistungsfähigen Geräten führte dies oft zu einer schlechten Nutzererfahrung.

Die Lösung

Mit der Media Capabilities API können Websites mehr über die Videodekodierungsleistung des Clients erfahren und fundierte Entscheidungen darüber treffen, welchen Codec und welche Auflösung für den Nutzer bereitgestellt werden soll. Insbesondere erhalten Entwickler mit der API eine Schätzung der Laufruhe und Energieeffizienz einer bestimmten Kombination aus Codec und Auflösung. So können Entwickler Szenarien vermeiden, in denen die Wiedergabe für den Client wahrscheinlich schlecht ist.

In Chrome verwendet die Media Capabilities API Messwerte aus früheren Wiedergaben, um vorherzusagen, ob zukünftige Wiedergaben im selben Codec und mit derselben Auflösung flüssig decodiert werden.

YouTube-Fallstudie

YouTube hat die Media Capabilities API verwendet, um zu verhindern, dass der adaptive Bitrate-Algorithmus automatisch Auflösungen auswählt, die auf einem Gerät nicht flüssig wiedergegeben werden können.

Nutzer in der Testgruppe erlebten insgesamt weniger häufige Pufferungen (die durchschnittliche Zeit zwischen den Pufferungen, MTBR, stieg um 7,1%), während die durchschnittliche Auflösung, gemessen an der Videohöhe, für die gesamte Gruppe nur um 0,4 % zurückging. Die deutliche Steigerung der MTBR bei gleichzeitiger geringfügiger Reduzierung der durchschnittlichen Auflösung zeigt, dass diese Änderung die Qualität für eine kleine Gruppe von Nutzern, die zuvor Probleme hatten, deutlich verbessert hat.

Media Capabilities API auf deiner Website implementieren

In der offiziellen Beispielanwendung wird die Funktionsweise der Decoding Info API veranschaulicht.