stitch
← All posts

Variable Frame Rate: Does Your Phone Video Need Fixing?

October 27, 2026 · 7 min read

33.3 ms per frame on a constant 30 fps clip

Variable frame rate (VFR) means the gap between frames changes while the phone records, so a clip labelled 30 fps may not have evenly spaced frames. Constant frame rate (CFR) gives every frame the same duration, which at 30 fps is one frame every 33.3 ms.

Two timelines: CFR with every frame 33.3 ms apart, and VFR with uneven gaps, including one of about 35.7 ms.

For a creator who films and posts, VFR is fine. It plays correctly, and most video platforms read the timestamps correctly when you upload. It only causes trouble in editing software that expects every frame to last the same time.

If trimming takes is the bigger drain on your day, upload one raw take and get the first clip cut free, no card needed. The rest of this page is the check for VFR, with numbers.

Why phones record variable frame rate

Phones stamp each frame with the time it was actually captured. They do not invent frames to keep a perfect rhythm. VFR also saves storage and processing, because the phone can drop frames that are not needed in low-motion scenes. Smartphones are the most common source of VFR, and iPhone video uses it by default (sources: MediaConverter, ScienceInsights, EditLogic, all checked 2026-10-26).

What it looks like in numbers:

How to check for variable frame rate on your clip

Use the free MediaInfo app. You can do it on your phone or after you move the file to a computer.

  1. Open the video file in MediaInfo.
  2. Find the Video section.
  3. Read the line called Frame rate mode.
  4. If it says Variable, the file is VFR. If it says Constant, it is CFR.
  5. Note the reported frame rate on the line below it.

If you cannot check, assume phone recordings, screen captures and game clips are VFR. ffprobe can detect it too, but MediaInfo is the easier route (MediaConverter, Mydubly).

What goes wrong in editors

The usual symptom is audio drift. Video and audio slowly separate, and it often shows up only several minutes into a long recording. One source gives the example of a 10-minute screen recording ending a full second or more ahead of or behind the audio. It gets worse the longer the video runs.

Short takes are less exposed. As rough arithmetic only (my scaling, not a figure from the sources): if drift were steady at one second per 10 minutes, a 3-minute take would be off by about 0.3 seconds at the end. Real drift is not guaranteed to be steady.

TikTok's frame rate range

The numbers that matter more for most creators are TikTok's limits. These come from the Content Posting API media transfer guide (checked 2026-10-26), so they describe that upload route. Your in-app upload may differ.

SpecLimit
Frame rate23 to 60 fps
ContainerMP4 (recommended), WebM or MOV
CodecH.264 recommended
Side length360 to 4096 px
File size4 GB maximum

A 23.976 or 24 fps clip clears the floor. A 12 or 15 fps timelapse or slideshow export falls outside the range. On length, XConvert's guide (checked 2026-10-26) says all creators can post 3-minute videos and some can post 5 or 10 minutes. See how long a TikTok video can be for the full limits, and TikTok aspect ratio for the size side.

The same range as a number line (x marks a frame rate, not to scale):

fps    12 15      23 24  29.97                    60
       |  |       |  |   |                        |
-------x--x-------[==x===x========================]-------
       outside    inside: TikTok's 23 to 60 fps range

12 and 15 fps sit left of the 23 fps floor. 24 and 29.97 fps sit inside the range, and 60 fps is the top of it.

Worked example

Take one talking-head clip, filmed on a phone, and run the decision.

Assumptions (mine, replace with yours): you film 6 takes a day and spend 4 minutes trimming each by hand. That is 24 minutes a day before any format check.

Numbers from the sources: at 30 fps each frame lasts 33.3 ms. A nominal 30 fps file that dips to 28 fps has frames about 35.7 ms apart, 2.4 ms longer. That gap is tiny per frame. Drift comes from it adding up over minutes. TikTok's range is 23 to 60 fps, and the default length is 3 minutes.

StepWhat you readDecision
1. Frame rate mode in MediaInfoVariableThe file is VFR
2. Reported fps29.97 averageInside 23 to 60, so it clears TikTok's range
3. Length2 minutes 10 secondsUnder the 3-minute default
4. Upload as is?YesVFR plays and uploads fine
5. Convert to CFR?Only if your editor driftsOtherwise skip it

The check itself is 3 steps and takes about a minute. A conversion adds more. If you assumed 3 extra minutes for converting each of those 6 takes, that is 18 more minutes a day on top of the 24. Convert only the takes that drift, and the extra is often zero.

If your 24 minutes a day is the cost you want to cut, upload a raw take and the first clip is cut free, no card required.

Fix options if an editor drifts

Converting to CFR means re-encoding the video at a fixed rate. That is lossy like any lossy conversion, though at a bitrate close to the source the loss is hard to see.

  1. Open the file in HandBrake.
  2. Under frame rate settings, choose Constant Frame Rate.
  3. Pick Same as Source for the rate. A specific target such as 30 or 60 duplicates or drops frames, which can add slight artifacts when the original varied a lot.
  4. Export, then check sync near the end of the clip, because that is where drift shows.

Keep the shot frame rate where you can. For the web, 30 fps is a safe default, and 60 is worth keeping for sport and fast camera moves (MediaConverter, ScienceInsights, EditLogic).

An EditLogic guide on CapCut audio sync (checked 2026-10-26) gives the same route: convert with HandBrake to CFR at 30 or 60 using H.264 or H.265, then re-import. If the problem is preview lag only, it suggests a proxy at 720p or lower, and says proxies do not change export quality. For more on app choices, see CapCut alternatives for talking-head videos.

Preventing it on the phone

Most built-in camera apps have no CFR setting. Some third-party camera apps can force CFR, but at the cost of more storage and battery. Good light helps a phone keep a steadier rate. For regular phone footage, transcoding after recording is usually the more reliable route (ScienceInsights, MediaConverter).

If you only film and post, the cheapest rule is this: check one clip, and touch the format again only when an editor drifts. For the phone-side trimming steps, see how to edit TikTok videos.

When a take is ready to cut, upload it raw and get the first clip free, no card needed.

Frequently asked questions

Will TikTok reject a variable frame rate video?

The sources give no rule that rejects VFR. TikTok's Content Posting API guide lists a 23 to 60 fps range, so the reported frame rate matters more than the mode. Checked 2026-10-26.

What does a frame rate like 29.970030 mean?

It is the average rate the file reports. A VFR file often shows a number like this instead of a clean 30. Frame spacing around that average can still change from frame to frame.

Should I install a camera app that forces constant frame rate?

Some third-party camera apps can force CFR, but they cost more storage and battery. For regular phone footage, the sources say transcoding after recording is usually the more reliable route.

Does a 60 fps clip need converting to 30?

No. Keep the shot frame rate where possible. 30 fps is a safe default for the web, and 60 is worth keeping for sport and fast camera moves. 60 fps is also inside TikTok's 23 to 60 range.

Sources

  1. Media Transfer Guide
  2. Constant vs Variable Frame Rate, and Why Editors Complain About VFR Phone Footage
  3. Variable Frame Rate Explained: Check and Fix VFR
  4. What Is Variable Frame Rate and How It Works - ScienceInsights
  5. How to Fix CapCut Audio Out of Sync (Timeline vs. Render Delay)
  6. Best Video Format for TikTok: Size, Codec and 9:16 Specs