Taxa de bits máxima do editor

É possível controlar dinamicamente a taxa de bits máxima que um editor pode usar para transmissões de vídeo da câmera.

Este guia mostra como configurar as opções de taxa de bits de vídeo, como utilizar diferentes predefinições, como definir taxas de bits brutas e as melhores práticas para usar a API de maneira eficaz.

Este tópico inclui as seguintes seções:

Visão geral

É possível definir dinamicamente a taxa de bits máxima que um editor pode usar ao codificar mídia. O codificador de vídeo, então, ajusta a taxa de bits dinamicamente, utilizando um valor dentro do intervalo permitido — que vai de um limite mínimo até a taxa de bits máxima definida —, com base nas condições da rede e em outras restrições.

Definir a taxa de bits máxima pode ajudar a reduzir o consumo de largura de banda quando um usuário está se conectando por meio de uma conexão com limite de tráfego. Certifique-se de ler o Limitações abaixo.

Limitações

Há algumas limitações importantes que devem ser levadas em conta:

  • Condições da rede — A taxa de bits efetivamente alcançada na rede pode ser inferior ao valor definido, devido a estimativas de rede em tempo real, flutuações na largura de banda e limitações do back-end.

  • Valores fora dos limites — Se você fornecer um valor de taxa de bits fora do intervalo válido, o SDK poderá ignorar a solicitação ou retornar um erro.

Uso da API

Predefinições de taxa de bits de vídeo

A Video API oferece predefinições de taxa de bits de vídeo que simplificam a redução da qualidade do vídeo sem a necessidade de se preocupar com as configurações de codec e de sessão. Essas predefinições foram projetadas para casos de uso comuns, como videoconferências, e são adaptadas às resoluções 480p, 540p, 720p e 1080p.

As predefinições disponíveis são:

  • PADRÃO — A configuração padrão de taxa de bits do SDK que oferece uma experiência visual equilibrada para transmissões de vídeo.

  • BW_SAVER — Uma configuração de qualidade média para videoconferências que reduz a taxa de bits para economizar largura de banda.

  • EXTRA_BW_SAVER — A taxa de bits mais baixa para comunicação por vídeo essencial, oferecendo baixa qualidade de vídeo, mas uso mínimo de largura de banda.

Observe que os valores exatos da taxa de bits utilizados ao lidar com predefinições dependem da implementação específica e variam de acordo com o codec negociado e o modo de mídia (retransmitido ou roteado). Os SDKs do cliente da Video API incluem métodos para definir e obter a predefinição da taxa de bits.

Definição de valores de taxa de bits bruta

Caso as predefinições de taxa de bits não atendam às suas necessidades, você pode definir um valor personalizado de taxa de bits bruta. Isso permite que você defina limites específicos de taxa de bits dentro de um intervalo que vai de 5.000 bps a 10.000.000 bps. Observe que o valor se aplica apenas à taxa de bits do codificador; portanto, a sobrecarga da rede ainda será adicionada ao valor escolhido.

Os Client SDKs da Video API da Vonage incluem métodos para definir o valor da taxa de bits bruta e para recuperá-lo. Até que uma taxa de bits bruta seja definida, ou até que apenas predefinições estejam configuradas, o getter retorna 0 (exceto no SDK de JS, no qual o valor retornado é indefinido). Assim que uma taxa de bits bruta for definida, o getter da predefinição de taxa de bits retorna “custom”, indicando que um valor personalizado foi aplicado. No entanto, não use a predefinição “custom” no setter — basta definir o valor específico da taxa de bits a ser usado como valor máximo.

Interação entre taxa de bits e camada de codificação com VP8 e escalabilidade ativada

Alterar a taxa de bits máxima quando se utiliza o VP8 escalável gera ganhos adicionais de eficiência — o Client SDK ativa ou desativa dinamicamente as camadas de codificação com base na taxa de bits disponível, a fim de garantir que o fluxo de vídeo seja o mais eficiente possível. Esse processo adapta a resolução na qual o editor está publicando.

