Webcam Test

Check that your camera works and see what it really delivers: the live picture, its resolution and aspect ratio, the frame rate it reports and the frame rate actually measured, and every capability the browser exposes, from resolution range to zoom, focus and torch.

Tester Utilities Updated Oct 7, 2026
How to Use
  1. Press Start camera and choose Allow. Until then the page shows an example test card and example numbers.
  2. Check the picture, then read the readouts: resolution, the frame rate the camera reports, and the frame rate measured from the frames that actually arrive.
  3. Wrong camera? Pick another in the Camera list. Use a preset such as 1080p or Highest available to see what the camera can really do.
  4. Scroll to the capabilities table for resolution and frame-rate ranges, and use zoom, focus or torch if your camera offers them.
  5. Press Snapshot to keep a still in this tab; it is only saved to your computer if you press Download PNG.
Camera
listed after you allow access
Presets
Preview
Example A test card stands in for the camera. Press Start camera to see yours.
Example

Resolution
1,280 × 720
Frame rate (reported)
30fps
Frame rate (measured)
29.97fps
Aspect ratio
16:9
What your browser reports about the camera

Worked Example

A 720p webcam, measured for 5 seconds. The video element reports 1,280 × 720 pixels, which is 1,280 × 720 ÷ 1,000,000 = 0.92 megapixels. The greatest common divisor of 1,280 and 720 is 80, so the aspect ratio is 1,280 ÷ 80 : 720 ÷ 80 = 16:9 (1.778). In 5.005 s the browser presented 150 new frames: 150 ÷ 5.005 = 29.97 fps, one frame every 1,000 ÷ 29.97 = 33.37 ms. The camera reports 30 fps, so it delivers 99.9 % of what it promises.

Why 1080p webcams compress. Uncompressed YUY2 video uses 2 bytes per pixel. At 1,920 × 1,080 and 30 fps that is 1,920 × 1,080 × 2 × 30 = 124.4 MB/s, or 995 Mbit/s. USB 2.0 signals at 480 Mbit/s, so even with every bit used, uncompressed 1080p would manage at most 480 ÷ 33.2 = 14.5 fps. That is why USB 2.0 cameras send 1080p as MJPEG or H.264.

The common mistake: trusting the reported frame rate. getSettings().frameRate is the mode that was negotiated, not what arrives. If only 150 frames arrive in 10 s the camera is really running at 150 ÷ 10 = 15 fps, half of the 30 it reports, for example when it lengthens exposure in dim light or the computer is busy. The measured figure counts real frames, which is why this page shows both.

Show Work

Start the camera to see how each number was measured.

Formulas

Measured frame rate
fps = ΔpresentedFrames ÷ Δt
150 frames in 5.005 s = 29.97 fps.
Frame interval
t = 1,000 ÷ fps ms
30 fps is 33.33 ms; 60 fps is 16.67 ms.
Aspect ratio
W : H = (W ÷ gcd) : (H ÷ gcd)
1,280 × 720 → gcd 80 → 16:9. 640 × 480 → 4:3.
Megapixels
MP = W × H ÷ 1,000,000
1080p is 2.07 MP; 4K UHD (3,840 × 2,160) is 8.29 MP.
Raw data rate
R = W × H × bytes per pixel × fps
720p30 in YUY2: 55.3 MB/s, 442 Mbit/s.

How the Browser Talks to Your Camera, and How to Fix It

Asking, not demanding. The page calls getUserMedia() from the W3C Media Capture and Streams specification. Sizes and frame rates are passed as ideal constraints, so the browser picks the camera mode closest to the request instead of failing. getSettings() then says what was chosen and getCapabilities() gives the ranges. Zoom, focus, exposure and torch are extra constrainable properties from the W3C MediaStream Image Capture specification; phones and some webcams offer them, many desktop webcams do not.

Counting frames. requestVideoFrameCallback() runs once for each new video frame shown, and its presentedFrames counter makes dropped frames visible. MDN notes that it runs at the lower of the video frame rate and the browser’s paint rate, so on a 60 Hz screen the measured rate tops out near 60 fps. Browsers without it fall back to getVideoPlaybackQuality().

