Home / Aplicativo móvel / Instagram e Facebook oferecem reprodução instantânea e aumentam o envolvimento do usuário com Media3 PreloadManager

Instagram e Facebook oferecem reprodução instantânea e aumentam o envolvimento do usuário com Media3 PreloadManager

Instagram e Facebook oferecem reprodução instantânea e aumentam o envolvimento do usuário com Media3 PreloadManager

Complexidades Existentes

Anteriormente, o Meta usava uma combinação de aquecimento (para preparar os jogadores) e pré-busca (para armazenar conteúdo em cache no disco) para entrega de vídeo. Embora esses métodos tenham ajudado a melhorar a eficiência da rede, eles introduziram desafios significativos. O aquecimento exigia a instanciação de múltiplas instâncias de player sequencialmente, o que consumia memória significativa e limitava o pré-carregamento a apenas alguns vídeos. Essa alta demanda de recursos significou que uma solução robusta e mais escalável poderia ser aplicada para fornecer a reprodução instantânea esperada em feeds sociais modernos e de rolagem rápida.


Integrando Media3 PreloadManager

Para obter uma reprodução verdadeiramente instantânea, a equipe do Media Foundation Client da Meta integrou o Jetpack Media3 PreloadManager ao Facebook e Instagram. Eles escolheram o DefaultPreloadManager para unificar seus sistemas de pré-carregamento e reprodução. Esta integração exigiu a refatoração da arquitetura existente do Meta para permitir o compartilhamento eficiente de recursos entre o PreloadManager e ExoPlayer instâncias. Essa mudança estratégica proporcionou uma vantagem arquitetônica importante: a capacidade de paralelizar tarefas de pré-carregamento e gerenciar muitos vídeos usando uma instância de player único. Isso aumentou drasticamente a capacidade de pré-carregamento e, ao mesmo tempo, eliminou as altas complexidades de memória da abordagem anterior.

Otimização e ajuste de desempenho

A equipe então realizou extensos testes e iterações para otimizar o desempenho em todo o diversificado ecossistema global de dispositivos da Meta. O pré-carregamento agressivo inicial às vezes causava problemas, incluindo aumento do uso de memória e lentidão no desempenho de rolagem. Para resolver isso, eles ajustaram a implementação usando medições cuidadosas de memória, considerando a fragmentação do dispositivo e adaptando o sistema a padrões de UI específicos.

Implementação de ajuste fino para padrões de UI específicos

Meta aplicou diferentes estratégias de pré-carregamento e adaptou o comportamento para corresponder aos padrões de UI específicos de cada aplicativo:

  • Feed de notícias do Facebook: a IU prioriza o vídeo que está sendo exibido no momento. O gerenciador pré-carrega apenas o vídeo atual para garantir que ele comece no momento em que o usuário pausa a rolagem. Esse “somente atual“O foco minimiza o consumo de dados e memória em um ambiente onde os usuários podem ver muitas postagens estáticas entre os vídeos. Embora o sistema esteja atualmente projetado para pré-carregar apenas o vídeo em exibição, ele pode ser ajustado para pré-carregar também os próximos vídeos (futuros).

  • Carretéis do Instagram: Este é um ambiente de vídeo puro onde os usuários deslizam verticalmente. Para esta UI, a equipe implementou um “pré-carga adjacente“estratégia. O PreloadManager mantém os vídeos imediatamente após o Reel atual pronto na memória. Essa abordagem bidirecional garante que, quer o usuário deslize para cima ou para baixo, a transição permaneça instantânea e suave. O resultado foi uma melhoria dramática na Qualidade da Experiência (QoE), incluindo melhorias no Início da Reprodução e no Tempo até o Primeiro Quadro para o usuário.

Dimensionamento para um ecossistema diversificado de dispositivos globais

