Webcam Test

Test your camera, capture photos, and download them — all in your browser

Last updated: April 2026

Idle

Camera Info

Start the camera to see device details.

Captured Photos (0)

No captures yet. Start the camera and press “Take Picture” to save a snapshot.

Instructions

  • Click “Start Webcam Test” and allow camera permission in the browser prompt
  • Watch the live preview; switch cameras, change resolution, or toggle mirror as needed
  • Press “Take Picture” to capture the current frame at the camera's native resolution
  • Download each capture as a PNG, or use “Download all” to save every shot in one go
  • The camera stream and all captures stay in this browser tab — nothing is uploaded anywhere

Webcam Tester - Test Your Camera Online Free

Test your webcam instantly with this free online tester. Confirm your camera is working, capture still photos, and download them to your device — all directly in the browser. No download, no account, and no uploading of video or images to any server. Everything happens locally on your machine using the MediaDevices.getUserMedia API.


Get Easily Started With Your Test

  1. Click "Start Webcam Test" to ask the browser for camera permission.
  2. Allow camera access in the browser prompt that appears at the top of the window.
  3. See yourself (or whatever the webcam is pointed at) in the live preview. If you see a picture, your camera is working. Use "Take Picture" to capture a still, then download it to your device.

Why Test Your Webcam Online

A webcam that "worked last week" can fail quietly. A driver update can deselect the default camera, an operating-system privacy setting can block access for the browser you just updated, a USB cable can develop an intermittent fault, or a privacy shutter can be flipped without you realising. Before a job interview, a video call, or a live stream is a bad time to find out.

This tester uses the standard MediaDevices.getUserMedia API to request access to your camera exactly the same way any video-calling app does — so if the camera works here, it will work in Zoom, Google Meet, Microsoft Teams, Discord, and any other web-based video platform. If the camera does not work here, the problem is upstream of your video-calling software and you can fix it in one place rather than troubleshooting each app individually.

Common reasons to run a webcam test:

  • Pre-meeting checks — verify the camera, resolution, and lighting before a job interview or important call
  • New webcam setup — confirm a just-installed camera works before configuring it in calling software
  • Post-update troubleshooting — an OS or browser update can silently revoke camera permission
  • Driver verification — test that a freshly installed camera driver is exposing the device correctly
  • Privacy shutter check — confirm the physical privacy shutter is not closed
  • Resolution check — confirm the camera actually delivers the resolution it is advertised at, or pick the best resolution your computer's USB bandwidth can sustain

How to Test Your Webcam in 3 Simple Steps

Step 1: Click "Start Webcam Test"

The button triggers navigator.mediaDevices.getUserMedia({ video: true }), which asks the browser to request the camera. If this page is served over HTTPS (it is), the browser will show a permission dialog the first time. Choose "Allow" to grant access.

If the browser does not show a prompt, permission was likely denied previously. Click the padlock icon in the address bar, find "Camera," change it to "Allow" (or "Ask"), and reload the page.

Step 2: Check the preview

The live preview should appear within a second or two of granting permission. Useful things to verify:

  • You see a picture — the most basic confirmation that camera + driver + browser are all connected correctly
  • The picture is not flipped or inverted — use the Mirror toggle if you want a selfie-style flipped preview (most calling apps mirror your self-view but not the one sent to the other party)
  • Resolution and frame rate match expectations — the Camera Info panel shows actual negotiated width, height, and FPS from MediaTrackSettings
  • Switch camera devices — if your computer has multiple cameras (built-in + USB, or front + rear on a tablet), the device dropdown lists them so you can confirm each one works

Step 3: Take a picture and download it

Click "Take Picture" to capture the current frame. The image is drawn from the live video onto a hidden <canvas> at the camera's native resolution, then encoded as a PNG blob. A thumbnail appears below the video. Each capture has its own Download button that saves the full-resolution PNG to your computer's default Downloads folder.

Captured images are never sent over the network. The blob lives in your browser tab's memory until you download it or close the tab — click "Clear captures" or navigate away and they are gone.


Camera Compatibility

Built-in Laptop Cameras

Every modern laptop with a built-in camera — MacBook, MacBook Pro, MacBook Air, Dell XPS, HP Spectre, Lenovo ThinkPad, ASUS ZenBook, Microsoft Surface, Chromebooks — exposes that camera through the operating system's standard video-input interface. The browser's getUserMedia call picks up the camera automatically with no extra configuration.

