What Is a Camera Resolution & FPS Test?
This tool reports your webcam's actual active resolution the instant it starts streaming, and - where your browser supports it - counts real delivered video frames over a 5-second window to calculate a genuine measured frame rate. This is different from simply reading a "requested" frame rate value your camera driver reports, since a camera can be asked for 30fps and still deliver less in poor lighting or under system load; this test counts what's actually arriving, not just what was requested.
How to Use the Camera Resolution & FPS Test
- Use an HTTPS connection (or localhost). Choose your camera if multiple cameras appear. You may optionally select an ideal resolution (480p, 720p or 1080p) and target FPS; Auto lets your browser negotiate the defaults.
- Click Start Camera & Measure and grant camera permission. The live preview opens locally. Nothing is recorded or uploaded.
- Keep the tab visible and let the fixed 5-second measurement finish. Avoid switching tabs or disconnecting the webcam while it runs.
- Read Active Stream Resolution and the camera's Reported FPS from its browser-exposed settings. These are different from the Measured Delivery FPS, which comes from real video-frame callbacks.
- Use Median / P95 Frame Interval, the frame-interval chart, and the Slow Intervals count to inspect preview timing. These values describe observed browser delivery rather than physical camera-sensor timing.
- Change the room lighting or close demanding apps, then click Measure Again to compare the next five-second run. Changing camera or requested quality requires Start Camera & Measure again.
- Use Export CSV for a local timing-only report, or Reset Results to clear the session history. Click Stop & Release to turn the camera off and release its stream; leaving the tab also stops it.
- If your browser does not support
requestVideoFrameCallback, you will see Unsupported for measured FPS—not an invented reading. Try a compatible browser for frame timing measurements.
How It Works
Resolution comes from the active video track's getSettings() data, which reports the real
width and height currently being streamed. Frame rate measurement uses the
requestVideoFrameCallback API, which - where supported - fires a callback exactly once for
every actual video frame delivered to the page, letting this tool count real frames over a fixed 5-second
window and calculate a true average frames-per-second figure. Where that API isn't available, this test
reports only the resolution and the driver-requested frame rate honestly, rather than guessing at a measured
number it cannot actually calculate.
Understanding Your Results
- Measured FPS closely matches Requested FPS - your camera is delivering its full expected frame rate under current conditions.
- Measured FPS noticeably lower than Requested FPS - commonly caused by low lighting, since many cameras automatically reduce frame rate to gather more light per frame, or by high system CPU load competing for processing time.
- "Not supported" for Measured FPS - your browser doesn't implement
requestVideoFrameCallbackyet; resolution and requested FPS are still accurate, just not the real measured count. - Resolution lower than your camera's advertised maximum - some cameras default to a lower resolution unless a specific higher resolution is explicitly requested by the application using them.
Browser Limitations
Frame rate measurement via requestVideoFrameCallback is currently best supported in
Chromium-based browsers like Chrome and Edge; Firefox and Safari support varies and may not expose this API.
Where it's unavailable, honest reporting of that limitation is more useful than a fabricated number this
tool has no way to actually calculate.
Common Mistakes to Avoid
- Testing in low light and expecting full frame rate - many cameras automatically drop frame rate in dim conditions to improve exposure; this is a driver decision, not a bug in this test.
- Running other camera-heavy apps at the same time - video calls or recording software running simultaneously can compete for camera bandwidth and processing.
- Expecting measured FPS in an unsupported browser - switch to a Chromium-based browser if you specifically need the measured frame-count reading.
Frequently Asked Questions
What's the difference between "Requested FPS" and "Measured FPS"?
Requested FPS is what your camera driver reports as its configured target frame rate; Measured FPS is the actual number of frames counted arriving at the browser over the test window, which can differ from the request under real-world conditions like low light.
Why does my measured FPS drop in a dark room?
Many cameras automatically lower their frame rate in low light to increase exposure time per frame, producing a brighter but slower video feed - this is expected camera behavior, not a fault.
Why does my browser show "Not supported" for measured FPS?
The requestVideoFrameCallback API needed for real per-frame counting currently has
limited support outside Chromium-based browsers.
Is any of my video recorded during this test?
No. Video is only displayed live and analyzed for frame timing; it is never recorded, saved, or transmitted anywhere.
Can I change which resolution my camera streams at?
This tool reports whatever resolution your camera and browser negotiate by default; changing that typically requires adjusting settings within the specific application requesting the camera, since this test is a diagnostic reader rather than a camera configuration tool.
Conclusion
Seeing your camera's real measured frame rate next to what it was asked to deliver gives you a genuine read on how it's performing right now, not just what the spec sheet claims. For a broader look at your camera feed and overall quality, pair this with the Webcam Tester.