Fix your subtitle timing
Two kinds of drift are fixable without re-transcribing anything: every caption off by the same amount, or every caption drifting further out as the video runs. Tell the tool below which one you have and it fixes the file directly. Nothing is uploaded.
Start transcribing, freePositive delays every caption, negative moves it earlier. Use this when every caption is off by the same amount everywhere in the file.
Drop an .srt, .vtt, or .sbv file here
or click to choose one. It is fixed in this page and never uploaded.
Why there are two separate fixes
A constant offset and proportional drift look similar on screen but have different causes, and the fix for one makes the other worse. Shifting a file that actually has a frame-rate mismatch corrects one moment and leaves every other moment further off than before, since the error was never the same size everywhere.
A constant offset means something moved the zero point: the subtitle track sits at the wrong position on the timeline, the video has a slate or countdown the transcript skipped, or the sequence starts at a non-zero timecode. Shifting every timestamp by the same amount undoes exactly that.
Proportional drift means the captions were timed assuming one frame rate and are playing at another. The classic pairs are 23.976 against 24 and 29.97 against 30, about 0.1% apart, invisible in the first minute and obvious by the tenth. Rescaling multiplies every timestamp by the ratio between the two rates, which is the exact inverse of how the drift was introduced.
What this can't fix
A caption that is wrong only in the middle, while its neighbours are correct, is neither of these. It's a segmentation problem, where a line was split at a point the timing doesn't actually support. There is no honest mechanical fix for that; it needs re-timing from word-level data, which is what forced alignment produces in the first place.
See how to tell the three apart in more detail on the drift diagnosis page linked below.
Frequently asked questions
Does this work on FCPXML or Premiere XML files?
No, only SRT, WebVTT, and SubViewer. FCPXML and Premiere XML describe a whole timeline, not just cue timing, so shifting or rescaling one safely would mean touching more than the captions.
Will this fix drift that only affects some lines?
No. That's a segmentation problem, not a timing-model problem, and there's no honest automated fix for it. Re-export from a transcript with word-level timestamps instead.
Is my file uploaded anywhere?
No. Reading, fixing, and rebuilding the file all happen in your browser using the same functions the main editor exports through.
How do I know which frame rates to pick for rescaling?
The 'built for' rate is whatever the captions were originally timed at, often whatever the source video's frame rate was. The 'plays at' rate is your current sequence or player's frame rate. If you're unsure, try the common NTSC/film pairs (23.976↔24, 29.97↔30) first, since those are the most frequent mismatch.
Ready to try it?
Try it free without an account. Sign in to download your file, plus 15 minutes and 5 transcriptions a month.
Open the subtitle generatorNeed more than that? See pricing : one-time packs from $5, and nothing expires.