Variable Frame Rate (VFR): What It Is and How to Fix Sync Drift

By Hieu Dinh

What Is Variable Frame Rate?

Variable frame rate (VFR) video doesn't show frames at a fixed interval. Instead, every frame carries its own timestamp, and the gap between frames can stretch or shrink during the recording. A clip labelled "30fps" may really be 30fps in one second, 24fps in the next, and briefly lower again when the device gets busy.

The alternative is constant frame rate (CFR): every frame is exactly the same distance apart, start to finish. At 30fps CFR, frame 900 is always at the 30-second mark.

Video players don't care much which one you give them. They read each timestamp and show the frame at the right moment. Problems start when you edit VFR footage, because many editors assume one fixed rate. That mismatch is the source of the classic symptom: the audio slowly drifts out of sync with the picture over a long clip.

For the basics of what frame rate itself means, start with what is frame rate in video.


Variable Frame Rate vs Constant Frame Rate

Variable frame rate (VFR)Constant frame rate (CFR)
Frame timingEach frame has its own timestampEvery frame equally spaced
Typical sourcesPhones, screen recorders, Zoom, webcamsCameras, OBS, editor exports
File sizeCan be smaller (skips identical frames)Slightly larger for static content
PlaybackFine in modern playersFine everywhere
EditingDrift, stutter, or sync issues in some editorsPredictable everywhere
Best forCapturingEditing and delivery

VFR is an efficient way to record. CFR is the safe way to edit. Most of the fixes below come down to converting one into the other at the right point in your workflow.


Where Variable Frame Rate Video Comes From

Phones

iPhones and most Android phones record with variable frame timing. In low light, the camera lowers the real frame rate so it can use longer exposures, which is why a dim indoor clip set to 30fps can play back at closer to 24fps. Background processing (stabilisation, HDR, thermal throttling) can also delay individual frames.

Screen recordings

Screen recorders often skip frames when nothing on screen changes. A one-hour tutorial where the slide sits still for 40 seconds doesn't need 1,200 identical frames, so the recorder writes fewer. macOS screen recordings, the Xbox Game Bar on Windows, Microsoft Teams recordings, and Zoom recordings commonly come out VFR.

Zoom is the one most people run into. Long meeting recordings dropped into Premiere Pro or DaVinci Resolve can drift by a second or more by the end. Zoom's desktop app has a setting for this: Settings → Recording → Optimize for 3rd party video editor. Turn it on before recording and the files behave much better in editors. If the recording is also too large to share, see how to compress a Zoom recording.

Webcams and capture apps

Webcams lower their frame rate in dim rooms for the same reason phones do. Browser-based recorders and some capture tools also write VFR.

What doesn't produce VFR

OBS Studio records at a constant frame rate. If the encoder can't keep up, OBS duplicates or drops frames to keep the timing fixed, which shows up as stutter rather than drift. Our OBS recording settings guide covers how to avoid that. Dedicated cameras also record CFR.

A different meaning: "VFR" on cameras

Some cameras, notably Panasonic's, have a mode called VFR that records at one frame rate and plays back at another for in-camera slow motion or time-lapse. The resulting file is constant frame rate. It shares the acronym, not the problem.


Why VFR Causes Problems in Editors

An editing timeline is a grid: 30 slots per second on a 30fps timeline. To place a VFR clip on that grid, the editor has to decide which frame goes in which slot. Some editors read every timestamp and map frames correctly. Others read the clip's average frame rate once and assume every frame is that far apart.

When the real timing differs from the assumed timing, three things can happen:

  1. Audio drift. Audio is sampled at a fixed rate (48,000 samples per second), so it stays on time. The picture slips. A clip that looks perfect at the start can be noticeably out of sync after 20 minutes.
  2. Stutter or judder. Frames land in the wrong slots, so motion looks uneven, especially on pans.
  3. Wrong duration. The clip shows up slightly longer or shorter in the timeline than in a player.

How badly each editor handles it varies. DaVinci Resolve expects constant frame rate media and is the most likely to drift. Premiere Pro handles VFR far better than it used to but can still struggle with long screen recordings. Final Cut Pro and iMovie generally cope well with iPhone footage. The reliable fix is the same for all of them: convert to CFR before editing.


How to Check If a Video Is Variable Frame Rate

MediaInfo (easiest)

MediaInfo is a free inspector for Mac, Windows, and Linux. Open the file and switch to the text or tree view. Under Video, look for:

  • Frame rate mode: Variable: it's VFR
  • Frame rate, Minimum frame rate, Maximum frame rate: how much it varies

A clip showing a minimum of 15fps and a maximum of 60fps will almost certainly cause trouble in an editor.

FFmpeg

If you already use FFmpeg, its vfrdet filter measures how many frames have irregular timing:

ffmpeg -i input.mp4 -vf vfrdet -an -f null -

