How to sync subtitles with video.
Out-of-sync subtitles come from one of three causes: a fixed offset, a frame-rate mismatch, or progressive drift. Each has a different 5-minute fix.
Subtitles fall out of sync for predictable reasons, and the cleanest fix depends on the cause. Watch the video and identify the pattern: are captions consistently late by the same amount, or does the gap grow as the video plays? Fixed-offset is a shift problem. Progressive drift is a frame-rate problem. The diagnostic takes 30 seconds; the fix takes 5 minutes.
Step by step
- 01Identify the patternPlay the video. If captions are off by the same amount throughout, it's a fixed offset. If captions start in sync and drift further off as the video plays, it's a frame-rate issue. If the drift is irregular or sudden, the SRT was timed against a different cut.
- 02For fixed offset: shift the SRTSoCaptions' shift-timing tool nudges every cue by the same amount. Test 200ms first, adjust as needed. Most platform upload offsets are in the 100–500ms range.
- 03For frame-rate drift: convert frame rateSoCaptions' frame-rate converter handles 23.976 ↔ 24 ↔ 25 ↔ 29.97 ↔ 30 fps in one click. Pick the source rate (the SRT's original) and the target rate (the video's actual fps).
- 04For irregular drift: re-transcribeIf the SRT was generated against a different edit (rough cut vs final cut), no math will fix it. Re-transcribe from the actual final video — Whisper handles 10–60 seconds per video.
- Fixed-offset shift takes 30 seconds
- Frame-rate conversion is lossless on text
- Re-transcription always produces a perfectly synced SRT for the current video
- All three fixes are free
- Diagnosing the wrong cause means applying the wrong fix
- Re-transcription requires re-editing if you'd hand-corrected the SRT
- Frame-rate drift compounds — small errors look big across long videos
- Some platforms re-pad audio on upload, requiring per-platform offsets
FAQ
Why are my subtitles drifting out of sync?+
Almost always frame rate. The SRT was timed against a 23.976 fps cut and your video is 24 fps (or vice versa). Convert the SRT to the video's actual fps using SoCaptions' frame-rate tool.
How do I shift all subtitles by 500ms?+
SoCaptions' shift-timing tool: paste the SRT, enter the shift in milliseconds (positive = later, negative = earlier), and download.
My subtitles are 1 second late at the start and 3 seconds late at the end. How do I fix?+
That's progressive drift, almost always a frame-rate mismatch. Convert the SRT to the correct frame rate; don't try to shift it.
Should I re-transcribe instead of trying to fix the SRT?+
If the SRT is auto-generated, yes — re-transcribing is faster than diagnosing. If you've hand-corrected the SRT, fix the timing first; re-transcribing means redoing the edits.
Burned-in (hardcoded) subtitles become part of the video pixels. They survive every cross-post and every download — at the cost of being un-toggleable. Here's when to use them and how to do it across SoCaptions, ffmpeg, Premiere, and CapCut.
Two cases: the video has soft subtitle tracks embedded, or the captions are burned into the pixels. Each needs a different tool.
AI translation is fast and free; human translation is slow and accurate. The right choice depends on your audience size, content type, and tolerance for cultural mistakes.