As plataformas de streaming são dimensionadas para acomodar milhões de espectadores simultâneos em diversos dispositivos e condições de rede, o que torna essencial o streaming eficiente de taxa de bits adaptável (ABR). Nesta postagem do blog, exploraremos os aspectos técnicos da transição do ABR do lado do cliente para o lado do servidor, concentrando-nos nos detalhes de implementação e nas otimizações de desempenho.
Fundamentos do streaming com taxa de bits adaptável
Como funciona exatamente o streaming com taxa de bits adaptável? Vamos examinar cada etapa. Primeiro, o conteúdo do vídeo é preparado codificando-o em várias taxas de bits (por exemplo, 500 kbps, 1 Mbps, 2 Mbps etc.) e armazenando essas diferentes versões.
Um arquivo de manifesto, como um M3U8 para HLS ou MPD para DASH, contém informações sobre os diferentes fluxos de taxa de bits disponíveis.
Quando um usuário inicia a reprodução, o dispositivo cliente faz o download do arquivo de manifesto para ver as opções de taxa de bits disponíveis. O cliente seleciona uma taxa de bits inicial, geralmente começando com uma taxa de bits mais baixa para uma inicialização mais rápida.
À medida que o vídeo é reproduzido, o dispositivo cliente monitora continuamente as condições da rede e seus níveis de buffer interno. Se a largura de banda da rede se tornar limitada, o cliente solicitará blocos de taxa de bits mais baixos para evitar o rebuffering. Por outro lado, se a largura de banda melhorar, o cliente solicitará blocos de taxa de bits mais altos para melhorar a qualidade do vídeo. Essa alternância de taxa de bits ocorre por meio da solicitação de novos segmentos de vídeo no nível de taxa de bits atualizado.
Desafios do streaming tradicional com taxa de bits adaptável (ABR do lado do cliente)
Tradicionalmente, o streaming ABR tem sido gerenciado no lado do cliente, onde o dispositivo que está reproduzindo o vídeo determina a melhor taxa de bits a ser usada. No entanto, essa abordagem apresenta alguns desafios. Primeiro, os dispositivos clientes variam muito em sua capacidade de processamento. Um telefone mais antigo pode não ser capaz de lidar com toda a computação necessária para ajustar constantemente a qualidade do vídeo de forma tão suave quanto um modelo top de linha novinho em folha. É por isso que, às vezes, quando você está assistindo a um programa no seu telefone, a qualidade do vídeo pode variar.
Outro problema é o quanto as conexões de Internet podem variar, mesmo em um curto período de tempo. Seu dispositivo precisa se adaptar constantemente a essas mudanças, o que pode levar a quedas de qualidade realmente perceptíveis ou à alternância frequente entre resoluções, o que torna a experiência de visualização bastante chocante. Especialmente se você mora em uma área com internet irregular, poderá observar muitas interrupções no buffer ou quedas de qualidade.
Há também a questão da latência: se houver um atraso para que o dispositivo perceba que a conexão mudou, ele poderá não ajustar a taxa de bits com a rapidez necessária, o que causará interrupções ou quedas repentinas na qualidade.
Por fim, todo esse ajuste constante e as possíveis ineficiências podem levar ao uso de mais dados do que o necessário. Isso pode ser um problema real para usuários com planos de dados móveis limitados.
Como a ABR do lado do servidor pode resolver esses desafios
Para resolver esses problemas, em vez de determinar a seleção apropriada da taxa de bits no lado do cliente, o SSABR faz a seleção no lado do servidor.
Veja como o streaming de taxa de bits adaptável no lado do servidor poderia funcionar. Primeiro, o cliente envia uma solicitação HTTP GET para o arquivo de manifesto. A solicitação inclui metadados do cliente (por exemplo, tipo de dispositivo, resolução de tela, codecs compatíveis). Em seguida, o servidor analisa os metadados do cliente a partir dos cabeçalhos da solicitação e faz algumas análises (carga atual da CDN, distância geográfica do cliente, desempenho histórico de clientes semelhantes etc.). Em seguida, o servidor gera um arquivo de manifesto personalizado, adaptado aos recursos do cliente e às condições atuais da rede, e inclui apenas as taxas de bits consideradas adequadas para o cliente. Em seguida, o servidor selecionará a taxa de bits ideal com base na largura de banda disponível (estimada a partir do RTT e da taxa de transferência), na complexidade do conteúdo (tamanho do quadro I, vetores de movimento) e no nível do buffer do cliente (informado por meio de feedback em tempo real). Em seguida, o servidor fornecerá segmentos de vídeo codificados na taxa de bits selecionada para o dispositivo cliente, que os decodificará e reproduzirá. Por fim, o servidor monitora continuamente as condições da rede e os recursos do dispositivo visualizador. Se as condições mudarem durante a reprodução (por exemplo, se houver congestionamento na rede), o servidor poderá ajustar dinamicamente a taxa de bits para garantir uma reprodução suave, sem buffer ou degradação da qualidade.
Há muitos benefícios nessa abordagem do lado do servidor. Em vez de o dispositivo cliente ter que tomar a decisão de selecionar a taxa de bits correta por conta própria, o servidor tem uma visão holística muito melhor das condições da rede, da complexidade do conteúdo de vídeo e da capacidade do dispositivo. Com todas essas informações, ele pode tomar decisões mais apropriadas sobre o ajuste da taxa de bits para cima ou para baixo. Isso significa transições mais suaves entre diferentes níveis de qualidade e apenas uma experiência de streaming mais consistente e sem buffer para os espectadores.
A transferência do processo de seleção de taxa de bits para o servidor também reduz a carga de processamento nos dispositivos clientes. Isso é particularmente benéfico para dispositivos com recursos limitados, melhorando seu desempenho e a vida útil da bateria.
Outro benefício do streaming com taxa de bits adaptável no lado do servidor é que o servidor pode monitorar continuamente as condições da rede em tempo real, ajustando a taxa de bits com mais precisão e rapidez do que os algoritmos no lado do cliente. Portanto, se ele detectar que a sua conexão está prestes a ficar mais lenta, poderá reduzir proativamente a taxa de bits antes mesmo de você sentir qualquer soluço. E, assim que a velocidade da conexão voltar a aumentar, ele elevará a qualidade novamente. Ele pode até mesmo analisar a complexidade do conteúdo do vídeo em um determinado momento. Cenas de movimento mais intenso com muita ação serão aumentadas para uma taxa de bits mais alta para obter melhor qualidade, enquanto cenas mais calmas podem ser transmitidas com taxas de bits mais baixas sem piorar a aparência.
Por fim, o streaming de taxa de bits adaptável no lado do servidor pode ser muito econômico para os provedores de streaming. Um gerenciamento mais eficiente da taxa de bits significa custos menores de largura de banda em todos os setores. Os provedores de streaming podem fornecer vídeo de alta qualidade sem incorrer em taxas excessivas de transferência de dados, enquanto os usuários podem aproveitar seu conteúdo favorito sem se preocupar com o excesso de dados.
Em resumo, fluxos de maior qualidade, reprodução mais suave, melhor desempenho do dispositivo e economia de custos são ótimos motivos para começar a considerar o streaming com taxa de bits adaptável no lado do servidor.
Otimizações de desempenho
Para maximizar os benefícios da ABR no lado do servidor, há algumas otimizações de desempenho que você deve considerar implementar. A primeira é a computação de borda. Ao implementar a lógica ABR em servidores de borda, você pode reduzir drasticamente a distância que os dados precisam percorrer, o que, por sua vez, minimiza a latência durante a reprodução de vídeo. Essa proximidade com os usuários finais não só resulta em um streaming mais suave, com menos buffering e tempo de atraso, mas também garante ajustes mais rápidos na taxa de bits. Além disso, a redução da pressão sobre os servidores centrais pode levar a uma maior escalabilidade e eficiência geral da rede, permitindo que você lide com cargas de tráfego mais altas com mais facilidade.
Outra otimização importante do desempenho envolve a implementação de estratégias eficazes de armazenamento em cache. Ao armazenar em cache de forma inteligente segmentos de vídeo populares em várias taxas de bits, é possível reduzir significativamente a carga no servidor e melhorar o desempenho do streaming. Para isso, você pode utilizar estruturas de dados probabilísticas, como os filtros Bloom, que rastreiam e preveem com eficiência a popularidade de diferentes segmentos. Isso permite que o sistema armazene e forneça conteúdo acessado com frequência mais rapidamente, reduzindo a latência para os usuários finais e minimizando a necessidade de buscar dados repetidamente no servidor de origem. Além disso, essa abordagem pode ajudar a otimizar o uso da largura de banda, levando a uma arquitetura de streaming mais dimensionável e eficiente.
Benchmarking e Monitoring Sua experiência de streaming
Depois de migrar para o fornecimento de taxa de bits adaptável no lado do servidor, você desejará quantificar as melhorias por meio de indicadores-chave de desempenho (KPIs) que medem a experiência do usuário e a eficiência do sistema. Existem alguns indicadores-chave de desempenho que são importantes.
O primeiro é o tempo de inicialização, que mede o tempo entre a solicitação de reprodução de um usuário e o primeiro quadro renderizado. Um tempo de inicialização mais curto é vital para uma experiência perfeita, pois longos atrasos podem levar à frustração do usuário e aumentar a rotatividade. Outro KPI importante é a taxa de rebuffer, calculada dividindo-se o tempo total de rebuffer pelo tempo total de reprodução e, em seguida, multiplicando-se por 100. Essa taxa reflete a porcentagem de tempo que um vídeo gasta em buffer durante a reprodução, e minimizá-la garante uma visualização ininterrupta. A frequência de troca de taxa de bits, que monitora o número de trocas de qualidade por minuto, é outra métrica útil. Trocas excessivas de taxa de bits podem atrapalhar a experiência do usuário, o que torna essencial equilibrar desempenho e estabilidade. A taxa de bits média mede a taxa de bits média fornecida em uma sessão, fornecendo informações sobre a qualidade geral do vídeo experimentada pelos usuários. Taxas de bits mais altas geralmente significam melhor qualidade, mas devem estar alinhadas com a largura de banda disponível para evitar o armazenamento em buffer. Por fim, as pontuações VMAF (Video Multi-Method Assessment Fusion) são métricas de qualidade perceptual que garantem que a qualidade do vídeo fornecido corresponda às decisões de taxa de bits tomadas pelo algoritmo ABR. As altas pontuações de VMAF indicam boa qualidade visual em relação à taxa de bits, garantindo uma experiência de visualização de alta qualidade.
O tempo de inicialização, a taxa de rebuffer, a frequência de troca de taxa de bits, a taxa de bits média e as pontuações VMAF são todos KPIs que podem ser usados para ajustar os algoritmos ABR e otimizar a satisfação do usuário.
Conclusão
O streaming de taxa de bits adaptável no lado do servidor aborda muitas das limitações do ABR tradicional no lado do cliente, oferecendo uma experiência de streaming mais eficiente e consistente. Ao centralizar o processo de tomada de decisão, o ABR no lado do servidor melhora o desempenho, aprimora o controle de qualidade e otimiza o uso de dados.
Nesta postagem do blog, exploramos os desafios da ABR no lado do cliente e as vantagens atraentes das soluções no lado do servidor. Se você for desenvolvedor em uma empresa de streaming e quiser saber mais sobre como otimizar suas soluções de streaming com taxa de bits adaptável, use este link para se inscrever e receber até US$ 5.000 em créditos Linode para saber mais.
Comentários