Frame rate fixer
Convert variable frame rate to constant
Phone and screen recordings do not put their frames on a fixed clock, and a timeline that assumes one can show them out of time with the sound. This page reads the file first, tells you whether that is the case, then re-encodes it with every frame locked to a standard rate and keyframes as close as you want.
Keyframes
Also accepted by Live, per the same article. About half the growth.
Files with a full picture on every frame grow fast. With a budget set, the page plans a bitrate and picture size, measures the real size as it encodes, and restarts at a smaller picture when the encoder will not go that low. If even the smallest picture is over, it says so.
Drop the video to check and prepare
or click to browse
Supports MP4, WebM, MOV, AVI up to 2048MB
Why timelines drift, and what the fix does
A video player does not care when frames arrive. It shows each one for as long as the file says. An editing timeline that assumes every frame lasts the same fraction of a second lays the audio out on that assumption, and when the frames came at uneven gaps the picture can slide against the sound. Phones, the Windows Game Bar, QuickTime screen recording and many capture apps write files like this, because writing a frame only when there is one to write saves battery and space. OBS Studio writes a constant rate unless you change its settings.
The fix is to put every frame on a fixed clock. The tool reads the time of each decoded frame, works out which slot it belongs in at the rate you chose, and writes one frame per slot. A frame that lands in a slot already taken is dropped. A gap in the recording, for example a second where nothing changed on screen, is filled by repeating the last frame. The audio is copied without re-encoding when it is already AAC, and encoded to AAC otherwise; its timing is not changed, so after the conversion picture and sound share one clock.
While it is re-encoding anyway, the tool can also bring the keyframes closer. Uploads usually carry a full picture every one to ten seconds and store only changes in between, which is why a timeline stutters when you drag through them. Choose a keyframe on every second frame for ordinary editors, or every frame for Ableton Live, which asks for that in its help centre. Both options make the file larger. The page shows the expected size before you start, and with a size budget set it measures the real size while encoding and restarts at a smaller picture if the encoder is heading over, because browser encoders do not always go as low as they are asked.
What the output looks like
| Setting | Value | Notes |
|---|---|---|
| Container | MP4 | The plain kind, with the index at the end, which every editor and media player opens. |
| Video codec | H.264 | The codec timeline tools most commonly decode without extra software. |
| Frame rate | Any standard rate | Pre-filled with the rate the file is closest to. Change it in the dropdown. |
| Keyframes | Every frame, every second frame, or left to the encoder | Closer keyframes mean smoother scrubbing and a larger file. |
| Picture size | Unchanged, capped at one thousand and eighty pixels tall, or scaled to meet the size budget | Scaling keeps the shape of the picture. Rotation metadata is baked into the frames. |
| Audio | Kept as AAC, or removed | Copied without re-encoding when it is already AAC, otherwise encoded to AAC. Its timing is not changed either way. |
| Size budget | One, two or four gigabytes, or none | Planned first, then checked against the real encoder output; a run heading over the budget restarts at a smaller picture. The page says what it changed. |
Where this helps
Screen recordings for an editor
Recordings from the Windows Game Bar, QuickTime screen recording or a phone go into a timeline that assumes a steady clock. Lock them to the rate your project uses before importing, so the clock cannot be the reason picture and sound disagree.
Phone footage for a music timeline
A phone clip whose frames are not on a fixed clock is the one thing a digital audio workstation cannot correct for you. Locking the clock here removes that cause before the clip goes in.
Game captures
Capture software writes whatever frame rate the game managed. Convert to a steady sixty or thirty before the capture goes anywhere near a timeline.
Scrubbing a long interview
A one hour talking head with keyframes every ten seconds is painful to scrub. Re-encode with a keyframe every second frame and the playhead follows your hand.
Frequently asked questions
What is variable frame rate?
It means the time between one frame and the next is not fixed. A recorder that writes a frame only when the picture changes, or when the device has a free moment, produces a file like this. Media players handle it. A timeline that assumes a steady clock may not.
How do I know if my video is variable frame rate?
Drop it on this page. The report checks whether each frame sits on the slots of a fixed clock, counts the ones that do not, and says constant or variable next to the frame rate. Anything from a phone, a screen recorder or a game capture is worth checking.
Will converting to constant frame rate fix audio drift?
When the drift comes from uneven frame timing, yes: the picture is placed on a fixed clock and the audio keeps its original timing, so they agree from the first second to the last. Drift from two separate recording devices with different clocks is a different problem and needs a stretch in the editor.
Which frame rate should I pick?
The one the file is closest to, which the page fills in for you. If the footage is going into a project that already has a rate, pick that instead. Picking a higher rate than the recording has only repeats frames; picking a lower one drops frames.
Does this reduce quality?
The picture is decoded and encoded again, so there is a generation loss. The bitrate is set well above what uploads use, roughly three times as much per pixel for keyframe-every-frame output, unless the size budget forces a lower bitrate or a smaller picture, which the page tells you before you start.
Why is the output bigger than the input?
Because frames that share a full picture every few seconds are cheap to store, and frames that each carry a full picture are not. The expected size appears under the settings before you start. If it is too large, choose every second frame instead of every frame, cap the height, or set a tighter size budget.
Can I do this without uploading the file?
That is the only way this page works. The browser decodes and encodes on your own machine with its built-in video decoder and encoder, which use the computer's video hardware when the browser has access to it, and the finished file is written to a private folder inside the browser and then downloaded from there. Nothing is sent to a server.
Related Tools and Resources
Video keyframe checker
Read a file without changing it: keyframe spacing, exact frame rate, codec.
Prepare video for Ableton Live
The strict version of this page, set up for Live and its error messages.
Trim video
Cut the part you need before re-encoding a long recording.
Compress video
Make the finished edit small enough to send.