ToolActToolAct

Teste de Câmera

Teste sua câmera com visualização em tempo real, captura de foto e informações do dispositivo

Não Iniciado

Visualização ao Vivo

Inicie o teste para ver a visualização da câmera

O que é Teste de Câmera?

Um teste de câmera verifica se o navegador consegue acessar uma webcam, câmera USB externa ou câmera integrada do notebook e mostrar uma prévia ao vivo. Ele é útil antes de videoconferências, aulas online, entrevistas, transmissões ao vivo, gravações ou qualquer situação em que câmera errada, permissão bloqueada, tela preta, baixa resolução ou iluminação ruim possam atrapalhar. A ferramenta usa a permissão de câmera do navegador, mostra o fluxo real que a página consegue abrir e permite capturar uma imagem local para conferir enquadramento e nitidez. Ela ajuda a verificar dispositivo, resolução, taxa de quadros, proporção e qualidade básica sem enviar vídeo. Não corrige falhas de driver ou hardware; se não houver imagem, confira privacidade do sistema, outros apps, cabos e drivers.

Como Usar

Como usar

  1. Clique em 'Iniciar Teste' e permita que o navegador acesse a câmera
  2. Observe a pré-visualização ao vivo da câmera
  3. Clique em 'Capturar' para tirar uma foto
  4. Você pode alternar entre câmeras ou testar diferentes resoluções

Dicas

  • Se a pré-visualização não aparecer, verifique se o navegador concedeu permissão para acessar a câmera
  • Se a câmera está sendo usada por outro aplicativo
  • Se o dispositivo de câmera correto está selecionado
  • Se a câmera está desativada nas configurações do sistema

Casos de uso

Verificar o acesso à câmera do navegador antes de uma chamadaInicie a câmera para confirmar o estado da permissão, o deviceId selecionado, a visualização ao vivo, a resolução real, a taxa de quadros, a proporção e o modo frontal ou traseiro. Detectar um fluxo travado, lente errada ou fallback de 640x480 antes de uma entrevista, aula, transmissão ou sessão de suporte é a maneira mais econômica de evitar um momento constrangedor de solução de problemas na frente de outros participantes.
Verificar quais resoluções a câmera realmente suportaExecute as verificações integradas para QVGA, VGA, 720p, 1080p, 1440p e 4K. A página chama getUserMedia com restrições explícitas para cada resolução e marca se o navegador e o sensor a aceitam, expondo casos onde uma ficha técnica afirma 4K mas o descritor UVC na verdade limita a 1080p.
Capturar snapshots locais como evidênciaTire snapshots PNG do vídeo ao vivo com a API Canvas drawImage, baixe quadros úteis e exclua os indesejados. Isso é útil ao documentar erros de foco, banding de IR-cut, distorção de lente, problemas de enquadramento ou uma falha de hardware que você precisa enviar para um fornecedor, formulário de RMA do fabricante ou disputa em anúncio online.
Alternar entre câmeras frontal, traseira e externasEscolha um deviceId diferente no seletor de câmera quando um notebook tem webcam integrada e uma câmera USB externa ou virtual, para que o software de chamada possa apontar para a lente certa sem configurações do sistema operacional. Câmeras virtuais OBS, placas de captura Elgato e Continuity Camera no macOS aparecem como dispositivos separados, e a página exibe seus rótulos para que a errada seja fácil de identificar antes de ir ao ar.
Diagnosticar uma visualização preta ou travadaQuando a visualização está escura ou congelada, a página exibe o estado de permissão do getUserMedia, o rótulo do dispositivo e a resolução aplicada. Verifique as configurações de privacidade do sistema operacional, aplicativos concorrentes mantendo a câmera (Zoom, OBS, FaceTime) e uma recente mudança de USB ou driver antes de assumir que o sensor em si falhou, pois a maioria das visualizações pretas é causada por outro processo mantendo o dispositivo em exclusividade.

Princípio técnico

