Fallstudien

Instagram und Facebook bieten sofortige Wiedergabe und steigern die Nutzerinteraktion mit Media3 PreloadManager

4 Minuten Lesezeit

In der dynamischen Welt der sozialen Medien kann man die Aufmerksamkeit der Nutzer schnell gewinnen oder verlieren. Die Meta-Apps Facebook und Instagram gehören zu den weltweit größten sozialen Plattformen und werden von Milliarden Nutzern auf der ganzen Welt verwendet. Für Meta ist die nahtlose Wiedergabe von Videos nicht nur eine Funktion, sondern das Herzstück der Nutzererfahrung. Kurzvideos, insbesondere im Facebook-Newsfeed und in Instagram Reels, sind zu einem wichtigen Faktor für die Nutzerinteraktion geworden. Sie ermöglichen kreativen Ausdruck und schnellen Konsum von Inhalten und verbinden und unterhalten Menschen auf der ganzen Welt. 

In diesem Blogpost erfahren Sie, wie Meta die Videowiedergabe für Milliarden Nutzer durch die Bereitstellung einer echten Sofortwiedergabe revolutioniert hat.

Die Latenz bei Kurzvideos

Kurzvideos führen zu sehr schnellen Interaktionen, da Nutzer schnell durch ihre Feeds scrollen. Eine nahtlose Wiedergabe zwischen Videos in einem sich ständig ändernden Feed stellt einzigartige Herausforderungen für die sofortige Wiedergabe dar. Daher sind Lösungen erforderlich, die über das herkömmliche Festplatten-Caching und die reaktiven Standardstrategien für die Wiedergabe hinausgehen.

Der Weg nach vorn mit Media3 PreloadManager

Um den veränderten Konsumgewohnheiten durch den Anstieg von Kurzvideos und den Einschränkungen der herkömmlichen Architektur für die Wiedergabe von Langvideos Rechnung zu tragen, wurde in Jetpack Media3 der PreloadManager eingeführt. Mit dieser Komponente können Entwickler über das Festplatten-Caching hinausgehen und die Medien im Arbeitsspeicher bereithalten, bevor der Nutzer auf „Wiedergabe“ klickt. In dieser Blogreihe erfahren Sie mehr über die technischen Details der Medienwiedergabe mit PreloadManager.

So hat Meta die echte Sofortwiedergabe erreicht

Bestehende Komplexitäten

Bisher hat Meta für die Videobereitstellung eine Kombination aus Warmup (um Player vorzubereiten) und Prefetch (um Inhalte auf der Festplatte zu speichern) verwendet. Diese Methoden haben zwar die Netzwerkeffizienz verbessert, aber auch erhebliche Herausforderungen mit sich gebracht. Für Warmup mussten mehrere Player-Instanzen sequenziell instanziiert werden, was viel Arbeitsspeicher verbraucht und das Vorabladen auf nur wenige Videos beschränkt hat. Aufgrund dieses hohen Ressourcenbedarfs konnte eine skalierbarere und robustere Lösung eingesetzt werden, um die Sofortwiedergabe zu ermöglichen, die von modernen, schnell scrollenden sozialen Feeds erwartet wird.

Integration von Media3 PreloadManager

Um eine echte Sofortwiedergabe zu erreichen, hat das Media Foundation Client-Team von Meta den Jetpack Media3 PreloadManager in Facebook und Instagram integriert. Es hat den DefaultPreloadManager ausgewählt, um die Systeme für das Vorabladen und die Wiedergabe zu vereinheitlichen. Für diese Integration musste die bestehende Architektur von Meta umgestaltet werden, um eine effiziente gemeinsame Nutzung von Ressourcen zwischen den PreloadManager- und ExoPlayer-Instanzen zu ermöglichen. Diese strategische Umstellung brachte einen wichtigen architektonischen Vorteil: die Möglichkeit, Vorabladungen zu parallelisieren und viele Videos mit einer einzigen Player-Instanz zu verwalten. Dadurch wurde die Kapazität für das Vorabladen erheblich gesteigert und die Komplexität des Arbeitsspeichers im Vergleich zum vorherigen Ansatz reduziert.

