Skip to content

Video stuttering causes and fixes with a free timing lab

Find where video stuttering starts compare frame gaps and troubleshoot creator exports with an original timing study a local CSV analyzer and an ffprobe workflow

Free local timing tool

Inspect the gaps between frames

Paste a single column of timestamps in milliseconds. Your text stays in this browser. No video upload or generation is required.

Three to 10000 rows up to ten minutes. Keep the header timestamp_ms and retain duplicates. Do not sort an out of order capture to make it pass.

Samples
9
Observed intervals per second
25.000
Mean gap in ms
40.000
Median gap in ms
40.000
P95 gap in ms
40.000
Largest gap in ms
40.000
Zero length intervals
0
Gaps over twice the median
0

Supplied media timestamp cadence only not measured screen playback or a dropped frame count

P95 uses the nearest rank method. Long gaps mean strictly greater than twice the median. These observations do not identify a cause or prove that frames were dropped.

Original authored timing study showing steady and burst timestamps with the same average interval rate

Video stuttering is an interruption or unevenness in motion that you notice during playback. Start by locating the problem: does the saved file repeat the same hitch on different players, does only the editing preview struggle, or does the problem appear only after an upload? Those observations lead to different fixes.

This guide focuses on creator exports and AI video review. Work through the checks in order, keep an unchanged source, and compare one intervention at a time. The free timestamp tool measures gaps in supplied data. It cannot repair a video, inspect your computer or decide whether a generated character moved correctly.

Why is my video stuttering

A visible hitch can originate in the footage, the edit, the encoded delivery, or the playback environment. A sequence can also have evenly spaced frames while showing uneven motion inside those frames. Diagnose the layer before spending credits on another generation or converting every clip to a different frame rate.

What you observeNext useful checkWhat to preserve
Only the editor preview strugglesCompare a short exported section in another player and evaluate the editor proxy or preview settingsThe original source and export settings
The saved file hitches at the same moment on multiple playersInspect adjacent frames around that moment and the media timestamp sequenceA timestamped observation and the unchanged file
Only the published version looks unevenCompare the local export with the processed upload at the intended playback qualityThe delivered file and platform processing state
The AI subject jumps despite regular timestampsReview shape identity contact and camera continuity across framesThe accepted reference and exact generation attempt
A live stream pauses while the saved media looks smoothSeparate receipt timing from media presentation and playback observationsClock basis and collection method

Check a short section before changing the whole project

  1. Identify one visible hitch and note the file, player, approximate time and playback quality.
  2. Save an unchanged copy and export a short section surrounding the problem.
  3. Play the local section in a second player or device and compare the same moment.
  4. Step through neighboring frames to check repeated imagery, a sudden position jump or an inconsistent generated object.
  5. Inspect timestamps if the cadence remains uncertain, keeping their units and origin attached.
  6. Change one setting or replace one shot, then compare again against the original observation.

Do not use a thumbnail or a single high quality frame as the acceptance test. A camera move, walking cycle or product interaction needs a continuous review. If the problem cannot be reproduced, record the conditions that changed instead of declaring the footage fixed.

Frame rate and frame pacing answer different questions

An average count over an interval can conceal pauses and bursts. In our authored example, both sequences have nine timestamps and eight intervals over 320 milliseconds. Both therefore report 25 observed intervals per second. The steady sequence has eight gaps of 40 milliseconds. The burst sequence has six gaps of five milliseconds and two gaps of 145 milliseconds.

Original timestamp diagram showing evenly spaced points and clustered points with the same average interval rate
Original authored timestamp exercise not an encoded video or captured screen

The example isolates timing arithmetic. It does not establish how a particular display would present either sequence. An encoded frame rate, a source presentation timeline, a network receive log and a physical display measurement are separate observations. Keep those names in your notes so a clean result in one does not conceal an unmeasured problem in another.

Use the free frame timing lab

Choose the steady or burst example in the timing lab, then compare the mean, median, P95 and largest gap. Paste your own single column CSV with the header timestamp_ms. Select media presentation for file timestamps or receive callback for delivery observations. The tool retains zero length intervals and rejects decreasing timestamps.

The observed rate is the number of intervals divided by their elapsed time. The final frame duration is not supplied, so this is not a certified codec frame rate or video duration. P95 uses nearest rank. The long gap indicator counts intervals strictly greater than twice the median; when the median is zero, that threshold is undefined. There is no universal pass mark.