Dimensionar uma pilha de vídeo de alto desempenho em bilhões de dispositivos requer mais do que apenas um pré-carregamento agressivo; requer inteligência. Meta enfrentou desafios iniciais com pressão de memória e atraso de rolagem, especialmente em hardware de médio a baixo custo. Para resolver isso, eles construíram um Detecção de estresse do dispositivo sistema em torno da implementação do Media3. Os aplicativos agora monitoram sinais de E/S e CPU em tempo real. Se um dispositivo estiver sob carga pesada, o pré-carregamento será pausado para priorizar a capacidade de resposta da IU.

Essa otimização com reconhecimento de dispositivo garante que o benefício da reprodução instantânea não seja prejudicado pela estabilidade do sistema, permitindo que até mesmo usuários de hardware mais antigo experimentem uma transmissão mais suave e ininterrupta.

Vitórias arquitetônicas e integridade do código

Além das métricas voltadas ao usuário, a migração para Media3 PreloadManagerofereceu benefícios arquitetônicos de longo prazo. Embora o processo de integração e ajuste precisasse de diversas iterações para equilibrar o desempenho, a base de código resultante é mais fácil de manter. A equipe descobriu que PreloadManager API integrada de forma limpa com o ecossistema Media3 existente, permitindo um melhor compartilhamento de recursos. Para a Meta, a adoção do Media3 PreloadManager foi um investimento estratégico no futuro do consumo de vídeo.

Ao adotar o pré-carregamento e adicionar portas inteligentes para dispositivos, eles aumentaram com sucesso o tempo total de exibição em seus aplicativos e melhoraram o envolvimento geral de sua comunidade global.

Impacto resultante no Instagram e Facebook

A arquitetura proativa proporcionou melhorias imediatas e mensuráveis ​​em ambas as plataformas.

  • Facebook experiente início de reprodução mais rápido, diminuição das taxas de paralisação de reprodução e redução de sessões ruins (como rebuffering, horário de início atrasado, qualidade inferior, etc.), o que no geral resultou em maior tempo de exibição.

  • Instagram viu a reprodução é iniciada mais rapidamente e um aumento no tempo total de exibição. Eliminando a latência de junção (o intervalo entre a ação do usuário e a exibição do primeiro quadro) aumentou diretamente as métricas de engajamento. O menos interrupções devido ao buffer reduzido, os usuários assistiram a mais conteúdo, o que foi demonstrado por meio de métricas de engajamento.

Principais aprendizados de engenharia em escala

À medida que os hábitos de consumo de mídia evoluem, a procura por experiências instantâneas continuará a crescer. A implementação do gerenciamento proativo de memória e a otimização da escala e da diversidade de dispositivos garantem que seu aplicativo possa atender a essas expectativas com eficiência.


Concentre-se em fornecer uma experiência confiável, minimizando interrupções e tempos de carregamento por meio do pré-carregamento. Em vez de um simples cache de disco, aproveitar o pré-carregamento no nível da memória garante que o conteúdo esteja pronto no momento em que o usuário interage com ele.


Personalize o comportamento de pré-carregamento de acordo com a IU dos seus aplicativos. Por exemplo, use um foco “somente atual” para feeds mistos como o Facebook para economizar memória e uma estratégia de “pré-carregamento adjacente” para ambientes verticais como Instagram Reels.

A integração com APIs Media3 em vez de uma solução de cache personalizada permite um melhor compartilhamento de recursos entre o player e o PreloadManagerpermitindo gerenciar vários vídeos com uma única instância de player. Isso resulta em uma base de código preparada para o futuro que é mais fácil para as equipes de engenharia não apenas manter e otimizar ao longo do tempo, mas também se beneficiar das atualizações de recursos mais recentes.

Amplie seu alcance de mercado testando em vários dispositivos, incluindo modelos de médio a baixo custo. Use sinais em tempo real como CPU, memória e E/S para adaptar recursos e uso de recursos de forma dinâmica.

Deixe um Comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *