Fallstudien
Instagram und Facebook bieten sofortige Wiedergabe und steigern die Nutzerinteraktion mit Media3 PreloadManager
4 Minuten Lesezeit
In der dynamischen Welt der sozialen Medien wird die Aufmerksamkeit der Nutzer schnell gewonnen oder verloren. Meta-Apps (Facebook und Instagram) gehören zu den weltweit größten sozialen Plattformen und werden von Milliarden Nutzern weltweit verwendet. Für Meta ist die nahtlose Wiedergabe von Videos nicht nur eine Funktion, sondern das Herzstück der Nutzererfahrung. Kurzvideos, insbesondere Facebook-Newsfeed und 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 Blogbeitrag erfahren Sie, wie Meta die Videowiedergabe für Milliarden Nutzer durch die Bereitstellung einer echten Sofortwiedergabe revolutioniert hat.
Die Latenzzeit bei Kurzvideos
Kurzvideos führen zu sehr schnellen Interaktionen, da Nutzer schnell durch ihre Feeds scrollen. Eine nahtlose Übergabe 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 Wandel bei den Konsumgewohnheiten durch den Anstieg von Kurzvideos und die Einschränkungen der herkömmlichen Architektur für die Wiedergabe von Langvideos zu berücksichtigen, wurde in Jetpack Media3 der PreloadManager eingeführt. Mit dieser Komponente können Entwickler über das Festplatten-Caching hinausgehen und eine detaillierte Steuerung und Anpassung vornehmen, um Medien im Arbeitsspeicher bereitzuhalten, bevor der Nutzer auf „Wiedergabe“ klickt. In dieser Blogreihe finden Sie technische Details zur Medienwiedergabe mit PreloadManager.
So hat Meta die echte Sofortwiedergabe erreicht
Bestehende Komplexitäten
Bisher hat Meta eine Kombination aus Warmup (um Player vorzubereiten) und Prefetch (um Inhalte auf der Festplatte zu speichern) für die Videobereitstellung 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 verbrauchte und das Vorabladen auf nur wenige Videos beschränkte. Aufgrund dieses hohen Ressourcenbedarfs konnte eine skalierbarere und robustere Lösung angewendet werden, um die Sofortwiedergabe zu ermöglichen, die von modernen, schnell scrollenden sozialen Feeds erwartet wird.
Media3 PreloadManager integrieren
Um eine echte Sofortwiedergabe zu erreichen, hat das Media Foundation Client-Team von Meta den Jetpack Media3 PreloadManager in Facebook und Instagram integriert. Sie haben den DefaultPreloadManager ausgewählt, um ihre Vorabladungs- und Wiedergabesysteme 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, Vorabladungsaufgaben zu parallelisieren und viele Videos mit einer einzigen Player-Instanz zu verwalten. Dadurch wurde die Vorabladungskapazität erheblich gesteigert und die hohe Arbeitsspeicherkomplexität des bisherigen Ansatzes beseitigt.
Optimierung und Leistungsabstimmung
Anschließend führte das Team umfangreiche Tests und Iterationen durch, um die Leistung im vielfältigen globalen Geräte-Ökosystem von Meta zu optimieren. Die anfängliche aggressive Vorabladung verursachte manchmal Probleme, darunter eine erhöhte Arbeitsspeichernutzung und eine Verlangsamung der Scrollleistung. Um dieses Problem 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 Vorabladungsstrategien 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 vorab, damit es gestartet wird, sobald der Nutzer das Scrollen unterbricht. Dieser Fokus auf "nur das aktuelle Video" minimiert die Daten- und Arbeitsspeicherauslastung in einer Umgebung, in der Nutzer zwischen Videos viele statische Beiträge sehen. Das System ist derzeit so konzipiert, dass nur das sichtbare Video vorab geladen wird. Es kann aber auch so angepasst werden, dass auch zukünftige Videos vorab geladen werden.
- Instagram Reels: Dies ist eine reine Video-Umgebung, in der Nutzer vertikal wischen. Für diese UI hat das Team eine Strategie für das "Vorabladen angrenzender Videos" implementiert. Der PreloadManager hält die Videos direkt nach dem aktuellen Reel im Arbeitsspeicher bereit. Dieser bidirektionale Ansatz sorgt dafür, dass die Übergabe 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 bei der Wiedergabestartzeit 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 erforderlich. Meta hatte anfangs Probleme mit Arbeitsspeicherdruck und Scrollverzögerungen, insbesondere bei Geräten der Mittel- und Einsteigerklasse. Um dieses Problem zu beheben, wurde ein System zur Erkennung von Geräteüberlastung um die Media3-Implementierung herum entwickelt. Die Apps überwachen jetzt E/A- und CPU-Signale in Echtzeit. Wenn ein Gerät stark ausgelastet ist, wird die Vorabladung 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, unterbrechungsfreien Feed nutzen.
Architektonische Vorteile und Codequalität
Neben den nutzerorientierten Messwerten bot die Migration zu Media3 PreloadManager langfristige architektonische Vorteile. Obwohl für die Integration und Optimierung mehrere Iterationen erforderlich waren, um die Leistung auszubalancieren, ist die resultierende Codebasis besser wartbar. 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 der Vorabladung und das Hinzufügen von geräteintelligenten Gates konnte die Gesamtwiedergabezeit in den Apps gesteigert und die allgemeine Interaktion der globalen Community verbessert werden.
Auswirkungen auf Instagram und Facebook
Die proaktive Architektur führte auf beiden Plattformen zu sofortigen und messbaren Verbesserungen.
- Auf Facebook wurden schnellere Wiedergabestarts, geringere Wiedergabeverzögerungen und weniger schlechte Sitzungen (z. B. erneutes Puffern, verzögerte Startzeit, geringere Qualität usw.) verzeichnet,was insgesamt zu einer längeren Wiedergabezeit führte.
- Auf Instagram wurden schnellere Wiedergabestarts und eine längere Gesamtwiedergabezeit verzeichnet. Durch die **Eliminierung der Latenzzeit beim Beitreten** (das Intervall zwischen der Aktion des Nutzers und der Anzeige des ersten Frames) wurden die Messwerte für die Interaktion direkt verbessert. Die wenigeren Unterbrechungen aufgrund des reduzierten Pufferns führten dazu, dass Nutzer mehr Inhalte ansahen, was sich in den Messwerten für die Interaktion widerspiegelte.
Wichtige Erkenntnisse aus der Entwicklung im großen Maßstab
Da sich die Medienkonsumgewohnheiten weiterentwickeln, wird die Nachfrage nach sofortigen Erlebnissen weiter steigen. Durch die Implementierung eines proaktiven Arbeitsspeichermanagements und die Optimierung für Skalierung und Gerätevielfalt können Sie diese Erwartungen effizient erfüllen.
- Intelligente Vorabladung priorisieren
Konzentrieren Sie sich auf eine zuverlässige Nutzererfahrung, indem Sie durch Vorabladung Verzögerungen und Ladezeiten minimieren. Anstatt nur Festplatten-Caching zu verwenden, sorgt die Vorabladung auf Arbeitsspeicherebene dafür, dass Inhalte bereit sind, sobald ein Nutzer mit ihnen interagiert.
- Implementierung an UI-Muster anpassen
Passen Sie das Vorabladungsverhalten 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 angrenzender Videos“ für vertikale Umgebungen wie Instagram Reels.
- 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
- Media3 PreloadManager-Dokumentation
- Blogreihe mit detaillierten technischen Informationen und Implementierungsdetails
- Teil 1: Einführung in die Vorabladung mit Media3
- Teil 2: Detaillierte Informationen zum PreloadManager von Media3
Jetzt kennen Sie die Geheimnisse der Sofortwiedergabe. Probieren Sie sie aus!
Weiterlesen
-
Fallstudien
Monzo ist eine britische Digitalbank mit 15 Millionen Kunden, deren Zahl stetig wächst. Mit zunehmender Skalierung der App erkannte das Entwicklungsteam die App-Startzeit als einen kritischen Bereich für Verbesserungen, befürchtete jedoch, dass dafür erhebliche Änderungen an der Codebasis erforderlich wären.
Ben Weiss • 2 Minuten Lesezeit
-
Fallstudien
TikTok ist eine globale Plattform für Kurzvideos, die für ihre riesige Nutzerbasis und innovativen Funktionen bekannt ist.
Ben Trengrove, Ajesh Pai • 2 Minuten Lesezeit
-
Fallstudien
Wenn Sie eine Android-App für ein Wearable entwickeln, beginnt die eigentliche Arbeit, wenn sich der Bildschirm ausschaltet.
Breana Tate • 4 Minuten Lesezeit
Auf dem Laufenden bleiben
Lassen Sie sich Woche für Woche die neuesten Informationen zur Android-Entwicklung zusenden.