How to Fix Subtitle Timing and Synchronization
Diagnose constant offset, progressive drift, overlaps, frame-rate mismatch, and auto-caption timing before choosing a repair.
A subtitle can be early for four different reasons, and each requires a different repair. Moving every cue by the same amount fixes a constant offset but cannot fix progressive drift. Editing individual cues may hide a frame-rate mismatch without solving it. Diagnose the error pattern first.
Measure at three points
Choose a clear spoken sound near the beginning, middle, and end. Record the audio time and the subtitle start time.
| Position | Audio begins | Cue begins | Error |
|---|---|---|---|
| 00:30 | 00:00:30.000 | 00:00:30.650 | +0.650 s late |
| 20:00 | 00:20:00.000 | 00:20:00.660 | +0.660 s late |
| 39:30 | 00:39:30.000 | 00:39:30.645 | +0.645 s late |
Nearly equal errors indicate a constant offset. Shift every start and end by about -650 ms.
Before:
12
00:00:14,500 --> 00:00:17,000
Save a copy before changing the timeline.
After:
12
00:00:13,850 --> 00:00:16,350
Save a copy before changing the timeline.
The Subtitle Time Shifter is appropriate for this uniform correction.
Progressive drift
If the opening is correct but the final cue is several seconds late, the error grows over time. Common causes include a 23.976/25 fps conversion, audio stretching, a different edit of the video, or timebase rounding.
Measure two reliable sync points and apply a proportional stretch, not a constant shift. If subtitle time S1 must map to video time V1, and S2 to V2, use:
scale = (V2 - V1) / (S2 - S1)
corrected = V1 + (original - S1) × scale
Test additional points after scaling. A single cut or missing scene creates a discontinuity, which needs a split timeline rather than one global scale.
Local timing errors
Auto captions often start after speech begins or leave a cue visible into the next sentence. Fix these locally. Lead-in should be sufficient for recognition without revealing dialogue noticeably early. End a cue after speech completes, but avoid covering a shot change or colliding with the next cue.
Check reading time before shortening. A 65-character cue displayed for one second is synchronized to the voice but unreadable. Reword or split it, then retime.
Overlapping cues
8
00:00:20,000 --> 00:00:24,200
The first cue stays visible too long.
9
00:00:23,900 --> 00:00:27,000
The next cue starts before it ends.
If simultaneous captions are not intentional, shorten cue 8 to leave a small gap or merge/resegment the text. The overlapping timestamp guide covers minimum gaps, stacked dialogue, and batch repair hazards.
Frame-rate mismatch clues
A ratio close to 25 / 23.976 or its inverse suggests a frame-rate conversion. Do not blindly apply that ratio: confirm the actual media frame rate and whether the subtitle source was frame-based. Drop-frame timecode rules are not the same as changing playback speed.
Acceptance test
After repair, watch the first two minutes, every edit boundary, a middle sample, and the ending. Run overlap validation and verify that no corrected start is negative. Save the transformation parameters with the file so another editor can reproduce the fix.
Timing is one stage of the complete YouTube subtitle workflow. Follow it with the quality checklist, especially after translation or resegmentation changes reading speed.