Avançar para o conteúdo principal
BlogueLinodeMigrando do streaming com taxa de bits adaptável do lado do cliente para o lado do servidor

Migração do streaming com taxa de bits adaptável do lado do cliente para o lado do servidor

Texto: Migração do streaming de taxa de bits adaptável do lado do cliente para o lado do servidor

As plataformas de streaming são dimensionadas para acomodar milhões de espectadores simultâneos em diversos dispositivos e condições de rede, tornando essencial o streaming eficiente de taxa de bits adaptável (ABR). Nesta publicação do blogue, vamos explorar 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 optimizações de desempenho.

Fundamentos da transmissão em fluxo contínuo com taxa de bits adaptável

Como funciona exatamente o streaming com taxa de bits adaptável? Vamos analisar cada etapa. Primeiro, o conteúdo de vídeo é preparado codificando-o a várias taxas de bits (por exemplo, 500 kbps, 1 Mbps, 2 Mbps, etc.) e armazenando estas diferentes versões. 

Um ficheiro 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 utilizador inicia a reprodução, o dispositivo cliente transfere o ficheiro de manifesto para ver as opções de taxa de bits disponíveis. O cliente seleciona uma taxa de bits inicial, começando normalmente com uma taxa de bits mais baixa para um arranque mais rápido. 

À medida que o vídeo é reproduzido, o dispositivo cliente monitoriza continuamente as condições da rede e os níveis da sua memória intermédia interna. Se a largura de banda da rede ficar limitada, o cliente solicitará pedaços de taxa de bits mais baixos para evitar a rejeição. Por outro lado, se a largura de banda melhorar, o cliente solicita pedaços de taxa de bits mais alta para melhorar a qualidade do vídeo. Essa mudança de taxa de bits ocorre solicitando novos segmentos de vídeo no nível de taxa de bits atualizado. 

Desafios do fluxo contínuo tradicional com taxa de bits adaptável (ABR do lado do cliente)

Tradicionalmente, o streaming ABR tem sido gerido no lado do cliente, onde o dispositivo que reproduz o vídeo determina a melhor taxa de bits a utilizar. No entanto, essa abordagem apresenta alguns desafios. Primeiro, os dispositivos clientes variam muito em termos de capacidade de processamento. Um telemóvel 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 como um modelo topo de gama novinho em folha. É por isso que, por vezes, quando está a ver um programa no seu telemóvel, a qualidade do vídeo pode variar. 

Outro problema é a variação das ligações à Internet, mesmo num curto período de tempo. O seu dispositivo tem de se adaptar constantemente a essas alterações, o que pode levar a quedas de qualidade realmente perceptíveis ou a uma mudança frequente entre resoluções, o que torna a experiência de visualização bastante chocante. Especialmente se viver numa área com uma Internet irregular, poderá ver muitas falhas de buffering ou de qualidade.

Há também a questão da latência - se o dispositivo demorar a aperceber-se de que a ligação mudou, pode não ajustar a taxa de bits com a rapidez suficiente, o que pode provocar paragens ou quedas súbitas de qualidade.

Por último, todos estes ajustes constantes e potenciais ineficiências podem levar à utilização de mais dados do que o necessário. Isto pode ser um verdadeiro problema para os utilizadores com planos de dados móveis limitados.

Como a ABR do lado do servidor pode resolver estes desafios

Para resolver estes problemas, em vez de determinar a seleção da taxa de bits adequada no lado do cliente, o SSABR faz a seleção no lado do servidor.

Veja como o streaming de taxa de bits adaptável do lado do servidor poderia funcionar. Primeiro, o cliente envia um pedido HTTP GET para o ficheiro de manifesto. O pedido inclui metadados do cliente (por exemplo, tipo de dispositivo, resolução do ecrã, codecs suportados). Em seguida, o servidor analisa os metadados do cliente a partir dos cabeçalhos do pedido 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 ficheiro de manifesto personalizado, adaptado às capacidades do cliente e às condições de rede actuais, e inclui apenas as taxas de bits consideradas adequadas para o cliente. O servidor selecionará então 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, vectores de movimento) e no nível da memória intermédia do cliente (comunicado através de feedback em tempo real). Em seguida, o servidor entrega segmentos de vídeo codificados com a taxa de bits selecionada ao dispositivo cliente, que os descodifica e reproduz. Por último, o servidor monitoriza continuamente as condições da rede e as capacidades do dispositivo de visualização. Se as condições se alterarem durante a reprodução (por exemplo, se ocorrer um congestionamento da rede), o servidor pode ajustar dinamicamente a taxa de bits para garantir uma reprodução sem problemas, sem acumulação de memória intermédia ou degradação da qualidade.

Há muitas vantagens nesta abordagem do lado do servidor. Em vez de ser o dispositivo cliente a ter de selecionar sozinho a taxa de bits correta, o servidor tem uma visão holística muito melhor das condições da rede, da complexidade do conteúdo de vídeo e das capacidades 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. Isto significa transições mais suaves entre diferentes níveis de qualidade e apenas uma experiência de transmissão global mais consistente e sem tampões para os espectadores.

A transferência do processo de seleção da taxa de bits para o servidor também reduz a carga de processamento nos dispositivos clientes. Isto é particularmente benéfico para dispositivos com recursos limitados, melhorando o seu desempenho e a duração da bateria.

