Seu navegador não suporta teste de câmera. Por favor use o Chrome, Firefox ou Edge mais recente.
Teste de Câmera
Teste sua câmera com visualização em tempo real, captura de foto e informações do dispositivo
Visualização ao Vivo
Info do Dispositivo
Resoluções Suportadas
Fotos Capturadas
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
- Clique em 'Iniciar Teste' e permita que o navegador acesse a câmera
- Observe a pré-visualização ao vivo da câmera
- Clique em 'Capturar' para tirar uma foto
- 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
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 vivoTeste 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 usoAlternâ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 chamadaPerguntas 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
Teste de Comando
Ferramenta de teste de comando online gratuita para verificar botões, sticks, gatilhos, direcional e vibração. Valores de sticks e gatilhos em tempo real, deteção de drift, suporte a histórico de eventos, proteção de privacidade no navegador.
Decibelímetro
Decibelímetro online gratuito, meça o ruído ambiente em tempo real com indicador visual, classificação de níveis e estatísticas
Teste de Mouse
Ferramenta de teste de mouse online gratuita para verificar botões, rolagem e clique duplo. Posição do mouse em tempo real e contador de cliques, suporte a histórico de eventos, proteção de privacidade no navegador.
Teste de Teclado
Ferramenta de teste de teclado online gratuita com detecção de teclas em tempo real e exibição de código de tecla. Visualização de teclado virtual, suporte a histórico de teclas, proteção de privacidade baseada em navegador.
Teste de Microfone
Ferramenta de teste de microfone online gratuita com forma de onda de volume em tempo real e análise de espectro. Suporte a reprodução de gravação, detecção de informações do dispositivo, proteção de privacidade baseada em navegador.
Teste de Taxa de Atualização
Ferramenta de teste de taxa de atualização de tela online gratuita. Detecte a taxa de atualização real do monitor através de taxa de quadros de animação, suporta 60Hz, 120Hz, 144Hz e superior.
