FPS Checker
Check what a browser can determine about a video's timing, and get the exact command that reveals the real frame rate.
Convert with this tool
or choose a file from your device — it is processed in this tab and never uploaded
Accepted: MP4, MOV, MKV, WebM and other containers
Files stay on your device. There is no upload, no queue and no watermark, so a conversion works even with the network switched off after the page has loaded.
Supported formats & processing
| Accepted input | MP4, MOV, MKV, WebM and other containers |
|---|---|
| Produced output | An inspection report with a downloadable JSON file |
| Processing | Web Audio API + canvas + native JavaScript encoders |
| Upload required | No — the file is read locally and never transmitted |
How to use this tool
- Add the video fileThe container header is parsed for codec and dimension information.
- Read the resolution and durationThese are confirmed by decoding the video metadata.
- Note the frame rate rowIt states honestly that the value is not exposed to JavaScript.
- Use the ffprobe command if you need the exact rateIt is printed on this page.
- Or set a known rateThe FPS converter can force the output to any rate you choose.
About this tool
This page exists because the honest answer is more useful than a number that might be wrong. Frame rate is stored in the MP4 stts box as a table of sample durations, or in Matroska as a default frame duration element. Reading it requires walking the container structure — and no browser API exposes it.
What the browser does give you is the decoded resolution and duration, which are useful for confirming a file matches its description. This checker reports those, explains the limitation plainly, and gives you the one-line ffprobe command that returns the exact frame rate in under a second.
Features
- Codec and resolution read from the container header
- Duration confirmed by decoding the video metadata
- Plain explanation of where frame rate is stored
- The exact ffprobe command for the definitive answer
- A practical alternative: force a known rate with the FPS converter
- No guessed values presented as facts
Browser limits on this page
Reading a video's frame rate in the browser
Browsers expose no frame-rate property for a video file. The reported rate is calculated from the container header when one is available and from the measured frame intervals of a decoded stream otherwise, so treat it as a measurement with a stated method rather than a declared value.
For an exact figure, ffprobe -v error -select_streams v:0 -show_entries stream=r_frame_rate -of csv=p=0 input.mp4 reads it straight from the container.
Frequently asked questions
What command shows a video's frame rate?
ffprobe -v error -select_streams v:0 -show_entries stream=r_frame_rate -of csv=p=0 input.mp4 returns the rate as a fraction, such as 30000/1001 for 29.97 fps. ffprobe ships with FFmpeg.
Can the browser read it from the video element?
No. HTMLVideoElement exposes duration, videoWidth and videoHeight, and nothing about timing granularity. The requestVideoFrameCallback API reports the presentation time of frames as they play, which can be used to estimate a rate, but only by playing the whole file in real time.
Why does the frame rate matter so much?
Delivering the wrong rate causes judder, and platform specifications are strict. It also affects file size directly, since a lower rate means fewer frames to encode.
What if I do not know the original rate?
Convert to a rate that matches your delivery target with the FPS converter. If the source rate was higher, the output will drop frames; if lower, it will duplicate them.