Typical built-in resolutions are 720p on older laptops (pre-2020) and 1080p on current models. Apple's newer MacBooks ship 1080p FaceTime HD cameras; most Windows laptops match that. Microsoft Surface Pro models include 1080p front and rear cameras.

USB Webcams

Standalone USB cameras — Logitech C920/C922/BRIO, Razer Kiyo, Elgato Facecam, Insta360 Link, Anker PowerConf — also work through the standard UVC (USB Video Class) driver that Windows, macOS, and Linux all include. No vendor software is required for basic operation, though vendor utilities can add HDR, background blur, and advanced controls.

For 1080p at 60 FPS or 4K at 30 FPS, USB 3.0 or USB-C is recommended to provide enough bandwidth. USB 2.0 can sustain 1080p at 30 FPS comfortably but may frame-drop at higher settings.

Integrated vs External Cameras — Switching Between Them

If your computer has more than one camera, the Camera dropdown lists all of them. The browser gives each camera a label — usually the manufacturer and model, but sometimes generic strings like "camera-0" on Linux. Switching cameras tears down the existing stream and requests a new one, so there is a brief black frame while the new camera initialises.

On Apple Silicon Macs, the Continuity Camera feature can expose a nearby iPhone as a wireless webcam. It appears in the device list exactly like a wired camera and works the same way in this tester.

Mobile Device Cameras

iOS Safari and Chrome for iOS both expose the front and rear cameras through getUserMedia. On Android, Chrome, Firefox, Samsung Internet, and Edge all support camera access. The device dropdown will show both "user" (front-facing) and "environment" (rear-facing) cameras on phones and tablets.

Mobile browsers apply the system privacy indicator — a small dot in the status bar — whenever a site is using the camera, matching the native camera indicator behaviour. This is visible on iOS 14+ and most Android 12+ devices.


What the Webcam Tester Checks

Basic Capture

The primary check is simply: does the camera produce a picture? If the live preview shows video, the OS, driver, browser, and camera are all connected and communicating. This rules out the overwhelming majority of "my camera doesn't work" complaints in one click.

Native Resolution and Frame Rate

The Camera Info panel reads MediaStreamTrack.getSettings() to report the exact width, height, frame rate, and aspect ratio the browser negotiated with the camera. This is useful because the advertised resolution on a camera's box is not always what you get in practice:

  • Cheap USB cameras often claim "1080p" but deliver via software upscaling from a lower native sensor resolution
  • Bandwidth-limited USB 2.0 ports can force a camera down to 720p at 30 FPS even if it is capable of more
  • Virtual cameras (OBS Virtual Camera, Snap Camera, NVIDIA Broadcast) inherit the resolution of the source, which may be different from what you configure

Device Selection

For computers with multiple cameras, verifying that each one is accessible is important. The OS may default to a different camera than you expect. Cycling through each device in the dropdown confirms that none has silently failed — a common issue when a USB webcam gets unplugged and the browser falls back to the built-in without notifying you.

Permission State

If the camera fails to start, the error message reports which underlying failure occurred:

  • NotAllowedError — permission was denied (by the user or by a system-level policy)
  • NotFoundError — no camera was detected at all
  • NotReadableError — another application has an exclusive hold on the camera
  • OverconstrainedError — the requested resolution is not supported
  • SecurityError — the page is being served over an insecure connection

Each error maps to a different fix, and the error panel explains which one applies.

Capture and Download

The capture function draws the current frame from <video> onto a <canvas> at the camera's native resolution, then uses canvas.toBlob(..., 'image/png') to encode a PNG file. That blob becomes a downloadable image via an object URL and a plain <a download> click. The file saves directly to your default browser download folder — typically ~/Downloads on macOS and Linux, C:\Users\<you>\Downloads on Windows.


Troubleshooting Common Webcam Problems

"No camera detected" or NotFoundError

Systematic checks:

  1. Check the physical connection — unplug and reconnect the USB cable; try a different USB port (preferably USB 3.0/3.1 for high-resolution cameras)
  2. Avoid USB hubs — especially unpowered hubs; most cameras need stable power and some hubs drop packets
  3. Open System camera app — Windows "Camera" app, macOS Photo Booth. If the camera appears there, the hardware is working and the issue is browser-level. If not, the OS is not seeing the camera at all
  4. Check Device Manager (Windows) / System Information (macOS) — confirm the camera appears as a video input device
  5. Restart the browser — occasionally the browser process caches a dead stream reference
  6. Try another browser — if Chrome fails but Firefox works (or vice versa), the issue is browser-specific and a browser reset or re-install may fix it

