See whether your camera turns on, and how sharp and smooth the picture is
The webcam test shows right away whether video from your laptop's built-in camera, a USB webcam, or a phone camera reaches the browser, and then reads that video in four ways. Actual resolution is the width and height in pixels of the picture you are receiving now, and Frames received is how many frames actually arrived per second. Face brightness is the brightness of the center oval (where your face goes) on a 0 to 255 scale, compared with the background so it can point out backlighting or a dark face. Finally, the resolution ladder draws the size you requested, the size you actually received, and the maximum size the camera reports over the standard resolutions.
When you open the page, you first see a sample made from a test pattern. Only after you press Start camera does the browser ask for camera permission, and from then on the same readings come from your own camera. Video and photos stay inside this browser and are never uploaded, and the microphone is never requested.
When it pays to check your camera ahead of time
Camera problems usually show up after the meeting has started. Once someone says "we can't see you," it is too late to work out whether the cause is permissions, another app, or the lighting. Checking the cases below a few minutes ahead narrows down what can go wrong inside the meeting app.
- Before a video meeting or online interview: See that video appears, that your face sits in the middle of the frame, and that a window is not leaving your face dark. For something you cannot redo, such as an interview, it is safer to settle lighting and framing the day before.
- Before an online exam or certification test: With remote proctoring that requires a camera, a camera that will not start can delay your check-in. If video shows up here, the device and browser permission are fine, so what is left to check is the exam software's own settings.
- When you buy a new webcam: Change the requested resolution and FPS to see whether the 1080p and 60 fps printed on the box really come through. Reading the camera maximum together with the received FPS helps you guess whether the cable, the port, or the lighting is holding it back.
- When a laptop camera suddenly stops working: The message tells you whether it is a permission problem, a missing device, or another app using the camera. What you should do differs completely depending on the cause.
- Framing and lighting before streaming or recording: Use the rule-of-thirds guides and the eye-level line to frame the shot, and use the lighting reading to narrow the brightness gap between face and background. You can also line up photos to compare before and after a lighting change.
The order to follow for a first check
- Press Start camera and click "Allow" in the browser's camera permission prompt. If you allowed it before, the camera starts without a prompt.
- Slowly wave your hand in front of the camera. If the picture follows right away, the connection is fine; if it stalls or lags, look at the frame interval graph.
- Keep your face inside the dotted oval and read the lighting result. If it says "Backlit" or "Face too dark," change where you sit or the lighting and see whether the result changes.
- If you have several cameras, switch between them with the Camera list in the settings row. Changing it while the camera is on reconnects right away.
- If you have settled on the quality you want in meetings, press a requested resolution (for example 720p or 1080p) and check that the actual resolution comes out the same.
- When you are done, press Stop to turn the camera off. Doing this before you open your meeting app avoids the "camera is in use by another app" error.
How to read the four readings
All four readings are measured from the video arriving right now. They can differ from the performance printed on the camera box or shown in its settings, so read each value together with what it does not tell you.
| Reading | What it measures | What this value does not tell you |
|---|---|---|
| Actual resolution | The width and height in pixels, the pixel count, and the aspect ratio of a single frame being drawn right now | The camera's maximum resolution (shown separately as "Camera max" in the resolution ladder) |
| Frames received | The number of frames that actually arrived in the last 2 seconds, divided into frames per second; the line below shows the value the browser reports and the number of stalls in the last 10 seconds | How many frames are sent to the other people in a meeting |
| Face brightness | The average brightness (0 to 255) of the pixels inside the center oval, and the lighting verdict | Whether a face was actually found (no face detection is done) |
| Camera | The connected device name, plus the maximum resolution and FPS the camera reports | Any guarantee that this maximum is available on the current connection |
Why requested, actual, and maximum resolution can all differ
This tool asks for the resolution you pick as an "ideal" value. The browser chooses the camera mode closest to it, but if the camera does not support that size, or cannot reach the requested FPS at that size, it connects at a different one. So asking for 1080p and getting 720p is normal behavior, not an error. In the resolution ladder, comparing the dotted outline (requested), the filled box (actual), and the dotted border (camera max) shows at which step the size dropped.
| Common name | Width × height | Pixels | Aspect ratio |
|---|---|---|---|
| VGA · 480p | 640 × 480 | 307,200 (0.31 MP) | 4:3 |
| HD · 720p | 1280 × 720 | 921,600 (0.92 MP) | 16:9 |
| Full HD · 1080p | 1920 × 1080 | 2,073,600 (2.07 MP) | 16:9 |
| QHD · 1440p | 2560 × 1440 | 3,686,400 (3.69 MP) | 16:9 |
| 4K UHD · 2160p | 3840 × 2160 | 8,294,400 (8.29 MP) | 16:9 |
With the requested resolution on Default, no size is specified, so the browser connects at whatever default it chooses. That default is often smaller than the camera's maximum, so if the picture looks low quality when you first open the page, press 720p or 1080p and compare. In the other direction, if you ask a 4:3 camera for a 16:9 size, the browser may crop the top and bottom of the image to fit (crop-and-scale). When that happens, a note appears under the resolution ladder and the view looks a little narrower.
If you hold a phone upright, the video also arrives upright (for example 720 × 1280). The resolution ladder rotates portrait video to landscape so it is easy to compare. More pixels will not fix dim light, bad focus, or a dirty lens, so for a blurry picture check the lighting and the lens before the resolution.
Received FPS and stalls: when they differ from the reported value
"Reported 30" is the setting that the camera and browser agreed on, while the large number is a count of frames that actually reached the browser. The tool receives a frame number and a timestamp from the browser every time a video frame is drawn (requestVideoFrameCallback), and it works out the received FPS from how many frames were added over the last 2 seconds. In the frame interval graph, each bar is one frame, and a taller bar means that frame arrived later than the one before. When an interval exceeds 1.75 times the recent median, the bar is painted in the accent color and counted as a "stall."
In a dim room it is common for the received FPS to come out lower than the reported value. A camera gathers light for each frame, and that time cannot be longer than the interval between frames. When light is scarce, automatic exposure lengthens the time spent gathering light, and the number of frames per second that fit shrinks accordingly. This is also why webcam software has a setting to choose between frame rate priority and exposure priority (Logitech Capture explains that exposure priority protects proper brightness first, while frame rate priority protects a steady FPS first).
| FPS | Frame interval | Longest exposure per frame | Interval counted as a stall (× 1.75) |
|---|---|---|---|
| 15 | 66.7 ms | 1/15 s | Over 116.7 ms |
| 24 | 41.7 ms | 1/24 s | Over 72.9 ms |
| 30 | 33.3 ms | 1/30 s | Over 58.3 ms |
| 60 | 16.7 ms | 1/60 s | Over 29.2 ms |
If the bars stay low and even but one now and then spikes, another program may be keeping the computer busy, or the camera connection may be lagging for a moment. If the bars all rise and the received FPS drops toward 15, start by brightening the room. If you asked for 60 fps and only get 30, look at the camera maximum to see whether the camera supports 60 fps at that resolution, and compare after dropping the resolution one step.
Lighting reading: backlight, a dark face, and blown highlights
The lighting reading shrinks the picture to a grid 96 cells wide and calculates brightness every 0.25 seconds. For each pixel, brightness is counted from 0 to 255 using the weights of the broadcast video standard (ITU-R BT.709): Y = 0.2126 R + 0.7152 G + 0.0722 B. Green carries the most weight because the human eye sees green light as the brightest. The graph is a distribution of how many pixels there are at each brightness; the solid line is the face (the center oval) and the dotted line is the background (the area outside the oval enlarged 1.5 times), each as an average.
| Verdict | Threshold | What to try first |
|---|---|---|
| Almost black | Overall average below 12 and 98% of pixels at 40 or lower | Lens cover, the laptop's camera privacy key or switch, room lighting |
| Backlit | Background at least 50 brighter than the face, and the face below 110 | Don't sit with your back to a window; put it beside or in front of you, and add light on your face |
| Face too dark | Face average below 70 | A light behind or beside the monitor aimed at your face, or switching on the ceiling light |
| Face too bright | Face average above 215 | Move the light farther away, or bounce it off a wall to soften it |
| Highlights blown out | 5% or more of pixels at 250 or above | Change the angle so windows and lamps stay out of the frame |
| Image frozen | The shrunken picture read every 0.25 seconds is exactly the same 16 times in a row (4 seconds) | Wave your hand to check, reconnect the camera, check whether the selected device is a virtual camera |
| Good | None of the above applies | Keep your current seat and lighting |
These thresholds are rough values for a picture that works in meetings, not a photography standard. The right face brightness varies with skin tone, clothing, and background color, so judge first by whether your eyes, nose, and mouth look crisp rather than by the numbers. Because there is no face detection, if your face is outside the oval, "Face brightness" is a measurement of whatever background sits there. If you change lighting, distance, and resolution all at once, it is hard to tell what made it better, so change one thing at a time and take photos to compare.
The quality your meeting app actually sends
A sharp 1080p picture here does not reach the other people as it is. Meeting apps compress video before sending it, and they lower the sending resolution on their own depending on your plan, your settings, and the network. The table below lists what each company's official help pages say.
| App | Quality sent and conditions | Bandwidth stated in the help pages |
|---|---|---|
| Zoom | With HD video on, 720p in group meetings in speaker view; 1080p (Full HD) is available only on Business and Enterprise plans, and to send 1080p you must turn off the virtual background | 720p: 1.2 Mbps send and receive; 1080p: 3.8 Mbps send, 3.0 Mbps receive |
| Google Meet | You pick the maximum under "Send resolution" from 1080p, 720p, and 360p; 1080p works only with a 1080p camera and a computer with enough processing power; Firefox and Safari do not support 1080p | Not listed in the help page |
| Microsoft Teams | When bandwidth is not limited, video and screen sharing are optimized up to 1080p at 30 fps | See the network preparation document |
So if you look blurry to the other people, check the meeting app's video settings (HD video, send resolution) and your upload speed before the numbers in this tool. Conversely, if the picture is dim and blurry here too, changing meeting app settings will not help much, so fix the lighting and the lens first.
Error messages, their causes, and what to do
When the camera will not start, the browser reports an error name. This tool turns that name into a cause-based message on screen and leaves the original error name in parentheses at the end of the status line. Checking whether the same symptom appears in your operating system's camera app helps you tell a browser problem from a device problem.
| On-screen message | Error name | What to do |
|---|---|---|
| The camera can't be used on this connection | No camera API (not a secure connection) | Check that the address is https://, and update a very old browser |
| Camera permission was not granted | NotAllowedError | You clicked Block or closed the prompt; set Camera to Allow in the site settings next to the address bar |
| Your browser is blocking the camera for this site | NotAllowedError (permission state "blocked") | Set Camera to Allow in the site settings and try again |
| The operating system is blocking the browser's camera access | NotAllowedError (system block) | Windows: Settings › Privacy & security › Camera; macOS: System Settings › Privacy & Security › Camera; allow the browser there |
| No camera found | NotFoundError · OverconstrainedError | Reconnect the USB cable, check the laptop's camera privacy switch, check whether the camera you picked has disappeared |
| The camera can't be opened | NotReadableError · AbortError | Close meeting and camera apps and other tabs and try again; if it continues, restart the device |
| The camera connection was lost | (video track ended after the camera was on) | Check the cable and port, check whether another app took the camera, then start again |
If you opened the link inside a messaging or social app, that app's built-in browser may block the camera. Copy the address and open it again in a regular browser such as Chrome, Safari, or Edge. If you do not respond to the permission prompt, the request stays pending, and this page's Cancel request cannot close the browser's own prompt. Once you respond to the prompt and the request ends, you can start again.
When the camera turns off and where your video goes
This tool turns the camera input off when you press Stop, when you switch to another tab or app and the page becomes hidden, or when you leave the page. It does not turn back on by itself when you return; you have to press Start camera again. However, if another app or tab is using the same camera, the camera indicator light can stay on. The browser only drops this page's connection, and the device itself turns off once every connection using that camera is gone.
- Video is used only to show on screen and to calculate brightness; it is never sent to a server or recorded.
- Photos taken with Take photo exist only in this browser's memory, and are saved to your device as JPG files only when you click a thumbnail. If you close the page, photos you have not saved are lost.
- Saved photos keep the actual resolution, and they are saved in the direction the camera captured (not flipped left to right) regardless of Mirror view.
- The camera name and device information are only shown on screen and are not stored. The microphone is never requested.
Common ways to misread the results
- Reading the requested resolution as the result: If you press 1080p but the Actual resolution reading says 720p, the video you are receiving is 720p. Always judge by "Actual resolution."
- Reading the reported FPS as the real FPS: A reported 30 is only a setting, and in a dark room the received FPS can fall to around 15.
- Blaming resolution for a dark picture: Raising the resolution can even lower the FPS or make noise look worse. If the picture is dark and blurry, lighting comes first.
- Assuming text looks backwards to others because it is backwards in Mirror view: Mirror view flips left and right only on your own screen. To see how it looks to others, use the meeting app's preview or a test call.
- Assuming that if it works here, it works in the meeting app: A meeting app picks its own camera and asks for its own permission. If nothing shows up in the meeting app, check that app's camera selection and the operating system's permission.
Limits
- Received FPS is counted from the frames the browser draws. A camera faster than the monitor's refresh rate (for example 120 fps on a 60 Hz screen) can only be counted up to about the refresh rate, and a busy browser can make the count come out lower than the real value.
- The frame interval graph is drawn only in browsers that support requestVideoFrameCallback (Chrome 83, Safari 15.4, Firefox 132 and later). Without support, only lighting and resolution are read.
- Face brightness is the average of the center oval, not face detection. The lighting thresholds are rough values for this tool, and color accuracy, focus, and noise are not judged.
- The camera maximum is a value the camera and browser report. Some browsers do not report it, and a reported maximum is no guarantee that it is available at every FPS.
- The quality your meeting app sends and your network speed are not measured. Do the final check in the preview or a test call of the app you will actually use.
Reference date Sources and meeting-app help pages were checked on 2026-10-21.
Sources
- 01MDN: MediaDevices.getUserMedia()Secure connection required, and the meaning of exceptions such as NotAllowedError, NotFoundError, NotReadableError, and OverconstrainedError
- 02MDN: MediaTrackConstraintsThe difference between ideal and exact values, and width, height, and frameRate requests
- 03MDN: getSettings()The settings of the current connection (reported FPS and resolution), not the requested values
- 04MDN: getCapabilities()The resolution and FPS ranges the camera reports (camera max)
- 05MDN: MediaDeviceInfo.labelThe device name is an empty string until permission is granted
- 06MDN: MediaStreamTrack.stop()When several tracks use the same device, the device may not turn off right away
- 07MDN: requestVideoFrameCallback()Provides timing details such as presentedFrames and captureTime for each frame
- 08W3C: Media Capture and StreamsresizeMode (none, crop-and-scale): how the browser crops the camera image to fit the requested size
- 09ITU-R BT.709: HDTV image parametersLuma weights 0.2126, 0.7152, and 0.0722
- 10Zoom Support: Enabling HD video720p in group meetings; 1080p on Business and Enterprise; turn off the virtual background to send 1080p
- 11Zoom Support: System requirements720p at 1.2 Mbps; 1080p at 3.8 Mbps send and 3.0 Mbps receive
- 12Google Meet Help: Adjust your video resolutionSend resolution of 1080p, 720p, or 360p; Firefox and Safari do not support 1080p
- 13Microsoft Learn: Prepare your organization's network for TeamsUp to 1080p at 30 fps when bandwidth is not limited
- 14Logitech Support: Logitech Capture source option settingsPriority "Frame rate" protects a steady FPS; "Exposure" protects proper brightness first
Frequently asked questions
Does the camera turn on as soon as I open the page?
No. The picture you first see is a sample made from a test pattern, and the browser asks for camera permission only after you press Start camera. Even if you allowed it before, merely opening the page does not turn the camera on, and the microphone is never requested.
The permission prompt did not appear, or I clicked Block by mistake.
In the site settings next to the address bar (the lock or sliders icon), set Camera to Allow and try again. If it is allowed for the site and still fails, the operating system may be blocking the browser's camera access, so turn the browser on in the privacy settings of Windows or macOS. If you opened the page inside a messaging app, open it again in a regular browser.
The camera is on but the picture is black.
If the verdict is Almost black, video is arriving but there is no light. Check the lens cover and the laptop's camera privacy key or switch first, then turn on the room lights. If the verdict is Image frozen, the same scene keeps arriving, so reconnect the camera or check whether the selected device is a virtual camera.
I picked 1080p but the actual resolution shows 720p.
A requested resolution is only a preference, so if the camera does not support that size or cannot reach the requested FPS at that size, it connects at a different one. If the resolution ladder shows a camera max of 1080p or higher and you still get 720p, set the requested FPS to Default and compare again. The Actual resolution reading is the size of the video you are receiving now.
The received FPS is lower than the reported value. Is my camera broken?
Almost never. The time a camera spends gathering light for each frame cannot exceed the interval between frames, so in dim light it cuts the number of frames per second to lengthen exposure. If the received FPS climbs back to the reported value when you add light, the light was the cause. If the bars still spike often in bright light, close other programs and look again.
If I turn Mirror view off, does it flip left and right for the people in my meeting?
No. Mirror view flips only this page's preview like a mirror and has no effect on the camera settings or the video your meeting app sends. To see how text looks to the other people, use the meeting app's preview or a test call.
It looks sharp here but blurry in Zoom, Meet, or Teams.
Meeting apps compress video and lower the resolution depending on settings and the network. Zoom sends 720p only with HD video on, and 1080p only on Business and Enterprise plans; Google Meet lets you pick the maximum under Send resolution, and Firefox and Safari do not support 1080p there. Check the app's video settings and your upload speed first.
Are the photos and video I take stored on a server?
No. Video is used only to show in this browser and to calculate brightness, and it is never uploaded. A photo stays in the browser's memory until you click its thumbnail, which saves it to your device as a JPG, and photos you have not saved disappear when you close the page.