Por que a câmera pode não abrir

As transmissões públicas usadas pelo CamerasRJ chegam ao navegador por WebRTC. Algumas fontes publicam somente vídeo no formato H.265, também chamado de HEVC. Nesse caso, a página e o player podem carregar normalmente, mas a reprodução só começa se o navegador oferecer H.265 durante a negociação WebRTC.

Essa compatibilidade depende do navegador, da versão, do sistema operacional e do decodificador de vídeo disponível no equipamento. Recarregar a página não corrige uma incompatibilidade de codec.

Compatibilidade resumida

  • Chrome 136 ou mais recente no macOS e Windows: pode reproduzir H.265 por WebRTC quando o sistema e o hardware oferecem decodificação compatível.
  • Chrome ou Chromium no Linux com Intel ou AMD: pode funcionar quando a decodificação VA-API está ativa.
  • Chrome ou Chromium no Linux com NVIDIA: o suporte é experimental e pode exigir o procedimento abaixo.
  • Safari 18 ou mais recente: oferece H.265 por WebRTC em equipamentos compatíveis.
  • Firefox: pode reproduzir H.265 em alguns vídeos comuns, mas não implementa H.265 em WebRTC. As preferências de VA-API do Firefox não corrigem este player.

Mesmo dentro de um item compatível, uma câmera pode estar offline ou sem sinal. O procedimento desta página se aplica ao erro de formato de vídeo, não a indisponibilidade da fonte.

Linux, NVIDIA e Wayland

Este procedimento é experimental. Os parâmetros ignoram verificações de compatibilidade do Chromium e podem causar falhas gráficas, consumo maior de energia ou parar de funcionar após uma atualização. Use somente se você souber encerrar o navegador e remover os parâmetros.

Requisitos

  • Chrome ou Chromium 136 ou mais recente;
  • sessão Wayland;
  • GPU NVIDIA com decodificação HEVC;
  • driver proprietário NVIDIA atualizado;
  • implementação libva-nvidia-driver instalada.

Confirme a sessão gráfica:

echo "$XDG_SESSION_TYPE"

O resultado esperado é wayland. Em distribuições baseadas em Arch Linux, os pacotes usados no teste são instalados com:

sudo pacman -S libva-nvidia-driver libva-utils

Os nomes dos pacotes variam em outras distribuições. Consulte a documentação do pacote nvidia-vaapi-driver antes de continuar.

Teste temporário

Feche todas as janelas do Chrome ou Chromium para evitar que uma instância antiga reutilize parâmetros anteriores. Depois, execute:

LIBVA_DRIVER_NAME=nvidia NVD_BACKEND=direct \
chromium \
  --ozone-platform=wayland \
  --enable-features=VaapiVideoDecoder,VaapiIgnoreDriverChecks,VaapiOnNvidiaGPUs,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL \
  --ignore-gpu-blocklist

Se o executável tiver outro nome, substitua chromium por google-chrome-stable, google-chrome ou pelo comando fornecido pela sua distribuição.

Como verificar

  1. Abra chrome://version e confirme que a linha de comando contém os parâmetros usados no teste.
  2. Abra chrome://gpu e procure Video Decode: Hardware accelerated.
  3. Volte ao CamerasRJ e teste uma câmera.
  4. Se necessário, abra chrome://webrtc-internals antes do teste e procure o codec H265 na conexão da câmera.

O texto Hardware accelerated sozinho não garante que os quadros serão decodificados. O teste final é a imagem da câmera começar a se mover sem erro de codec.

Configuração persistente no Chromium do Arch Linux

Depois de confirmar que o teste temporário funciona, adicione estas linhas a ~/.config/chromium-flags.conf:

--ozone-platform=wayland
--enable-features=VaapiVideoDecoder,VaapiIgnoreDriverChecks,VaapiOnNvidiaGPUs,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL
--ignore-gpu-blocklist

As variáveis LIBVA_DRIVER_NAME=nvidia e NVD_BACKEND=direct também precisam estar disponíveis no ambiente da sessão gráfica. Outros pacotes derivados do Chromium usam nomes e locais diferentes para o arquivo de parâmetros; confira a documentação da sua distribuição e do navegador.

Como desfazer

  1. Feche todas as janelas do navegador.
  2. Remova as linhas adicionadas ao arquivo de parâmetros.
  3. Remova as duas variáveis do ambiente da sessão, caso tenham sido configuradas permanentemente.
  4. Inicie o navegador normalmente.

Se houver tela cinza, travamento, artefatos ou falha no processo de GPU, desfaça a configuração. Não há prejuízo ao CamerasRJ em usar o site sem esses parâmetros; apenas as fontes H.265 continuarão indisponíveis nesse navegador.

Por que o CamerasRJ não converte o vídeo

O CamerasRJ organiza e incorpora o player da fonte pública, mas não recebe nem transcodifica o fluxo de mídia. Os pacotes de vídeo seguem diretamente entre o navegador e o servidor externo. Converter todas as câmeras para outro codec exigiria uma infraestrutura de transmissão que o projeto não opera.

A solução mais abrangente seria a fonte publicar também VP8, VP9, H.264 ou AV1. Esses formatos alcançam mais navegadores sem exigir parâmetros experimentais.

Referências técnicas

Os parâmetros e o suporte dos navegadores podem mudar. Esta página registra uma alternativa de diagnóstico, não uma garantia de funcionamento.