"Camera access denied" or NotAllowedError

The most common cause is a lingering "Block" decision from a previous visit. To fix in the major browsers:

  • Chrome / Edge — click the padlock icon in the address bar > "Site settings" > change Camera to "Allow" > reload
  • Firefox — click the shield/permissions icon in the address bar > clear the Camera exception > reload and respond to the new prompt
  • Safari — Safari menu > Settings > Websites > Camera > change this site to "Allow"

On macOS and iOS there is also an OS-level permission layer above the browser's own:

  • macOS — System Settings > Privacy & Security > Camera > ensure your browser is toggled on
  • iOS — Settings > Safari > Camera (or Settings > Chrome > Camera); ensure "Allow" is selected

On Windows, Settings > Privacy & Security > Camera controls whether apps in general (and which apps specifically) are allowed to use the camera.

NotReadableError — camera in use

Exactly one application can hold the camera at any time. If Zoom, Teams, Google Meet, OBS Studio, Photo Booth, Discord's camera stream, or the Windows Camera app is already running, the browser cannot open the camera. Quit those apps (fully — closing the window is sometimes not enough) and retry.

On Windows, a background process like the Windows Hello facial-recognition login or a vendor utility (Dell Webcam Central, HP Camera Control) can also hold the camera exclusively. Task Manager > Details tab and stopping the offending process (or simply rebooting) usually resolves it.

Picture is black or the privacy shutter is engaged

Modern laptops and standalone webcams often have a physical privacy shutter — a sliding cover over the lens. If the preview is entirely black but getUserMedia succeeds (no error, and the "Clicks Detected" / info panel shows a live resolution), the shutter is closed. Slide it open and the picture will appear.

If there is no shutter and the picture is still black, check whether the camera indicator LED is lit. If it is, the camera is active but something is blocking the light path — a sticker, a piece of tape, a finger. If the LED is not lit but the browser believes the stream is active, the camera firmware may be in a stuck state; unplugging the USB cable and reconnecting (or rebooting for a built-in camera) clears it.

Resolution is lower than expected

OverconstrainedError at 1080p typically means the camera advertises 1080p but cannot actually deliver it through the current bus. Drop to 720p and check whether that works. If 720p is fine and 1080p is not, the physical USB connection is the bottleneck — move the camera to a USB 3.0 port (usually marked in blue) or a direct motherboard port.

Another cause: some cameras have a hardware "default" resolution of 720p that you must manually step up from through vendor software. The { ideal: { width: 1920, height: 1080 } } hint in getUserMedia does not guarantee 1080p — it just asks the browser to try. If the driver refuses, the browser falls back to the closest available resolution.

Frame rate is stuttering or dropping

Check:

  • CPU load — a heavily loaded CPU cannot encode frames fast enough; close other applications
  • Browser tab count — many tabs can starve the camera thread; test in a fresh browser window with only this tab open
  • USB bandwidth — running multiple high-bandwidth USB devices on the same controller (external SSD, capture card, USB audio interface, webcam) can saturate the bus
  • Background blur / effects — if Windows Studio Effects, NVIDIA Broadcast, or a similar background-effect filter is active, the CPU/GPU load is significantly higher and frame rates may drop

Camera audio (microphone) is not recorded here

This tester only uses the camera's video feed. Most webcams also include a microphone, but microphone access requires a separate audio: true flag in getUserMedia and is not part of this tester's feature set. To test a microphone, use a dedicated microphone tester or the built-in OS recorder (Voice Memos, Sound Recorder).


Privacy and Security

This tester runs entirely in your browser. No frames are sent to any server. No captured images are uploaded anywhere. The page never includes a network request that carries camera data. You can verify this yourself by opening your browser's developer tools (F12 > Network tab) while using the tester — during an active camera session and while capturing images, there are zero outbound requests carrying video or image payloads.

Every image you capture exists as a Blob inside this browser tab. Downloading it saves a copy to your local filesystem. Closing the tab or navigating away releases the Blob and the memory is reclaimed by the browser. There is no server-side component that ever sees your camera feed.

