Compatibilidade e solução de problemas das câmeras
Entenda por que algumas câmeras não abrem e como testar a reprodução H.265 no Chrome ou Chromium com Linux, NVIDIA e Wayland.
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-driverinstalada.
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
- Abra
chrome://versione confirme que a linha de comando contém os parâmetros usados no teste. - Abra
chrome://gpue procureVideo Decode: Hardware accelerated. - Volte ao CamerasRJ e teste uma câmera.
- Se necessário, abra
chrome://webrtc-internalsantes do teste e procure o codecH265na 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
- Feche todas as janelas do navegador.
- Remova as linhas adicionadas ao arquivo de parâmetros.
- Remova as duas variáveis do ambiente da sessão, caso tenham sido configuradas permanentemente.
- 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
- Documentação oficial do Chromium sobre VA-API
- Status do H.265 em WebRTC no Chrome
- Driver VA-API comunitário para NVIDIA
- Posição pública da Mozilla sobre H.265 em WebRTC
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.