As notas a seguir se aplicam ao predefinição ao usar o VP8:

  • DEFAULT — Esta predefinição utiliza todas as camadas de codificação disponíveis. Para uma transmissão típica, isso inclui até três camadas (baixa, média e alta).

  • BW_SAVER — Esta predefinição utiliza apenas as duas primeiras camadas de codificação (baixa e média qualidade). Ela foi projetada para economizar largura de banda, tornando-a adequada para situações como videoconferências, nas quais a alta qualidade de vídeo pode não ser tão essencial.

  • EXTRA_BW_SAVER — Essa predefinição reduz ainda mais a taxa de bits, utilizando apenas a camada de codificação básica (a mais baixa). Esse é o modo mais eficiente em termos de largura de banda, oferecendo a qualidade mínima necessária para uma comunicação por vídeo significativa.

Ao definir um valor bruto de taxa de bits, se a taxa de bits fornecida for insuficiente para manter determinadas camadas de codificação, o SDK desativa automaticamente as camadas superiores. Por exemplo, se a taxa de bits for muito baixa para as camadas de qualidade média ou alta, essas camadas são descartadas, e apenas a camada básica é transmitida.

Se a nova taxa de bits fornecida for alta o suficiente para manter mais camadas de codificação, o SDK reativa as camadas de codificação superiores, restaurando progressivamente a qualidade do vídeo ao reincorporar as camadas média e alta.

Esse mecanismo garante que o fluxo de vídeo permaneça o mais eficiente possível, maximizando o uso da largura de banda disponível sem comprometer a experiência do usuário.

Exemplos

No início de uma sessão, um editor utiliza o DEFAULT predefinição, que oferece qualidade de vídeo total. Nesta fase específica da sessão, vamos supor que tenha sido negociado o codec VP8 não escalável. No entanto, após uma mudança na rede para uma conexão com limite de tráfego (por exemplo, celular), você pode reduzir a largura de banda de publicação usando o BW_SAVER predefinição. Ao usar uma predefinição para a taxa de bits máxima do editor, o Client SDK garante que o nível de qualidade permaneça o mesmo, independentemente de qualquer evento. Quando a rede voltar a uma conexão ilimitada, você poderá restaurar a configuração padrão definindo o DEFAULT predefinição.

Você também pode definir o valor da taxa de bits bruta para estabelecer um limite máximo de largura de banda.

Para obter detalhes sobre cada Client SDK, consulte o seguinte:

Melhores práticas

Para garantir o melhor desempenho e o uso ideal da largura de banda, siga estas práticas recomendadas:

  • Use configurações predefinidas de taxa de bits — Sempre que possível, use as configurações predefinidas de taxa de bits (DEFAULT, BW_SAVER, EXTRA_BW_SAVER) para gerenciar a qualidade do vídeo. Essas predefinições são adaptadas para cenários comuns, como videoconferências, garantindo que a qualidade do vídeo seja equilibrada com a eficiência da largura de banda. Mais importante ainda, elas abstraem os detalhes dos codecs e os modos de mídia.

  • Tenha cuidado com as configurações personalizadas de taxa de bits — Embora as configurações personalizadas de taxa de bits ofereçam mais controle, seu uso está vinculado a detalhes do codec que podem mudar durante a fase de negociação do WebRTC. Recomendamos usá-las com moderação e somente quando for necessário definir um limite rígido para a taxa de bits.

  • Não aplique taxas de bits personalizadas nem predefinições às transmissões com compartilhamento de tela — A codificação do fluxo de compartilhamento de tela difere da codificação do fluxo da câmera. Usar a API de taxa de bits máxima para limitar um fluxo de compartilhamento de tela pode prejudicar a qualidade sem oferecer nenhuma melhoria na largura de banda.