The camera indicator LED on your hardware is controlled by the operating system, not by the browser or this page. When the LED is lit, the OS is confirming that a camera stream is active at the hardware level. Turning the camera off via the "Stop Camera" button ends the stream immediately, and the LED extinguishes within a second — if it stays lit after clicking Stop, reload the page to force all streams to release.


Frequently Asked Questions

Does this webcam tester work on any device?

It works on any device with a working camera and a modern browser. That includes Windows desktops and laptops, MacBooks, iMacs, Mac Minis, Linux machines, Chromebooks, iPhones, iPads, and Android phones and tablets. The browser requirements are Chrome 53+, Firefox 36+, Safari 11+, or Edge 79+ — all current versions of every major browser support the MediaDevices.getUserMedia API.

The page must be served over HTTPS for camera access to work. Non-secure http:// pages cannot request the camera in modern browsers; this is a deliberate browser security decision, not a page limitation.

Can I use this to record video?

This tester captures individual still photos rather than continuous video. Recording requires MediaRecorder, which has additional complexity around codec support, file size, and mobile browser compatibility. For still-image capture and download — the most common "test my webcam" use case — the current tool is sufficient and much faster than exporting a video file.

If you need to record video, consider OBS Studio, QuickTime (macOS), or the built-in Camera apps on Windows and mobile devices.

Why is the preview upside down or flipped?

The Mirror toggle flips the preview horizontally. Most calling apps mirror your self-view but not what is sent to the other party, because a mirrored image feels more natural when you see yourself. If the preview is genuinely upside down (rotated 180°), the camera orientation is wrong — most webcams have a physical rotation that can be adjusted, or the camera driver exposes an orientation setting in vendor software.

Can I capture at a higher resolution than my camera's native?

No. The capture function uses the live video frame's actual pixel dimensions (videoWidth × videoHeight), which are whatever the camera is currently delivering. Requesting a higher resolution in the dropdown will ask the camera to deliver more pixels if it can — but the browser falls back to the camera's true maximum if the request exceeds the hardware.

Are captured images stored or uploaded?

No. Every capture is a Blob held in the tab's memory. Downloading the blob saves a file to your local Downloads folder. Closing the tab releases the blob and it is gone forever. There is no server-side storage, no cloud sync, no analytics on image contents, and no third-party access.

Does the test use my microphone?

No. This tester requests { audio: false, video: true }. Microphone access is a separate permission and is not required or requested. If your browser shows a microphone permission prompt while using this page, something else on the page is asking for it — look for browser extensions that may be injecting microphone-access code.

Can I test multiple cameras one after another?

Yes. Once the first camera is active, the device dropdown is populated with every video input the OS exposes. Switching devices stops the current stream and starts a new one with the selected camera, so you can verify each camera in turn. The picture briefly goes black during the switch while the new camera initialises.

Why does the picture have a slight delay?

The preview has a small end-to-end latency — typically 50–150 ms — composed of the camera's sensor exposure time, USB transfer, driver buffer, browser-decoder delay, and render pipeline. Most of this is unavoidable on consumer hardware. For video calls the latency is usually acceptable; for twitch-gaming the latency is too high and a dedicated capture card or OBS ingestion is more appropriate.


Related Testing Tools

If you are preparing a whole setup — camera, keyboard, mouse, controller — these companion tools all run locally in the browser with the same privacy-first approach:

  • Keyboard Test — Test every key on your keyboard, detect stuck keys, verify NKRO rollover, and see KeyboardEvent.code / KeyboardEvent.key values in real time.
  • Mouse Test — Test every button and scroll wheel on your mouse, diagnose double-click failure, and capture MouseEvent and WheelEvent values.
  • PS4 Controller Test — Test DualShock 4 buttons, analog sticks, triggers, and vibration via the HTML5 Gamepad API.
  • PS5 Controller Test — Test the DualSense controller including all face buttons, triggers, touchpad, and haptic feedback detection.
  • Xbox Controller Test — Test Xbox One, Xbox Series X/S, and Xbox 360 controllers across all buttons, bumpers, triggers, and thumbsticks.

When to Use Multiple Testers

Before a video interview or important call: run the webcam tester, mouse tester, and keyboard tester in order. Two minutes of testing catches permission issues, driver problems, and dead switches before they interrupt the call. Every tool here uses a different browser API (getUserMedia, MouseEvent, KeyboardEvent, Gamepad), so a problem with one does not necessarily indicate a problem with the others.

Live Preview

Press “Start Webcam Test” to begin