Home β€Ί Guides β€Ί How to Fix Subtitles That Are Out of Sync

How to Fix Subtitles That Are Out of Sync

Almost every sync problem is one of four patterns, and each has a different fix. Ten seconds of diagnosis saves an hour of nudging timestamps that will not help.

First, find out which problem you have

Pick a line near the start of the video and note how far off it is. Then pick one near the end and do the same. Those two numbers tell you everything.

SymptomDiagnosisFix
Both cues off by the same amountConstant offsetShift the whole track once
Error grows through the fileFrame-rate driftResample by a ratio
Everything off after a certain pointSection slipSplit, fix the tail, rejoin
Picture and sound disagree tooNot a subtitle problemFix the video first

Pattern 1: constant offset

The most common case. Every cue is wrong by the same amount β€” usually because the subtitle file was made against a different cut of the video, or the source has an intro the captions do not account for.

To measure it, pause on a line you can identify, note the real time, and subtract the cue's timestamp. A line spoken at 00:01:30 whose cue reads 00:01:28 needs +2. Apply it once with the shift tool and the whole track lines up.

Pattern 2: progressive drift

The first cue is nearly right, the last is badly wrong, and the error grows steadily. No single offset can fix this β€” shifting until the middle lines up makes both ends worse.

Drift means the subtitle file's frame rate differs from the video's. The classic pair is 23.976 fps against 25 fps, the difference between NTSC-derived and PAL-derived masters. Over a two-hour film that is roughly four seconds of error by the end.

The fix is to scale every timestamp, not move it. The resync tool has the common conversions as presets:

  • 23.976 → 25 fps: multiply by 1.04271
  • 25 → 23.976 fps: multiply by 0.95904
  • 24 → 25 fps: multiply by 1.04167
  • Video plays at 1.1× speed: multiply by 0.90909

Why 23.976 is not 24

Historical accident. NTSC colour was fitted to existing black-and-white broadcasts by slowing the frame rate by 0.1%, giving 23.976 rather than 24. That 0.1% is invisible over a few seconds and ruinous over two hours β€” which is exactly the signature of drift.

Pattern 3: a section slipped

Sync is fine for the first half and wrong for the second. Usually a scene was cut or an intro removed after the captions were made.

A single ratio will not fix this either, because the error is a step, not a slope. Split the file at the break, fix the tail on its own, then rejoin the parts with the merge tool.

Pattern 4: the video itself is wrong

If audio and picture disagree with each other, subtitles are not the problem. Correct the audio delay first, then resync the captions against the corrected video β€” otherwise you tune them to a fault that will be fixed later.

Working out the correction without guessing

Do not nudge and re-check. Measure once:

  1. Find a cue near the start and one near the end.
  2. Note the real spoken time for each, from the video.
  3. Subtract each cue's timestamp from its real time.
  4. If the two differences match, it is an offset. If they differ and grow, it is drift.

For drift, divide the real time by the cue time at the end of the file. That quotient is your ratio β€” and it is more accurate than picking a named frame-rate preset, because it accounts for whatever actually happened to your file.

After the fix

Check three places: the first cue, a cue at the midpoint, and the last one. If all three sit right, the track is correct. Then run the file through Clean subtitles if it carries markup you do not want, and keep the original β€” resampling is reversible only if you still have the source.

Tools mentioned in this guide

SRT to VTT Converter

Convert .srt subtitle files to WebVTT (.vtt) for HTML5 video, right in your browser.

Open tool β†’

VTT to SRT Converter

Turn WebVTT files back into SubRip (.srt) for editors, players and upload platforms.

Open tool β†’

Remove Timestamps from Subtitles

Strip timestamps and cue numbers to get a clean, readable transcript.

Open tool β†’

Clean Up AI-Generated Subtitles

Remove sound cues, HTML tags, speaker labels and duplicate cues from auto-generated captions.

Open tool β†’

Shift Subtitle Timing

Move every subtitle cue earlier or later to fix out-of-sync captions.

Open tool β†’

Resync Subtitles by Frame Rate or Speed

Fix subtitles that drift progressively out of sync by resampling them to your video's frame rate or playback speed.

Open tool β†’

SBV to SRT Converter

Convert YouTube .sbv caption files to SubRip (.srt), right in your browser.

Open tool β†’

Merge Subtitle Files

Combine two SRT or VTT files into one track, with the second file appended after the first.

Open tool β†’

Subtitles to CSV Converter

Export SRT or VTT cues to a CSV spreadsheet with start time, end time, duration and text.

Open tool β†’

Split Subtitle Files

Cut one SRT or VTT track into two files at any timestamp, right in your browser.

Open tool β†’

Fix Garbled Subtitles (Encoding Repair)

Repair mojibake β€” subtitles showing é, Ò€ℒ or ΓΒΏΓ‘β‚¬ΓΒΈΓΒ²ΓΒ΅Γ‘β€š instead of real characters.

Open tool β†’

Subtitle Timing Checker

Audit an SRT or VTT file for cues that are too fast, too short, too long or overlapping.

Open tool β†’

ASS / SSA to SRT Converter

Turn SubStation Alpha (.ass, .ssa) subtitles into clean SubRip (.srt) β€” in your browser, with nothing uploaded.

Open tool β†’

SRT to ASS Converter

Turn SubRip (.srt) subtitles into a complete ASS v4+ script with a default style, ready for styled players.

Open tool β†’

TTML / DFXP to SRT Converter

Turn TTML and DFXP captions (.ttml, .dfxp, .xml) into SubRip (.srt) in your browser β€” including offset times such as 10s, 100ms and 30f.

Open tool β†’

Plain Text to SRT Converter

Turn a transcript β€” one line per caption β€” into a valid .srt file with evenly spaced timing you can retime later.

Open tool β†’

Last updated 2026-09-21. All tools run locally in your browser.