Webcam test

Start your camera and get a live preview, plus the numbers that actually matter: the resolution and frame rate your browser is really getting, not just the one you asked for. Switch cameras, try a resolution preset, mirror the preview, or save a snapshot. What the camera sees never leaves this device.

Test your camera

Camera is off. Press Start camera to begin — your browser will ask for permission first.

Camera is off.

Resolution preset

How camera permission actually works

A web page cannot see or touch your camera on its own. Pressing Start camera calls the browser's own getUserMedia() API, which is what actually opens the hardware — and the first time any site asks, the browser itself shows a permission prompt naming this page's origin. Nothing streams until you click Allow. That decision is remembered per-site by the browser, not by this page, so it survives a reload and even a full restart of the browser.

Because the prompt is the browser's own UI, this page cannot pre-fill it, skip it, or find out your answer before you give it — if you click Block, all this tool can see is that the request failed, not that you specifically said no versus some other failure. That is also why the permission decision has to be reset from the browser's own address-bar controls, not from a button on this page.

Why a camera preview can go black

A black or frozen preview almost always traces back to one of a small number of causes, roughly in order of how often they happen:

  • Permission is blocked, not just unanswered. A previous "Block" click is sticky until you change it in the browser's own site settings — the prompt will not reappear on its own.
  • Another program already has the camera open. Most operating systems hand a camera to exactly one application at a time. A video-call app left running in the background, a second browser tab with its own camera tool, or even the OS's own camera app can all hold the lock.
  • A physical privacy shutter or lens cover is closed. Many laptops and external webcams ship with one, and it is easy to forget it is there after leaving it closed for a while.
  • The wrong device is selected. A laptop with a built-in camera plus a USB webcam, or a docked laptop with a monitor camera, can default to a device that is not the one you expect — check the device picker.
  • A driver or OS-level privacy toggle is off. Windows and macOS both have a system-wide camera privacy switch that is separate from any individual browser's permission, covered in the troubleshooting guide.

Troubleshooting checklist

  1. Check the address bar for a camera or padlock icon — click it to see whether this site's camera permission is set to Block, and change it to Allow if so.
  2. Close other apps and browser tabs that might already be using the camera (video-call software is the most common culprit), then try Start camera again.
  3. Look for a physical shutter, cap, or slider on the camera itself.
  4. If more than one camera is listed, try each one in the device picker.
  5. Check your operating system's own camera privacy setting (not the browser's) — see the dedicated troubleshooting page for exact steps on Windows, macOS, Android and iOS.
  6. Restart the browser. A camera handle can occasionally stay locked by a crashed or backgrounded tab until the browser process fully exits.
  7. Try a different browser to isolate whether the fault is the camera, the OS, or one specific browser's implementation.

Use cases & limitations

Where this is genuinely useful

  • Before a meeting, interview or stream. Confirm the picker has the right camera selected and the preview looks sharp before you are live in front of anyone.
  • Verifying resolution after buying or setting up a webcam. Request 1080p and see whether your camera and USB connection actually deliver it, or silently fall back to something lower.
  • Diagnosing a "camera not working" report from someone else. The specific error message this tool shows (permission denied vs. no device vs. in use) narrows down the cause much faster than a vague "it's black."
  • Checking a second or external camera works before it matters, such as a USB webcam you are about to use for the first time in a call.

What this tool cannot tell you

  • Objective image quality. Sharpness, colour accuracy, low-light noise and lens distortion are not numbers a browser API exposes — they need your own eyes on the preview, or a proper camera-review benchmark.
  • Whether the reported frame rate will hold under load. The "requested" figure from getSettings() is what the driver negotiated, not a guarantee frame-by-frame; the measured figure reflects only the moment you are looking at it, and can dip under poor lighting (many webcams reduce frame rate to compensate) or a slow USB link.
  • What another app or site would see. Every browser tab that opens the camera gets its own independent negotiation with the driver — this page's numbers describe this page's session, not necessarily what your video-call software will request.
  • Anything about audio. This tool only requests video; it never asks for a microphone.

Frequently asked questions

Is my camera video uploaded anywhere?

No. The video stream is opened by your browser and drawn straight into the page's own video element. There is no upload endpoint on this page for it to go to, and a snapshot you take stays as a local file on your device unless you choose to save it — nothing is sent to a server.

Why is my camera preview black or blank?

The four most common causes are: the browser permission for this site is set to block rather than ask; another app or browser tab already has the camera open and most operating systems only let one program use it at a time; a physical privacy shutter or lens cap is closed; or the picker has the wrong device selected on a laptop with more than one camera. The troubleshooting checklist above walks through each one in order.

I denied the camera permission by accident — how do I ask again?

A declined permission does not keep asking on every visit; you have to reset it. Click the padlock or camera icon in the address bar, find Camera in the site's permissions, and change it back to Ask or Allow, then reload the page and press Start camera again.

Why didn't my camera use the resolution preset I picked?

The preset is requested with an "ideal" constraint, not an exact demand, which is deliberate — an exact demand a camera cannot meet makes getUserMedia fail outright instead of substituting its closest supported mode. Most webcams support only a handful of fixed modes, so the browser picks the nearest one and this tool reports exactly what it granted next to what you asked for.

The device picker only shows one camera, but I have more than one plugged in

Browsers only return camera labels and a full device list once permission has been granted at least once in that session — before that, enumeration can return an empty or generic list. Press Start camera, allow the prompt, and the picker refreshes with every camera your browser can see.

Does this work on my phone?

Yes, on any mobile browser that implements getUserMedia, which covers current Chrome, Safari and Firefox on Android and iOS. The device picker will list your front and rear cameras separately where the OS exposes them that way.

Why does my mirrored preview look backwards on a video call?

A mirrored preview flips left and right so it matches what you see in an ordinary mirror, which feels natural while you check your framing. What the other side of a call actually receives is the unflipped feed — the mirroring here is a local display setting only and never touches the actual video data.

Is the frame rate this tool reports what my camera is actually delivering?

There are two numbers here for that reason. "Requested" is what the driver reports back from getSettings(), which is the camera's nominal or negotiated rate — a request, not a guarantee. "Measured" is timed from real decoded video frames as they arrive, using the browser's per-frame video callback where it is supported, so it reflects what is actually being delivered right now, including any drop under poor lighting or a slow USB connection.

Do I need to install anything?

No. This is a plain web page — no extension, no app, no account. Everything runs the moment the page loads, using a camera API already built into your browser.

Go deeper