The last line prints something like VFR:0.342 (1023/1966). VFR:0.000 means constant timing. Anything above zero means some frames are irregular, and the higher the number, the more variable the clip.


How to Convert Variable Frame Rate to Constant Frame Rate

Pick a target rate first. Use the clip's nominal rate (the one MediaInfo lists as the frame rate, or what the phone was set to). That's usually 30 or 60 for phone and screen footage, or 29.97 (30000/1001) if your project follows broadcast timing. Converting to the wrong rate works, but it adds or drops more frames than necessary.

Method 1: HandBrake (free, graphical)

  1. Open the clip in HandBrake.
  2. Pick a preset such as Fast 1080p30 or HQ 1080p30 Surround.
  3. In the Video tab, set Framerate (FPS) to your target, for example 30.
  4. Select Constant Framerate. (HandBrake's default is Peak Framerate, which keeps the file variable.)
  5. Click Start.

Keep the quality high (RF 18–20 for H.264) because this file is going into an editor, not straight to viewers. For more on HandBrake's quality settings, see the best HandBrake settings.

Method 2: FFmpeg (fast, scriptable)

ffmpeg -i input.mp4 -fps_mode cfr -r 30 -c:v libx264 -crf 18 -preset medium -c:a copy output.mp4
  • -fps_mode cfr -r 30 forces exactly 30 evenly spaced frames per second, duplicating or dropping frames where the original timing doesn't line up. (Older FFmpeg builds use -vsync cfr instead.)
  • -crf 18 keeps quality close to the source.
  • -c:a copy leaves the audio untouched, which is what keeps it in sync.

To convert a whole folder of screen recordings:

for f in *.mov; do
  ffmpeg -i "$f" -fps_mode cfr -r 30 -c:v libx264 -crf 18 -c:a aac -b:a 192k "cfr-${f%.mov}.mp4"
done

More FFmpeg recipes for shrinking files afterwards are in FFmpeg compress video.

Method 3: Convert inside your editor

Some editors can transcode on import. Premiere Pro, for example, can create proxies or you can render an intermediate in your editor's own format. This works, but a dedicated conversion before import is easier to reason about and lets you check the result first.


Does Constant Frame Rate Make Files Bigger?

A little. Converting to CFR fills timing gaps by repeating frames. A repeated frame costs almost nothing in H.264 or HEVC, because the encoder stores it as "same as before" rather than a new image. Phone footage usually grows by a few percent at most. Screen recordings with long static stretches grow more, since every skipped frame is now an actual (cheap) frame.

What really increases size is converting to an editing codec such as ProRes, which some workflows require. A 10-minute ProRes 422 file at 1080p30 is roughly 10GB. Once the edit is done and exported, that's the file worth compressing for sharing.


A Workflow That Avoids VFR Headaches

  1. Record however is convenient: phone, Zoom, or screen recorder.
  2. Check long clips with MediaInfo before you start editing.
  3. Convert VFR clips to CFR with HandBrake or FFmpeg, at the project's frame rate.
  4. Edit the CFR copies. Keep the originals until the project ships.
  5. Export at the same constant frame rate as the timeline. Our DaVinci Resolve and Premiere Pro export settings guides list sensible defaults.
  6. Compress the final export for wherever it's going.

That last step is where Compresto fits on a Mac. Exports from editors are often far larger than they need to be for Slack, email, or a client review link. Drop the file in, preview the output size, and export a smaller H.264 or HEVC version with hardware acceleration, in batches if you have a whole course or meeting series to process. If the source is a screen capture, reducing screen recording file size has more tips specific to that kind of footage.


FAQ

What is variable frame rate?

Video in which every frame has its own timestamp, so the interval between frames changes during the recording. Constant frame rate keeps the interval fixed.

Why does variable frame rate cause audio sync problems?

Editors that assume a fixed frame rate place VFR frames at the wrong times. Audio stays on time, the picture slips, and the drift grows over the length of the clip.

How do I know if my video is variable frame rate?

MediaInfo shows Frame rate mode: Variable. In FFmpeg, the vfrdet filter reports a VFR value above zero.

How do I convert variable frame rate to constant frame rate?

HandBrake: Video tab → set the frame rate → Constant Framerate. FFmpeg: -fps_mode cfr -r 30.

Do iPhones record variable frame rate?

Yes. They also lower the real frame rate in low light. Final Cut and iMovie handle it well; DaVinci Resolve is more likely to drift.

Does converting to constant frame rate increase file size?

Only slightly with H.264 or HEVC, because repeated frames are cheap to store. Converting to ProRes for editing increases size a lot.


Bottom Line

Variable frame rate is a sensible way for phones and screen recorders to save effort, and a common reason edits drift out of sync. Check long clips before editing, convert them to constant frame rate at your project's rate, and compress the final export once it's done.

Download Compresto for Mac →


Ready to compress your files? Join thousands of creators using Compresto ⚡