Casos de éxito
Instagram y Facebook ofrecen reproducción instantánea y aumentan la interacción de los usuarios con Media3 PreloadManager
Lectura de 4 minutos
En el dinámico mundo de las redes sociales, la atención de los usuarios se gana o se pierde rápidamente. Las aplicaciones de Meta (Facebook e Instagram) son algunas de las plataformas sociales más grandes del mundo y prestan servicio a miles de millones de usuarios en todo el mundo. Para Meta, ofrecer vídeos sin interrupciones no es solo una función, sino el eje central de su experiencia de usuario. Los vídeos cortos, sobre todo los del feed de noticias de Facebook y los Reels de Instagram, se han convertido en uno de los principales factores que impulsan la interacción. Permiten la expresión creativa y el consumo rápido de contenido, así como conectar y entretener a personas de todo el mundo.
En esta entrada de blog se explica cómo Meta ha transformado la reproducción de vídeo para miles de millones de usuarios ofreciendo una reproducción instantánea real.
La diferencia de latencia en los vídeos cortos
Los vídeos cortos propician interacciones muy rápidas, ya que los usuarios se desplazan rápidamente por sus feeds. Ofrecer una transición fluida entre vídeos en un feed que cambia constantemente plantea retos únicos para la reproducción instantánea. Por lo tanto, necesitamos soluciones que vayan más allá del almacenamiento en caché de disco tradicional y de las estrategias de reproducción reactivas estándar.
El camino a seguir con Media3 PreloadManager
Para adaptarse a los cambios en los hábitos de consumo debido al aumento del contenido de formato corto y a las limitaciones de la arquitectura de reproducción de formato largo tradicional, Jetpack Media3 introdujo PreloadManager. Este componente permite a los desarrolladores ir más allá del almacenamiento en caché en disco, ya que ofrece un control granular y personalización para mantener el contenido multimedia listo en la memoria antes de que el usuario pulse el botón de reproducción. Consulta esta serie de entradas de blog para obtener información técnica sobre la reproducción de contenido multimedia con PreloadManager.
Cómo ha conseguido Meta una reproducción instantánea real
Complejidades actuales
Antes, Meta usaba una combinación de calentamiento (para preparar a los reproductores) y precarga (para almacenar contenido en caché en el disco) para la entrega de vídeo. Aunque estos métodos ayudaron a mejorar la eficiencia de la red, plantearon problemas importantes. Para el calentamiento, era necesario crear varias instancias del reproductor de forma secuencial, lo que consumía mucha memoria y limitaba la precarga a unos pocos vídeos. Esta alta demanda de recursos implicaba que se podía aplicar una solución más escalable y robusta para ofrecer la reproducción instantánea que se espera en los feeds de redes sociales modernos y de desplazamiento rápido.
Integrar Media3 PreloadManager
Para conseguir una reproducción realmente instantánea, el equipo de Media Foundation Client de Meta integró Jetpack Media3 PreloadManager en Facebook e Instagram. Eligieron DefaultPreloadManager para unificar sus sistemas de precarga y reproducción. Esta integración requería refactorizar la arquitectura de Meta para permitir que las instancias de PreloadManager y ExoPlayer compartieran recursos de forma eficiente. Este cambio estratégico proporcionó una ventaja arquitectónica clave: la capacidad de paralelizar las tareas de precarga y gestionar muchos vídeos con una sola instancia del reproductor. De esta forma, se aumentó considerablemente la capacidad de precarga y se eliminaron las complejidades de memoria de su enfoque anterior.
Optimización y ajuste del rendimiento
A continuación, el equipo llevó a cabo pruebas e iteraciones exhaustivas para optimizar el rendimiento en el diverso ecosistema de dispositivos global de Meta. La precarga inicial agresiva a veces provocaba problemas, como un mayor uso de memoria y una ralentización del rendimiento del desplazamiento. Para solucionar este problema, afinaron la implementación midiendo cuidadosamente la memoria, teniendo en cuenta la fragmentación de los dispositivos y adaptando el sistema a patrones de interfaz de usuario específicos.
Ajustar la implementación a patrones de interfaz de usuario específicos
Meta aplicó diferentes estrategias de precarga y adaptó el comportamiento para que coincidiera con los patrones de interfaz de usuario específicos de cada aplicación:
- Feed de noticias de Facebook: la interfaz de usuario prioriza el vídeo que se está mostrando. El gestor precarga solo el vídeo actual para asegurarse de que se inicie en el momento en que el usuario pause el desplazamiento. Este enfoque de solo el actual minimiza el uso de datos y memoria en un entorno en el que los usuarios pueden ver muchas publicaciones estáticas entre vídeos. Aunque el sistema está diseñado para precargar solo el vídeo que se está viendo, se puede ajustar para que también precargue los vídeos que se van a reproducir a continuación.
- Reels de Instagram: se trata de un entorno de vídeo puro en el que los usuarios deslizan el dedo verticalmente. Para esta interfaz de usuario, el equipo implementó una estrategia de precarga adyacente. PreloadManager mantiene los vídeos inmediatamente después del Reel actual listos en la memoria. Este enfoque bidireccional asegura que, tanto si un usuario desliza hacia arriba como hacia abajo, la transición sea instantánea y fluida. El resultado fue una mejora drástica de la calidad de la experiencia, incluidas las mejoras en el inicio de la reproducción y el tiempo hasta el primer fotograma para el usuario.
Escalar para un ecosistema de dispositivos global diverso
Para escalar una pila de vídeo de alto rendimiento en miles de millones de dispositivos, se necesita algo más que una precarga agresiva: se necesita inteligencia. Meta se enfrentó a problemas iniciales con la presión de memoria y el retraso al desplazarse, sobre todo en hardware de gama media y baja. Para solucionar este problema, crearon un sistema de detección de estrés del dispositivo basado en la implementación de Media3. Ahora, las aplicaciones monitorizan las señales de E/S y CPU en tiempo real. Si un dispositivo está sometido a una carga pesada, la precarga se pausa para priorizar la capacidad de respuesta de la interfaz de usuario.
Esta optimización para dispositivos asegura que la ventaja de la reproducción instantánea no afecte a la estabilidad del sistema, lo que permite que incluso los usuarios con hardware antiguo disfruten de un feed más fluido y sin interrupciones.
Ventajas de la arquitectura y estado del código
Además de las métricas orientadas a los usuarios, la migración a Media3 PreloadManager ha ofrecido ventajas arquitectónicas a largo plazo. Aunque el proceso de integración y afinamiento necesitó varias iteraciones para equilibrar el rendimiento, la base de código resultante es más fácil de mantener. El equipo descubrió que la API PreloadManager se integraba perfectamente con el ecosistema de Media3, lo que permitía compartir mejor los recursos. Para Meta, la adopción de Media3 PreloadManager fue una inversión estratégica en el futuro del consumo de vídeo.
Al adoptar la precarga y añadir puertas inteligentes para dispositivos, consiguieron aumentar el tiempo total de visualización en sus aplicaciones y mejorar la interacción general de su comunidad global.
Impacto resultante en Instagram y Facebook
La arquitectura proactiva proporcionó mejoras inmediatas y medibles en ambas plataformas.
- Facebook ha experimentado tiempos de inicio de reproducción más rápidos, una disminución de las tasas de interrupción de la reproducción y una reducción de las sesiones incorrectas (como el almacenamiento en búfer, el retraso en el tiempo de inicio o la menor calidad, entre otros), lo que ha dado como resultado un mayor tiempo de visualización.
- En Instagram, la reproducción empezó más rápido y el tiempo de visualización total aumentó. Al eliminar la latencia de unión (el intervalo entre la acción del usuario y la visualización del primer fotograma), las métricas de interacción aumentaron directamente. Las menos interrupciones debido a la reducción del almacenamiento en búfer hicieron que los usuarios vieran más contenido, lo que se reflejó en las métricas de interacción.
Conclusiones clave de ingeniería a gran escala
A medida que evolucionen los hábitos de consumo de contenido multimedia, la demanda de experiencias instantáneas seguirá creciendo. Implementar una gestión de memoria proactiva y optimizar la aplicación para que se adapte a la escala y a la diversidad de dispositivos te permitirá cumplir estas expectativas de forma eficiente.
- Priorizar la precarga inteligente
Céntrate en ofrecer una experiencia fiable minimizando los tirones y los tiempos de carga mediante la precarga. En lugar de usar el almacenamiento en caché en disco, la precarga a nivel de memoria asegura que el contenido esté listo en el momento en que un usuario interactúe con él.
- Ajustar la implementación a los patrones de la interfaz de usuario
Personaliza el comportamiento de precarga según la interfaz de usuario de tus aplicaciones. Por ejemplo, usa un enfoque de "solo actual" para los feeds mixtos, como Facebook, para ahorrar memoria, y una estrategia de "precarga adyacente" para los entornos verticales, como los reels de Instagram.
- Aprovechar Media3 para mantener el código en buen estado a largo plazo
Si integras las APIs de Media3 en lugar de una solución de almacenamiento en caché personalizada, el reproductor y PreloadManager podrán compartir mejor los recursos, lo que te permitirá gestionar varios vídeos con una sola instancia del reproductor. De esta forma, se obtiene una base de código preparada para el futuro que los equipos de ingeniería pueden mantener y optimizar con el tiempo, así como beneficiarse de las últimas actualizaciones de funciones.
- Implementar optimizaciones adaptadas a los dispositivos
Amplía tu cobertura de mercado haciendo pruebas en varios dispositivos, incluidos modelos de gama media y baja. Usa señales en tiempo real, como la CPU, la memoria y las E/S, para adaptar las funciones y el uso de recursos de forma dinámica.
Más información
Para empezar y obtener más información, visita .
- Consulta la documentación de PreloadManager de Media3.
- Consulta la serie de entradas del blog para obtener información técnica y de implementación avanzada.
- Consulta la aplicación de ejemplo para ver la precarga en acción.
Ahora ya conoces los secretos para reproducir contenido al instante. ¡Pruébalas!
Seguir leyendo
-
Casos de éxito
TikTok es una plataforma mundial de vídeos cortos conocida por su enorme base de usuarios y sus innovadoras funciones.
Ben Trengrove, Ajesh Pai • Tiempo de lectura: 2 min
-
Casos de éxito
Crear una aplicación Android para un wearable significa que el trabajo de verdad empieza cuando se apaga la pantalla.
Breana Tate • Tiempo de lectura: 4 min
-
Casos de éxito
JioHotstar es una plataforma de streaming líder en la India que presta servicio a más de 400 millones de usuarios.
Prateek Batra • Tiempo de lectura: 3 min
Mantente al día
Recibe cada semana en tu bandeja de entrada las últimas novedades sobre el desarrollo para Android.