colinKho.png

Optimierung und Leistungsabstimmung

Anschließend hat das Team umfangreiche Tests und Iterationen durchgeführt, um die Leistung im vielfältigen globalen Geräte-Ökosystem von Meta zu optimieren. Das anfängliche aggressive Vorabladen hat manchmal Probleme verursacht, darunter eine erhöhte Arbeitsspeichernutzung und eine langsamere Scrollleistung. Um das zu beheben, wurde die Implementierung durch sorgfältige Arbeitsspeichermessungen, Berücksichtigung der Gerätefragmentierung und Anpassung des Systems an bestimmte UI-Muster optimiert.

Implementierung an bestimmte UI-Muster anpassen

Meta hat verschiedene Strategien für das Vorabladen angewendet und das Verhalten an die spezifischen UI-Muster der einzelnen Apps angepasst:

  • Facebook-Newsfeed: Die UI priorisiert das Video, das gerade in den Blick kommt. Der Manager lädt nur das aktuelle Video vor, damit es sofort gestartet wird, wenn der Nutzer das Scrollen pausiert. Dieser Fokus auf "nur das aktuelle Video" minimiert die Daten- und Arbeitsspeichernutzung in einer Umgebung, in der Nutzer zwischen Videos viele statische Posts sehen. Das System ist derzeit so konzipiert, dass nur das Video im Blickfeld vorab geladen wird. Es kann aber auch so angepasst werden, dass zukünftige Videos vorab geladen werden.
  • Instagram Reels: Hier handelt es sich um eine reine Video-Umgebung, in der Nutzer vertikal wischen. Für diese UI hat das Team eine Strategie für das "Vorabladen von angrenzenden Videos" implementiert. Der PreloadManager hält die Videos direkt nach dem aktuellen Reel im Arbeitsspeicher bereit. Dieser bidirektionale Ansatz sorgt dafür, dass der Übergang unabhängig davon, ob ein Nutzer nach oben oder unten wischt, sofort und reibungslos erfolgt. Das Ergebnis war eine erhebliche Verbesserung der Quality of Experience (QoE), einschließlich Verbesserungen beim Start der Wiedergabe und der Zeit bis zum ersten Frame für den Nutzer.

Skalierung für ein vielfältiges globales Geräte-Ökosystem

Um einen leistungsstarken Videostack auf Milliarden von Geräten zu skalieren, ist mehr als nur aggressives Vorabladen erforderlich. Es ist Intelligenz gefragt. Meta hatte anfangs Probleme mit der Arbeitsspeicherauslastung und Verzögerungen beim Scrollen, insbesondere bei Geräten der Mittel- und Einsteigerklasse. Um das zu beheben, wurde ein System zur Erkennung von Gerätebelastungen auf Basis der Media3-Implementierung entwickelt. Die Apps überwachen jetzt E/A- und CPU-Signale in Echtzeit. Wenn ein Gerät stark ausgelastet ist, wird das Vorabladen pausiert, um die Reaktionsfähigkeit der UI zu priorisieren.

Diese geräteabhängige Optimierung sorgt dafür, dass der Vorteil der Sofortwiedergabe nicht auf Kosten der Systemstabilität geht. So können auch Nutzer mit älteren Geräten einen reibungsloseren, ununterbrochenen Feed nutzen.

mirabelHu.png

Architektonische Vorteile und Codequalität

Neben den nutzerorientierten Messwerten bot die Migration zu Media3 PreloadManager langfristige architektonische Vorteile. Der Integrations- und Optimierungsprozess erforderte zwar mehrere Iterationen, um die Leistung auszubalancieren, aber die resultierende Codebasis ist wartungsfreundlicher. Das Team stellte fest, dass die PreloadManager API sauber in das bestehende Media3-Ökosystem integriert wurde, was eine bessere gemeinsame Nutzung von Ressourcen ermöglicht. Für Meta war die Einführung von Media3 PreloadManager eine strategische Investition in die Zukunft des Videokonsums. 

