The test above checks whether your browser can open your camera and show a live picture from it. It uses the same path that video calls and browser-based meeting rooms use, so a working preview is direct evidence that the camera, its driver, and the browser permission are all in place.
Run it when a meeting app shows a black square, after an update that touched drivers, after plugging in an external USB camera, or to confirm the resolution and frame rate a camera actually delivers rather than the number printed on the box. It takes a few seconds and needs nothing installed.
How the webcam test works
When you select Start the camera test, the page calls navigator.mediaDevices.getUserMedia(). MDN describes this method as prompting the user for permission to use a media input device and returning a promise that resolves to a MediaStream. The page attaches that stream to a video element, which is why a picture appears as soon as you accept.
The prompt is not optional. MDN states that user permission is always required and that browsers must ask at least once. The method also needs a secure context, and MDN notes that it works on HTTPS pages, on localhost, and on file:/// URLs, with navigator.mediaDevices undefined anywhere else.
The resolution and frame rate readout is reported by the active video track for this session. MDN documents getSettings() on a MediaStreamTrack, which returns a MediaTrackSettings dictionary whose video properties include width, height, and frameRate. The camera picker comes from enumerateDevices() after permission is granted, and when a browser withholds a label the picker shows a numbered fallback such as Camera 2 instead of a blank entry.
Nothing leaves your device. The video is rendered in your browser and shown only on your screen, never recorded, stored, or uploaded. The preview starts mirrored, like a selfie view, and the Show unmirrored view button flips it to the exact orientation other apps receive; either way the change affects only your preview. Stop the test ends the stream at once, and leaving the page stops it too. MDN describes stopping a track as the way to release the device, which turns the camera indicator light off.
How to read your results
A steady picture that follows your movement is a full pass. The camera, the driver, and the browser permission all work, so a video call that still fails is failing inside that app rather than at the camera.
A prompt you never see, or a test that ends the moment it starts, usually means permission was denied or is remembered as denied. MDN maps that to NotAllowedError, which covers a user denial, an insecure browsing context, and a Permissions Policy block.
If the camera cannot start at all, the tool stops and reports a busy or blocked camera, which MDN classifies as NotReadableError. A black frame that appears later, while the status still says the camera is live, usually means a privacy shutter closed after the stream opened; that state produces no error, so open the shutter and watch the preview return.
No camera offered at all means the browser found no matching device. MDN maps that to NotFoundError, which commonly follows a driver that failed to load, an unplugged USB camera, or a camera disabled at the system level.
A lower resolution or frame rate than you expect is a real reading. Cameras drop both in low light or on constrained USB bandwidth, and getSettings() reports the value in force for this session rather than the maximum on the spec sheet.
If the test fails
Work from the cheapest cause upward. Microsoft says to confirm that an external camera is securely connected to its USB port, to look for a physical camera switch such as a keyboard button, a side slider, or a built-in shutter, and to close background applications competing for camera access through Task Manager. Testing with the built-in Windows Camera app shows whether the problem follows one program or affects the whole system.
Then check permission in two places. The browser holds a site-level permission and the operating system holds a device-level one, and either blocks the camera on its own. On Windows those system controls sit under Privacy & security, and How to Change Webcam Settings on Windows covers what each toggle does.
If the camera is missing rather than blocked, treat it as a driver problem. Microsoft covers rolling back, uninstalling, and reinstalling the camera driver from Device Manager, switching an external USB camera to the standard UVC driver, and checking Windows Update for optional driver updates. How to Download and Fix a Camera Driver on Windows walks the same ground one dialog at a time.
When the test above passes but one application still shows no picture, that application's own device selection is the fault, and How to Change Teams Camera Settings shows how to reset it. On a phone the system permission is usually to blame, and How to Allow Camera Access on iPhone covers granting it. Microsoft also notes that antivirus software can block the camera and that group policy can restrict cameras on managed machines, and it recommends a full restart plus the camera troubleshooter in the Get Help app.
Platform notes for Windows, macOS, and Chrome
On Windows 11 the camera privacy settings are at Start, Settings, Privacy & security, Camera, and on Windows 10 at Start, Settings, Privacy, Camera. Microsoft describes the top-level Camera access toggle as the setting that lets individual users on the device choose whether apps can access the camera at all. Below it, Let apps access your camera controls each Microsoft Store app in the list.
Desktop apps work differently. Microsoft states that camera privacy settings for desktop apps cannot be changed at an individual desktop app level, so allowing a desktop browser means enabling Let desktop apps access your camera, which applies to every desktop application at once. On macOS, Apple documents camera control under the Apple menu, System Settings, Privacy & Security in the sidebar, and then Camera, where the list shows apps you have installed that have asked to use the camera.
In Chrome, a site request offers to allow while visiting the site, allow this time, or never allow. Google notes that a permitted site can start recording while you are on it, but not while you are in a different tab or a different app. The standing controls live under Settings, Privacy and security, Site settings, and then Camera. To undo an accidental block, Google says to select the site under those not allowed to use your camera or microphone and change the permission to Allow.
Common questions
Does this test record or upload my video?
No. The picture is produced in your browser from the local camera stream and is shown only on your screen. Nothing is recorded, stored, or uploaded, and Stop the test releases the camera immediately.
Does the mirror toggle change what other people see?
No. Mirror flips the preview horizontally on your screen only. The frames the camera hands to the browser, and to any other application, are unchanged.
Why is the reported resolution lower than my camera's rating?
The readout comes from getSettings() on the live video track, so it shows what the browser is actually using this session rather than the camera maximum. Constraints, available light, and the connection the camera sits on all affect what gets negotiated.
Official references
- MDN reference for MediaDevices.getUserMedia()
- MDN reference for MediaTrackSettings
- MDN reference for MediaDevices.enumerateDevices()
- Microsoft guide to camera app permissions in Windows
- Microsoft guide for a camera that does not work in Windows
- Apple guide to camera access on Mac
- Chrome Help guide to camera and microphone permissions

