Migração de HLS no player Shaka

Informações gerais

O SDK do receptor da Web do Cast é compatível com a reprodução de conteúdo usando vários protocolos de streaming da Web. Com base no protocolo usado, o SDK carrega um player para processar a reprodução do conteúdo. No caso de conteúdo HLS, a biblioteca Media Player (MPL) é carregada. No caso de conteúdo DASH, o Shaka Player é carregado.

Futuramente, as equipes de engenharia do SDK do Cast e do Shaka Player estão consolidar esforços para aumentar o suporte à reprodução de conteúdo HLS no Shaka Player. A MPL não vai mais receber atualizações críticas. Recomendamos que você use o Shaka Player para a reprodução de conteúdo HLS do seu app.

Benefícios do Shaka Player

Ao mudar de jogador, os aplicativos se beneficiam dos seguintes benefícios:

  • Sessões de streaming mais robustas para os usuários, com melhorias na latência e falhas no tempo de carregamento.
  • Adoção contínua dos recursos mais recentes de HLS
  • Maior clareza na análise de causa raiz para problemas de compatibilidade de conteúdo do jogador devido à natureza de código aberto do Shaka Player.
  • A base de código do jogador de código aberto permite que os parceiros contribuam para o Shaka Player Project.
  • Uma redução significativa no tempo de correção de recursos e bugs para produção, já que a cadência de lançamento do player Shaka é frequente e independente das versões do SDK do receptor da Web.
  • Maior controle sobre o ambiente de reprodução fornecido pela API shakaVersion.
  • Maior suporte à reprodução do Google com recursos de engenharia focados na reprodução HLS no Shaka Player, conforme mostrado no roteiro.

Cronograma

O SDK do receptor da Web vai passar a usar o Shaka Player como player padrão para a reprodução de conteúdo HLS. Isso será feito em etapas para orientar os parceiros durante o processo de migração.

Fase Data de início Informações gerais
1 Outubro de 2022 O SDK do Cast Web Receiver apresenta APIs para ativar a reprodução de conteúdo HLS no Shaka Player.
2 2o semestre de 2024 O SDK do receptor da Web do Cast muda o player padrão para Shaka Player para a reprodução de conteúdo HLS.

As equipes de engenharia do SDK do receptor da Web estão adotando uma abordagem orientada por desempenho e só vão avançar para a próxima fase quando o desempenho do Shaka Player estiver no mesmo igual ao desempenho do valor de referência da MPL. Essas mudanças serão anunciadas no grupo do Google cast-sdk-announcements (em inglês) e atualizadas neste guia.

Ativar

A partir da versão 3.0.0105 do CAF, há uma configuração no nível do aplicativo para aceitar o uso do Shaka Player para reprodução HLS. Ela também introduz uma API para selecionar entre um intervalo com suporte de versões do Shaka Player para carregar. Essas sinalizações são fornecidas na classe CastReceiverOptions pelas propriedades useShakaForHls e shakaVersion e são avaliadas quando o CastReceiverContext é iniciado. Qualquer app que aceite o Shaka para HLS precisa definir uma versão do Shaka Player de pelo menos 4.3.4 para aproveitar as melhorias mais recentes. Para isso, siga o snippet de código abaixo:

const context = cast.framework.CastReceiverContext.getInstance();

let castReceiverOptions = new cast.framework.CastReceiverOptions();
castReceiverOptions.useShakaForHls = true;

context.start(castReceiverOptions);

Validar conteúdo

Os parceiros precisam validar a reprodução de conteúdo no Shaka Player antes de permitir o uso do Shaka Player no app de produção. Recomendamos testar cada uma das variações do seu conteúdo listadas abaixo:

  • Tipos de transmissão: AO VIVO ou VOD
  • Formatos de contêiner: TS, MP4 ou streams elementares
  • Conteúdo com descontinuidades ou anúncios incorporados
  • Reprodução nos seguintes tipos de dispositivos: smart displays, dongles do Chromecast, dispositivos Android TV, TVs com Chromecast integrado e alto-falantes inteligentes

Se você encontrar erros ou comportamentos inesperados, registre um bug. Quando conseguir verificar se não há falhas críticas de reprodução no conteúdo, envie as alterações ao ambiente de produção.

Deixar de participar

O SDK do receptor da Web fará a transição para um modelo de recusa para a reprodução de conteúdo HLS do Shaka Player de acordo com o cronograma. A propriedade useShakaForHls mudará o valor padrão de false para true. Nesse momento, os aplicativos podem optar por usar o MPL para reprodução HLS, definindo manualmente essa propriedade como false. Quando o CastReceiverContext for iniciado, o SDK do receptor da Web vai voltar a carregar MPL em vez do Shaka Player. Confira o exemplo abaixo para saber como desativar:

const context = cast.framework.CastReceiverContext.getInstance();

let castReceiverOptions = new cast.framework.CastReceiverOptions();
castReceiverOptions.useShakaForHls = false;

context.start(castReceiverOptions);

Relatar problemas

Incentivamos nossos parceiros a registrar qualquer problema que encontrem ao reproduzir conteúdo HLS. Como mencionado, o MPL não vai mais receber atualizações críticas. Se algum problema for encontrado com o MPL, siga as etapas na seção Ativar do guia para verificar se a mudança para o Shaka Player vai resolver o problema. Siga as etapas abaixo se o problema ainda estiver presente ou se você encontrar um problema diferente ao trocar de player.

  1. Tente definir shakaVersion como uma versão diferente da ramificação para resolver o problema. Por exemplo, se o problema for encontrado na ramificação 4.3, tente defini-lo para a versão mais recente nas versões 4.2.x ou 3.3.x. Consulte as notas da versão do player Shaka para encontrar as versões com as atualizações mais relevantes. Observe que a API shakaVersion tem uma versão mínima e máxima compatível, conforme detalhado na documentação de referência. Se você observar que há uma regressão, informe o problema no issuetracker do player Shaka.
  2. Tente mudar os parâmetros de configuração do player. O Shaka Player é configurável por meio do objeto PlayerConfiguration. O SDK do receptor da Web define um conjunto de valores padrão e permite que os aplicativos modifiquem essa configuração usando a propriedade shakaConfig no objeto PlaybackConfig. Isso é avaliado durante o tempo de carregamento quando a instância do jogador é criada. Ver mais em

    configuração e opções do aplicativo. Os valores padrão definidos pelo SDK do receptor da Web são os recomendados.

  3. Confira se o problema foi informado no Issuetracker do Shaca Player ou no Issuetracker de transmissão. Comente sobre o bug e adicione informações relevantes, se ele também descrever seu problema.

  4. Teste seu conteúdo no site de demonstração do player Shaka. Se o problema for reproduzido no site de demonstração do seu conteúdo, registre um bug com o projeto Shaka Player.

  5. Registre um bug no Issue Tracker do Cast se você tiver um problema exclusivo do Shaka Player em endpoints de transmissão.

Perguntas frequentes

Trocar de jogador pode gerar muitas perguntas. Veja abaixo as perguntas mais comuns respondidas para ajudar a orientar você no processo de migração.

Devo migrar para o Shaka Player?

Incentivamos nossos parceiros a usar conteúdo HLS para iniciar o processo de migração o mais rápido possível. Como resultado, seu app oferece uma experiência de streaming mais robusta para os usuários. Mais benefícios são descritos na seção Benefícios do player Shaka deste guia. Os parceiros precisam verificar se os apps estão funcionando corretamente usando o Shaka Player para garantir uma transição perfeita. Alguns apps podem correr o risco de quando o SDK do receptor da Web faz a transição para um modelo de desativação se os parceiros não verificarem se o conteúdo deles é reproduzido corretamente no Shaka Player com antecedência.

Qual é o nível de esforço esperado ao trocar de jogador?

Os parceiros precisarão testar o aplicativo e o conteúdo em um ambiente de teste para garantir que a experiência do usuário seja semelhante ou aprimorada em comparação com o HLS. Para isso, os parceiros precisarão ativar o recurso em um ambiente interno e testar minuciosamente se o conteúdo pode ser reproduzido usando o Shaka Player. Consulte Como validar conteúdo para saber em quais aspectos do seu conteúdo você deve se concentrar. Depois da validação, os parceiros precisam adicionar a flag para a ativação no ambiente de produção do aplicativo para começar a aproveitar os benefícios oferecidos pelo Shaka Player. De modo geral, há mudanças mínimas no desenvolvimento de software e, principalmente, requisitos de controle de qualidade para que nossos parceiros migrem.

Em breve, meu app vai usar o HLS para transmitir conteúdo. O que devo fazer?

As novas integrações devem ativar o uso do Shaka Player para reprodução. O aplicativo terá um suporte melhor a longo prazo e também aproveitará os novos recursos de HLS e as melhorias de desempenho. Se a nova integração estiver apresentando problemas, registre um bug o mais rápido possível para que a equipe de engenharia tenha tempo suficiente de resolver o problema. Se o aplicativo tiver um prazo apertado, inclua essas informações no relatório do bug, bem como o impacto a ser priorizado. Nossa equipe de engenharia trabalhará para fornecer uma solução para dar suporte adequado aos seus usuários.

Meu conteúdo ou app não funciona com o Shaka Player. E agora?

Registre um bug no projeto Shaka Player ou no projeto do Google Cast (consulte Informar problemas). A equipe de engenharia do SDK do Cast está monitorando esses rastreadores ativamente e trabalhará com você para resolver quaisquer problemas disponíveis. Quanto mais cedo esses problemas forem detectados, mais tempo eles terão para entregar a correção.

O MPL não está mais recebendo atualizações críticas. O que isso significa exatamente?

Historicamente, a MPL adotou novos recursos de HLS e corrigiu bugs importantes usando atualizações críticas. Agora que o MPL não vai mais recebê-los, novos recursos de HLS não serão adicionados ao jogador. Da mesma forma, os problemas relatados para a reprodução de HLS no MPL não serão corrigidos na MPL. Esses problemas precisam ser resolvidos mudando para o Shaka Player para reprodução. Se os problemas persistirem, um bug será registrado com os problemas relevantes enfrentados no Shaka Player. Os parceiros devem parar de usar o MPL.

Meu conteúdo usa o protocolo de streaming Smooth. Como isso afeta meu aplicativo?

Os binários de MPL ainda serão hospedados e poderão ser acessados pelo aplicativo receptor. No entanto, nenhuma solicitação de recurso e correção de bugs relacionadas ao Smooth Streaming terá suporte, já que a especificação do Smooth Streaming não é atualizada há mais de quatro anos. Recomendamos que você migre seu conteúdo para usar o protocolo de streaming DASH ou HLS e continuar recebendo atualizações de desempenho e suporte para o conteúdo.

Meu conteúdo não usa os protocolos HLS ou Smooth Stream. Como isso afeta meu app?

Se a biblioteca de conteúdo não usar um desses protocolos de streaming, você não será afetado pela migração. Nenhuma mudança é necessária no app.