Durch die Einführung des Vorabladens und das Hinzufügen von geräteintelligenten Gates konnte die Gesamtwiedergabezeit in den Apps gesteigert und die allgemeine Nutzerinteraktion der globalen Community verbessert werden. 

Auswirkungen auf Instagram und Facebook

Die proaktive Architektur hat auf beiden Plattformen sofortige und messbare Verbesserungen gebracht. 

  • Auf Facebook wurden schnellere Wiedergabestarts, geringere Raten für Wiedergabepausen und eine Reduzierung der Anzahl schlechter Sitzungen (z. B. erneutes Zwischenspeichern, verzögerte Startzeit, geringere Qualität usw.) erreicht,was insgesamt zu einer längeren Wiedergabezeit geführt hat.
  • Auf Instagram wurden schnellere Wiedergabestarts und eine längere Gesamtwiedergabezeit erreicht. Durch die Eliminierung der Latenz beim Beitreten (das Intervall zwischen der Aktion des Nutzers und der Anzeige des ersten Frames) wurden die Messwerte für die Nutzerinteraktion direkt verbessert. Die wenigeren Unterbrechungen aufgrund des reduzierten Zwischenspeicherns führten dazu, dass Nutzer mehr Inhalte angesehen haben, was sich in den Messwerten für die Nutzerinteraktion widerspiegelt.
beforeAfterPreload.gif

Wichtige Erkenntnisse für die Entwicklung im großen Maßstab

Da sich die Gewohnheiten beim Medienkonsum weiterentwickeln, wird die Nachfrage nach sofortigen Erlebnissen weiter steigen. Durch die Implementierung eines proaktiven Arbeitsspeicher-Managements und die Optimierung für Skalierbarkeit und Gerätevielfalt können Sie diese Erwartungen effizient erfüllen.

  • Intelligentes Vorabladen priorisieren

Konzentrieren Sie sich auf eine zuverlässige Nutzererfahrung, indem Sie durch das Vorabladen Ruckler und Ladezeiten minimieren. Anstatt nur das Festplatten-Caching zu verwenden, sorgt das Vorabladen auf Arbeitsspeicherebene dafür, dass Inhalte sofort verfügbar sind, wenn ein Nutzer mit ihnen interagiert.

  • Implementierung an UI-Muster anpassen

Passen Sie das Verhalten beim Vorabladen an die UI Ihrer Apps an. Verwenden Sie beispielsweise für gemischte Feeds wie Facebook einen Fokus auf „nur das aktuelle Video“, um Arbeitsspeicher zu sparen, und eine Strategie für das „Vorabladen von angrenzenden Videos“ für vertikale Umgebungen wie Instagram Reels.

preloadingStrategy.png
  • Media3 für langfristige Codequalität nutzen

Durch die Integration mit Media3 APIs anstelle einer benutzerdefinierten Caching-Lösung können Ressourcen besser zwischen dem Player und dem PreloadManager gemeinsam genutzt werden. So können Sie mehrere Videos mit einer einzigen Player-Instanz verwalten. Das Ergebnis ist eine zukunftssichere Codebasis, die nicht nur einfacher zu warten und zu optimieren ist, sondern auch von den neuesten Funktionsupdates profitiert.

  • Geräteabhängige Optimierungen implementieren

Erweitern Sie Ihre Marktreichweite, indem Sie Tests auf verschiedenen Geräten durchführen, einschließlich Modellen der Mittel- und Einsteigerklasse. Verwenden Sie Echtzeitsignale wie CPU, Arbeitsspeicher und E/A, um Funktionen und Ressourcennutzung dynamisch anzupassen.

Weitere Informationen

Weitere Informationen finden Sie unter 

Jetzt kennen Sie die Geheimnisse der Sofortwiedergabe. Probieren Sie sie aus!

Geschrieben von:
Weiterlesen