Visão geral do vídeo em 1080p
Há uma série de aspectos a serem considerados ao usar vídeo com resolução de 1080p em uma sessão da Video API da Vonage.
A publicação de vídeos com resolução de 1080p (FHD) não garante, por si só, uma melhor qualidade de vídeo. É necessário contar com uma câmera adequada, potência suficiente do dispositivo e largura de banda de rede suficiente para suportar vídeos em 1080p.
Para proporcionar a melhor experiência ao usuário, seu aplicativo deve incluir opções para lidar com essas situações:
- Um navegador ou dispositivo não pode suportar 1080p inicialmente.
- Quando as condições se deterioram e — consequentemente — é necessário reduzir a resolução de 1080p.
- Quando as condições melhorarem, a resolução poderá ser aumentada de volta para 1080p.
Isso pode envolver apresentar informações ao usuário ou adicionar pistas visuais.
A publicação em 1080p não é a opção ideal na maioria das situações
Como a publicação em 1080p exige muito da CPU e da largura de banda, na maioria dos casos será vantajoso optar por resoluções mais baixas, como 720p (HD), VGA ou até mesmo QVGA.
Isso é especialmente verdadeiro quando os clientes pretendem assinar e exibir vários fluxos publicados. Se nenhum assinante reproduzir o fluxo na resolução de 1080p, então é um desperdício de recursos para o editor configurar a resolução de 1080p.
Por exemplo, applications que possuem mais de dois fluxos simultâneos — como videoconferências — podem não estar otimizados para que os clientes transmitam em 1080p. Se os clientes receberem vários fluxos, será mais vantajoso transmitir nas resoluções que serão exibidas com mais frequência.
Se o caso de uso for um-para-um (dois clientes transmitindo entre si), considere usar sessões retransmitidas para aproveitar as conexões diretas entre os clientes. Se o caso de uso for um-para-um e Se os seus dispositivos de destino forem compatíveis com codificadores H.264 com suporte de hardware, considere usar o H.264. (Consulte Codecs de vídeo.)
Fatores que determinam a compatibilidade com 1080p
Ativar a resolução de 1080p não significa necessariamente alta qualidade, a menos que esses fatores sejam atendidos. Para ter suporte a 1080p, é necessário o seguinte:
- Resolução da câmera — A câmera de transmissão deve ser compatível com 1080p (1920x1080). Se a câmera não for compatível com 1080p, a resolução da transmissão ficará limitada à resolução da câmera. Embora atualmente o 1080p seja geralmente compatível com câmeras web adquiridas para bate-papo por vídeo, muitas câmeras padrão de dispositivos (como as dos Macs) não suportam 1080p. Dispositivos mais antigos geralmente não suportam 1080p.
- Recursos de computação do dispositivo — Para a transmissão em 1080p, o dispositivo deve ter poder computacional suficiente para suportar a codificação em tempo real de 1080p e sustentar a carga da CPU enquanto a transmissão estiver no ar. O codificador para VP8 funcionará normalmente em software e exigirá uma carga sustentada muito alta na CPU para continuar a publicar transmissões de vídeo ao vivo em 1080p. Se for necessária uma transmissão simultânea, isso exigirá CPU adicional para codificar múltiplas qualidades de transmissão que possam ser distribuídas entre os assinantes. É provável que o dispositivo também esteja recebendo e processando fluxos de entrada, e a carga de trabalho geral da CPU será alta se a resolução 1080p estiver ativada. Os dispositivos móveis mais recentes de hoje podem ter CPU suficiente para suportar 1080p, mas o processamento pode ter sua qualidade rapidamente limitada assim que a bateria começar a se esgotar rapidamente. Laptops e computadores de mesa são os mais adequados para suportar a publicação em 1080p, mas provavelmente precisarão ser conectados a uma fonte de alimentação diferente da bateria para sessões mais longas.
- Largura de banda da rede — Para publicar um vídeo em 1080p, o cliente deve dispor de uma conexão de rede estável, capaz de suportar altas taxas de transmissão. Para realizar uma publicação WebRTC em 1080p a 30 quadros por segundo, a largura de banda necessária é de aproximadamente 3 a 4,5 Mbps de upload sustentado. Para vídeo escalável, isso exigirá larguras de banda ainda maiores — de até 6 Mbps — para que os provedores possam oferecer até três níveis de qualidade codificados e transmitidos a partir do dispositivo. Os clientes assinantes devem ser capazes de suportar até 4,5 Mbps por transmissão assinada em 1080p.
- Versões compatíveis — A resolução 1080p é compatível com as versões 2.23.0 dos SDKs do cliente da Video API. Além disso, em aplicativos da web, a resolução 1080p é compatível com o Chrome e o Firefox (no entanto, atualmente há um bug no Firefox no macOS).
Os codificadores de vídeo WebRTC (como o codificador do Chrome) avaliam ativamente a CPU e a largura de banda para verificar se a resolução adequada pode ser alcançada e se ajustam dinamicamente com base nas capacidades do dispositivo. Isso significa que, mesmo que a resolução desejada de 1080p esteja configurada para publicação, o codificador terá que se ajustar e fazer o melhor possível com base nas capacidades do dispositivo, na CPU limitada ou nas condições de largura de banda reduzida.
O comportamento do codificador pode variar dependendo da existência ou não de limitações de largura de banda ou de CPU.
O codificador pode reduzir a taxa de quadros para compensar a queda no desempenho, o que fará com que o vídeo pareça travar, já que o codificador produz menos quadros de vídeo para lidar com essas situações. (Por exemplo, se o codificador reduzir a taxa de quadros para 5 a 6 quadros por segundo devido à falta de recursos, o vídeo pode ficar com qualidade insatisfatória.)
Dependendo da dica de conteúdo fornecida para o vídeo, o codificador será configurado para priorizar a dinâmica ou a resolução. Para obter detalhes sobre dicas de conteúdo, consulte o seguinte material:
Além disso, um cliente assinante pode definir a resolução preferida do vídeo reproduzido (em uma sessão retransmitida) para uma resolução mais baixa:
- Web — Subscriber.setPreferredResolution()
- Android — SubscriberKit.setPreferredResolution()
- iOS — SubscriberKit.preferredResolution
- Windows — ResoluçãoPreferidaDoAssinante
- Linux —
otc_subscriber_set_preferred_resolution()
Vídeo escalável para sessões roteadas
A Video API da Vonage oferece suporte a vídeo escalável com o Codec VP8. Em geral, é preferível habilitar o vídeo escalável em 1080p para sessões com um grande número de assinantes, mesmo que isso exija mais recursos de CPU e largura de banda.
A ativação do vídeo escalável evitará prejudicar a Qualidade da Experiência (QoE) de todos os assinantes caso um ou mais deles não possam receber o nível mais alto de qualidade.
As camadas adicionais de transmissão simultânea codificadas proporcionarão ao Media Router da Video API da Vonage a opção de transmitir fluxos de vídeo de qualidade inferior para assinantes que estejam tendo dificuldade em suportar 1080p, ao mesmo tempo em que disponibilizam a camada de qualidade mais alta em 1080p para os assinantes que possam suportar essa resolução.
No caso do vídeo escalável, as transmissões em 1080p exigem maior largura de banda do provedor (recomenda-se até 6 Mbps) para suportar as múltiplas camadas de qualidade de resolução codificadas e transmitidas a partir do dispositivo.
Verificar se há camadas de transmissão simultânea de vídeo escalável disponíveis
Vídeo escalável O suporte a camadas de transmissão simultânea é determinado pelo dispositivo ou navegador do cliente. O vídeo escalável está disponível apenas em transmissões publicadas por clientes que utilizam:
- O SDK do iOS (em determinados dispositivos)
- O SDK do Android (em determinados dispositivos)
- O SDK do Windows
- O SDK do Linux
- O SDK do Linux
- O SDK do macOS
- OpenTok.js no Chrome, Safari, Samsung Internet, WebView para Android e WebView para iOS (com suporte em versão beta nas versões para desktop do Opera e nas versões do Edge baseadas no Chromium)
- O SDK do React Native (em determinados dispositivos)
O vídeo escalável é compatível com fluxos VP8, e há suporte em versão beta para fluxos VP9 (consulte esta documentação). Não é compatível com H.264.
É importante observar que há uma diferença entre as camadas de transmissão simultânea para 1080p (FHD) e 720p (HD), que não se sobrepõem, e essa diferença deve ser levada em consideração na seleção da resolução para garantir uma boa experiência do usuário.
Quando a resolução de 720p for selecionada, três camadas serão codificadas tendo 720p como resolução máxima:
- 1280x720
- 640x360
- 320x180
Quando a resolução de 1080p for selecionada, três camadas serão codificadas tendo 1080p como a resolução mais alta:
- 1920x1080
- 960x540
- 480x270
Observe que, se o dispositivo estiver configurado para a resolução de 1080p, Isso produzirá uma camada de vídeo escalável em 540p. A camada de 540p tem dimensões menores do que a camada superior de 720p. Applications should take into account this compromise relationship if the 1080p layer cannot reach the terminals.