Como garantir uma reprodução de vídeo fluida em todos os dispositivos.
Em um experimento com a API Media Capabilities, o YouTube teve um aumento de 7,1% no MTBR com apenas uma redução de 0,4% na resolução média dos vídeos veiculados.
O problema
Normalmente, os sites de mídia têm diversas variantes de cada vídeo que podem ser apresentadas
aos usuários, codificadas em diferentes frame rates, resoluções e codecs. Até
recentemente, os desenvolvedores Web precisavam depender apenas de isTypeSupported()
ou
canPlayType()
para determinar se cada variante podia ser reproduzida no
navegador de um usuário individual.
Embora isso informasse ao desenvolvedor se a mídia poderia ser reproduzida, ele não
forneceu uma indicação de qualidade de reprodução, por exemplo, se haveria queda de
frames ou consumo de bateria do dispositivo. Sem essas informações, os desenvolvedores precisavam
criar as próprias heurísticas ou simplesmente presumir que, se um dispositivo pudesse reproduzir uma
combinação de codec/resolução, seria possível fazer isso sem problemas e com eficiência energética.
Para usuários com dispositivos menos potentes, isso geralmente levava a uma experiência ruim.
A solução
A API Media Capabilities permite que os sites recebam mais informações sobre o desempenho de decodificação de vídeo do cliente e tomem uma decisão informada sobre qual codec e resolução fornecer ao usuário. Especificamente, a API oferece ao desenvolvedor uma estimativa da suavidade e eficiência de energia de uma combinação específica de codec e resolução. Isso permite que o desenvolvedor evite cenários em que o cliente provavelmente terá uma experiência de reprodução ruim.
No Chrome, a API Media Capabilities usa métricas de reproduções anteriores para prever se as próximas reproduções no mesmo codec e na mesma resolução serão decodificadas sem problemas.
Estudo de caso do YouTube
O YouTube usou a API Media Capabilities para impedir que o algoritmo de taxa de bits adaptável seleciona automaticamente resoluções que a reprodução de um dispositivo não funcionava perfeitamente.
Os usuários que faziam parte do grupo experimental coletivamente tiveram menos rebuffers frequentes (o tempo médio entre eles aumentou em 7,1%), enquanto a resolução média, medida pela altura do vídeo, foi veiculada no grupo agregado apenas em 0,4%. O aumento substancial no MTBR com uma pequena redução correspondente na resolução média indica que essa mudança melhorou significativamente a qualidade para um pequeno subconjunto de usuários que tiveram uma experiência ruim.
Como implementar a API Media Capabilities no site
Confira o exemplo oficial (link em inglês) para ver como a API Decoding Info funciona.