Outra vantagem do streaming de taxa de bits adaptável do lado do servidor é que o servidor pode monitorizar continuamente as condições da rede em tempo real, ajustando a taxa de bits de forma mais precisa e rápida do que os algoritmos do lado do cliente. Assim, se detetar que a sua ligação está prestes a abrandar, pode reduzir proactivamente a taxa de bits antes mesmo de sentir quaisquer soluços. E assim que a velocidade da ligação voltar a aumentar, a qualidade volta a subir. Pode até analisar a complexidade do conteúdo de vídeo num determinado momento. As cenas com maior movimento e muita ação serão aumentadas para uma taxa de bits mais elevada, para uma melhor qualidade, enquanto as cenas mais calmas podem ser transmitidas a taxas de bits mais baixas sem ficarem com pior aspeto. 

Por último, o streaming de taxa de bits adaptável do lado do servidor pode ser muito económico para os fornecedores de streaming. Uma gestão mais eficiente da taxa de bits significa custos de largura de banda mais baixos em toda a linha. Os fornecedores de streaming podem fornecer vídeo de alta qualidade sem incorrer em taxas de transferência de dados excessivas, enquanto os utilizadores podem desfrutar do seu conteúdo favorito sem se preocuparem com o excesso de dados.

Resumindo - fluxos de maior qualidade, reprodução mais suave, melhor desempenho do dispositivo e poupança de custos são excelentes razões para começar a considerar o fluxo de bits adaptável do lado do servidor.

Optimizações de desempenho

Para maximizar os benefícios da ABR do lado do servidor, existem algumas optimizações de desempenho que deve considerar implementar. A primeira é a computação de borda. Ao implantar a lógica ABR em servidores de borda, é possível 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. Esta proximidade com os utilizadores finais não só resulta num streaming mais suave, com menos buffering e tempo de atraso, como 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-lhe lidar mais facilmente com cargas de tráfego mais elevadas.

Outra importante otimização 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, é possível utilizar estruturas de dados probabilísticas, como os filtros Bloom, que rastreiam e prevêem com eficiência a popularidade de diferentes segmentos. Isto permite ao sistema armazenar e servir conteúdo frequentemente acedido mais rapidamente, reduzindo a latência para os utilizadores finais e minimizando a necessidade de ir buscar dados repetidamente ao servidor de origem. Além disso, esta abordagem pode ajudar a otimizar a utilização da largura de banda, conduzindo a uma arquitetura de transmissão mais escalável e eficiente.

Benchmarking e Monitoring Sua experiência de streaming

Depois de migrar para a entrega de taxa de bits adaptativa do lado do servidor, vai querer quantificar as melhorias através de indicadores-chave de desempenho (KPIs) que medem a experiência do utilizador e a eficiência do sistema. Existem alguns indicadores-chave de desempenho que são importantes.

O primeiro é o tempo de arranque, que mede o tempo decorrido entre o pedido de reprodução de um utilizador e o primeiro fotograma apresentado. Um tempo de arranque mais curto é vital para uma experiência perfeita, uma vez que longos atrasos podem levar à frustração do utilizador e a um aumento da rotatividade. Outro KPI importante é o rácio de reposição, calculado dividindo o tempo total de reposição pelo tempo total de reprodução e multiplicando por 100. Esse índice reflete a porcentagem de tempo que um vídeo gasta em buffer durante a reprodução, e minimizá-lo garante uma visualização ininterrupta. A freqüência de troca de taxa de bits, que monitora o número de trocas de qualidade por minuto, é outra métrica útil. As mudanças excessivas de taxa de bits podem perturbar a experiência do utilizador, pelo que é essencial equilibrar o desempenho e a estabilidade. A Taxa de bits média mede a taxa de bits média fornecida durante uma sessão, fornecendo informações sobre a qualidade geral do vídeo experimentada pelos utilizadores. Taxas de bits mais altas geralmente significam melhor qualidade, mas devem estar alinhadas com a largura de banda disponível para evitar buffering. Por fim, as pontuações VMAF (Video Multi-Method Assessment Fusion) são métricas de qualidade perceptiva que garantem que a qualidade do vídeo entregue corresponde às decisões de taxa de bits tomadas pelo algoritmo ABR. As pontuações VMAF elevadas indicam uma boa qualidade visual em relação à taxa de bits, garantindo uma experiência de visualização de alta qualidade. 

O tempo de arranque, a taxa de recuperação, a frequência de comutação da taxa de bits, a taxa de bits média e as pontuações VMAF são todos KPIs que pode utilizar para afinar os algoritmos ABR e otimizar a satisfação do utilizador.

Conclusão

O streaming de taxa de bits adaptável do lado do servidor aborda muitas das limitações do ABR tradicional do lado do cliente, oferecendo uma experiência de streaming mais eficiente e consistente. Ao centralizar o processo de tomada de decisões, a ABR do lado do servidor melhora o desempenho, aumenta o controlo de qualidade e optimiza a utilização de dados. 

Nesta postagem do blog, exploramos os desafios do ABR do lado do cliente e as vantagens atraentes das soluções do lado do servidor. Se você é um desenvolvedor em uma empresa de streaming e deseja 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é $5.000 em créditos Linode para saber mais.

Comentários

Deixe uma resposta

O seu endereço de correio electrónico não será publicado. Os campos obrigatórios estão marcados com *