A ferramenta de teste de câmera é construída sobre a especificação W3C Media Capture and Streams, usando navigator.mediaDevices.getUserMedia(constraints) para acessar a câmera. O parâmetro constraints é um objeto semelhante a JSON que especifica valores ideal, exact, min e max para resolução (width, height), taxa de quadros, modo de orientação e ID do dispositivo. O resolvedor de restrições do navegador negocia esses valores com os descritores UVC (USB Video Class) reportados pelo firmware da câmera; quando uma restrição exata não pode ser atendida, a chamada rejeita com OverconstrainedError — esse é o mecanismo por trás do verificador de suporte a resolução, que sonda cada resolução com restrições { exact } e marca as falhas. Uma vez que o fluxo é obtido, a faixa de vídeo expõe getSettings() (os valores reais aplicados após a negociação), getCapabilities() (as faixas completas suportadas pelo hardware) e getConstraints() (o que foi originalmente solicitado). A resolução aplicada, taxa de quadros, proporção e modo de orientação são lidos de getSettings() e exibidos. A visualização ao vivo renderiza ao definir srcObject do elemento de vídeo como o MediaStream; o pipeline de mídia do navegador lida com decodificação, conversão de espaço de cores e renderização acelerada por GPU sem manipulação de pixels por JavaScript. Para capturas estáticas, CanvasRenderingContext2D.drawImage(videoElement, 0, 0) captura o quadro de vídeo decodificado atual em um canvas oculto, e toDataURL('image/png') o serializa como uma data URL PNG. enumerateDevices() lista todos os dispositivos de entrada de mídia disponíveis — observe que os rótulos dos dispositivos são strings vazias até que o usuário tenha concedido permissão de câmera pelo menos uma vez, uma medida de prevenção contra fingerprinting. Chamar track.stop() libera o hardware da câmera e desliga a luz indicadora; definir videoElement.srcObject = null desanexa o pipeline de renderização. getUserMedia requer um contexto seguro (HTTPS ou localhost) e aciona um prompt de permissão por origem; a luz indicadora da câmera é aplicada no nível do sistema operacional e não pode ser contornada pela página.

  • Negociação de restrições: O resolvedor do navegador corresponde valores ideal/exact/min/max com os descritores de hardware UVC — restrições { exact } falham com OverconstrainedError quando o sensor não consegue entregar a resolução solicitada, que é como a grade de suporte a resoluções é preenchida.
  • Introspecção da faixa: getSettings() retorna a resolução, taxa de quadros, proporção e facingMode realmente aplicados após a negociação — esses valores podem diferir dos ideais solicitados quando a largura de banda USB ou as capacidades do sensor são limitadas.
  • Privacidade do enumerateDevices: Rótulos dos dispositivos são strings vazias até que a permissão do getUserMedia seja concedida pelo menos uma vez por origem — uma medida anti-fingerprinting imposta pela especificação que também significa que o seletor de dispositivos mostra nomes genéricos na primeira visita.
  • Captura estática via Canvas: drawImage() copia o quadro de vídeo decodificado do compositor da GPU para um buffer de pixels 2D sem re-encodar; toDataURL('image/png') então o serializa como PNG sem perda — o quadro nunca sai da memória do navegador.
  • Modo de orientação: O VideoFacingModeEnum é lido de track.getSettings().facingMode ('user' para frontal, 'environment' para traseira, 'left'/'right' para externa) — nem todas as câmeras USB de desktop reportam orientação, então o campo pode mostrar 'unknown'.
  • Ciclo de vida do fluxo: track.stop() libera o hardware da câmera e desliga a luz indicadora no nível do SO; srcObject = null desanexa o pipeline de renderização — ambos são necessários para liberar completamente o dispositivo para que outros aplicativos possam adquiri-lo.
  • Modelo de segurança: getUserMedia requer um contexto seguro (HTTPS ou localhost), aciona um diálogo de permissão por origem, e o indicador da câmera é aplicado no nível do SO/kernel — a página não pode contornar nenhuma dessas três barreiras.

Exemplos

Fluxo básico de teste

1. Clique em Iniciar Teste e conceda permissão à câmera
2. Observe a pré-visualização ao vivo quanto à nitidez, foco e taxa de quadros
3. Pressione o botão Foto para capturar um quadro de teste
4. Revise as informações do dispositivo (resolução, modo de orientação, taxa de quadros)
Uso: execute antes de qualquer reunião por vídeo, entrevista ou transmissão ao vivo

Teste de resolução

1. Expanda o painel Resoluções Suportadas
2. Clique em Testar ao lado de cada resolução (ex: 1080p, 720p, 480p)
3. Verifique quais o seu hardware realmente suporta
4. Escolha a maior resolução estável para o seu caso de uso

Alternância entre múltiplas câmeras

1. Abra o menu suspenso de dispositivos no topo
2. Selecione uma câmera diferente (frontal/traseira, webcam externa)
3. Compare qualidade de vídeo, balanço de cores e desempenho em pouca luz
4. Confirme se o dispositivo correto está selecionado antes de entrar na chamada

Perguntas frequentes

O que o teste de câmera verifica?

Se o navegador consegue acessar a câmera, qual a resolução oferecida, a pré-visualização ao vivo e a captura básica (foto instantânea). Útil antes de uma videochamada para confirmar que a câmera certa está selecionada e que a imagem está na orientação correta e bem exposta.

Por que minha câmera não aparece?

Causas comuns: o navegador precisa de permissão de câmera (verifique o ícone de permissão na barra de endereço); outro aplicativo está usando a câmera (feche Zoom, Teams, OBS); a configuração de privacidade do sistema operacional bloqueia o acesso do navegador (verifique Privacidade do Windows / permissões de Câmera no macOS); um interruptor físico está desativando a câmera.

Dá para alternar entre câmera frontal e traseira?

Sim, se o aparelho tiver as duas. A página enumera as câmeras disponíveis via navigator.mediaDevices.enumerateDevices(); escolha a desejada no menu suspenso. No celular, 'user' é a frontal e 'environment' é a traseira.

Quais resoluções são suportadas?

O que a câmera e o navegador disponibilizarem. Faixas comuns: 320×240, 640×480, 1280×720, 1920×1080. Resoluções maiores exigem mais largura de banda (para uso ao vivo) e CPU. A página escolhe a maior por padrão; selecione uma menor se sua rede estiver lenta.

Meu vídeo da câmera é enviado para algum servidor?

Não. O fluxo de vídeo é renderizado localmente; os quadros capturados ficam no navegador. Atenção: a permissão de câmera é concedida no nível da origem, então qualquer aba aberta deste site pode acessá-la até você revogar. Feche a aba quando terminar.

Por que o vídeo aparece espelhado?

Os navegadores espelham a câmera frontal na pré-visualização ao vivo para se parecer com o efeito 'espelho' que as pessoas esperam. As fotos capturadas podem ou não ficar espelhadas — verifique as duas visualizações. CSS transform: scaleX(-1) liga ou desliga o espelhamento.

E se a permissão de câmera estiver permanentemente negada?

No Chrome, clique no ícone de câmera na barra de endereço → 'Sempre permitir'. Se necessário, redefina em chrome://settings/content/camera. Outros navegadores têm configurações de permissão semelhantes. Depois de conceder, recarregue a página.

Ferramentas relacionadas