Download the steady fixture, burst fixture, study calculations and declared calculation helper. Your pasted data is processed locally. The tool does not upload footage, decode a video or infer why a gap occurred.

Extract media timestamps with ffprobe

The official ffprobe documentation describes selecting streams, showing frames and choosing machine readable output. With an installed ffprobe, run this against a local file you can inspect. It selects the first video stream and asks for frame timestamps in seconds.

ffprobe -v error -select_streams v:0 -show_frames -show_entries frame=best_effort_timestamp_time -of json input.mp4 > frames.json

Our small local converter rebases those timestamps to the first frame and converts seconds to milliseconds. Save it alongside the JSON and run uv run python ffprobe-to-timing.py frames.json > timing.csv. Paste the resulting CSV into the lab with media presentation selected. The converter rejects missing, nonfinite, decreasing or oversized data instead of silently skipping frames.

We executed this extraction on the synthetic source used in the StreamEval exercise: it produced 400 timestamps from zero to 15960 milliseconds with 40 millisecond intervals. That verifies this extraction example, not the cadence of an unrelated file. A variable frame rate source may legitimately have varying presentation intervals. Inspect the workflow and content before treating every variation as a defect.

Choose a fix that matches the observed layer

If only the editing preview struggles, evaluate a lower preview resolution or proxy workflow in your editor and compare the exported test. If the saved file has a repeatable hitch, inspect the source, timeline and export around that moment before replacing material. Keep the intended delivery rate explicit when mixing clips rather than repeatedly converting them without a reference.

If the source itself contains discontinuous generated motion, a timing conversion may leave that discontinuity intact. Revisit the shot direction, reference and accepted take. For an AI drama scene, compare the actor’s position, prop contact and screen direction. For a product video, inspect the object silhouette and demonstration through the action. These are content checks beyond timestamp arithmetic.

For a processed upload, wait until the intended playback version is available and compare it with the same local export. Record the player and quality setting. Avoid attributing a platform specific playback issue to the model merely because the source was generated.

Keep browser callbacks separate from screen timing

MDN documents requestVideoFrameCallback and distinguishes media time, submission for composition and expected display time. A callback or expected time is not a measurement of light from a physical screen. Our CSV analyzer makes no such measurement.

The StreamEval workflow guide includes a real CPU mock receipt log, where a completed session and acknowledged instructions still do not establish a successful visible edit. Use that example when evaluating interactive video systems or building a review process for live controls.

Finish the shot and retain the comparison

Keep the original file, changed file, export settings and a short note about the observed hitch. Review the complete accepted output at normal speed and inspect its important transitions. Use the frame interpolation guide for a separate motion synthesis decision and the multi-shot workflow for scene continuity.

When you need new source material, create a focused shot in Clout Image and Video or plan connected coverage in AI Cinema. Judge the saved result against your story and timing brief. The lab helps inspect the timeline evidence; your final acceptance still requires watching the actual video.

Sources and testing

Semrush US desktop overview checked October 25 2026 showed video stuttering volume 210 KD21 global volume 1400. Frame pacing volume 140 KD18 was researched but is outside the target range and is not combined with this demand. Official ffprobe and MDN references checked. Timestamp fixtures are original authored data not encoded video or model output.

Questions, answered

Frequently asked questions

Why is my video stuttering

First locate the problem by comparing the unchanged saved file across players and checking whether the hitch repeats at the same moment. Preview export source motion and upload playback can require different checks.

Can a video average the right frame rate and still have uneven gaps

Yes. Our authored steady and burst examples both report 25 observed intervals per second while their largest gaps are 40 and 145 milliseconds respectively.

Does the tool detect dropped video frames

No. It analyzes supplied timestamps and does not know the expected frame count or directly measure a display. Long or zero length intervals need contextual investigation.

Can I use ffprobe timestamps in the tool

Yes. Select one video stream export the frame JSON and use the supplied local converter to rebase seconds into milliseconds. Select media presentation as the basis.

Does the timing lab upload my video

No. It processes pasted CSV text locally and does not upload or decode video. You can download the input and derived report.

Will frame interpolation fix all video stuttering

No. Timing gaps generated motion discontinuities editor previews and playback environments are different problems. Identify the observed layer before choosing an intervention.