Access blocked (NotAllowedError). The browser and the system must both allow the camera. Chrome: More → Settings → Privacy and security → Site settings → Camera, which also chooses the default camera. Edge: Settings and more → Settings → Privacy, search, and services → Site permissions → All sites. Firefox: click the crossed-out camera in the address bar, or Settings → Privacy & Security → Permissions → Camera. Safari on a Mac: Safari → Settings → Websites → Camera. Windows 11: Settings → Privacy & security → Camera, with Let desktop apps access your camera on, because browsers are desktop apps. macOS: System Settings → Privacy & Security → Camera.

In use (NotReadableError) or not found (NotFoundError). “In use” means the camera was found and allowed but could not be opened, usually because another program holds it: close video-call apps, OBS, the Windows Camera app or other tabs, then try again. “Not found” means the system lists no camera: check the cable and port, a laptop’s camera key or privacy switch, and Windows Device Manager or macOS System Information. A black picture with the camera running usually means a closed privacy shutter.

About This Tool

This webcam test shows the live picture with a mirror switch, the real resolution and aspect ratio, the frame rate the camera reports next to the one actually measured, and the full list of capabilities your browser exposes. It warns when the picture is black or frames stop, explains each browser error in plain words, and lets you try zoom, focus and torch where the camera allows.

Privacy: the camera is only requested when you press a button, and released when you press Stop or leave the tab. Video is never recorded or sent. Snapshots stay in this tab’s memory and are saved only if you press Download PNG.

Sources: W3C Media Capture and Streams; W3C MediaStream Image Capture; WICG HTMLVideoElement.requestVideoFrameCallback and MDN Web Docs (requestVideoFrameCallback, getUserMedia errors); USB 2.0 Specification (480 Mbit/s high speed); Google Chrome Help “Use your camera and microphone in Chrome”; Microsoft Support “Manage app permissions for a camera in Windows” and “Windows camera, microphone, and privacy”; Mozilla Support; Apple “Control access to the camera on Mac” and “Customize settings for each website in Safari on Mac”.

Related tools: Microphone Test, Photo Booth, and Speaker Test.

Frequently Asked Questions

How do I test my webcam?

Press Start camera and allow access. If you see yourself, the camera works in your browser. Then compare the measured frame rate with the reported one: 29.97 measured against 30 reported is normal, while 15 against 30 means frames are being dropped, often in dim light.

Why does my webcam say it is in use or cannot start?

That is a NotReadableError: the camera exists and you allowed it, but it could not be opened. Usually another program holds it, such as Zoom, Teams, OBS, the Windows Camera app or another browser tab in a call. Close those and press Start again; if it persists, unplug and reconnect the camera.

Why is my webcam not at its full resolution?

Browsers ask for a default size (often 640 × 480) unless the page asks for more. Use the 1080p or Highest available preset. The request is an “ideal”, so you get the closest mode the camera has. On USB 2.0, 1080p at 30 fps needs compression, because the raw picture would take 995 Mbit/s against the port’s 480 Mbit/s.

Why is the picture mirrored?

The preview is flipped by default so it behaves like a mirror, which most people find natural. Other people on a call usually see you unflipped. Untick Mirror preview to see the camera’s true orientation; snapshots follow the setting you choose.

Is my video recorded or uploaded?

No. The picture goes from the camera to this page’s preview and nowhere else. The camera is released when you press Stop or leave the tab. Snapshots stay in this tab’s memory until you delete them or close the page, and are saved to your computer only when you press Download PNG.

Common Use Cases

Before a video interview

Check the right camera is chosen, the picture is not black (a shutter closed), and it delivers about 30 fps.

Check a new webcam’s claims

Request Highest available: a “1080p” camera should report 1,920 × 1,080, which is 2.07 megapixels.

Find dropped frames

Measured 15 fps against a reported 30 is 50 %: add light or lower the resolution.

Diagnose “camera in use”

A NotReadableError names the problem: another app holds the camera. Close it and try again in 5 seconds.

Phones and tablets

Switch between front and back cameras in the list and test zoom and the torch where the browser offers them.

Last updated: