Why subtitles drift out of sync

Captions that are right at the start and wrong at the end are a different problem from captions that are wrong everywhere by the same amount. The size and shape of the error tells you the cause, and only one of the two is a transcription problem.

Start transcribing, free

First: constant offset, or growing drift?

Check a caption near the start and one near the end. If both are late by the same amount, you have a constant offset. If the one at the end is much further out than the one at the start, you have drift. They have different causes and different fixes.

Growing drift is a frame rate mismatch

Drift proportional to elapsed time means the captions were built for one frame rate and played at another. The usual pair is 23.976 against 24, or 29.97 against 30: a 0.1% difference, which is one frame every 33 seconds and about 3.6 seconds per hour.

A larger ratio means a bigger mismatch. 25 against 23.976 is about 4%, which is two and a half minutes of error per hour and obvious within the first minute.

The fix is to re-export the subtitles at the frame rate of the sequence, not of the source video. They are not always the same: a clip is conformed when you drop it on a timeline of a different rate, and your captions are not.

Constant offset is a starting point problem

If everything is late by the same two seconds, nothing is wrong with the timing model. Something moved the zero point: the subtitle track was placed at the wrong position on the timeline, the video has a slate or countdown the transcript did not include, or the sequence starts at a timecode other than zero.

In Resolve and Premiere, this is fixed by moving the subtitle track rather than re-exporting. Exports here start at zero, so a sequence starting at 01:00:00:00 will need the track offset to match.

Captions that are wrong in the middle only

Neither of the above. Individual lines landing wrong while their neighbours are correct is a transcription and segmentation problem: a line split at a point the timing does not support. This is what per-word timing prevents: with a time for every word, splitting a line gives both halves times the audio actually supports rather than an estimate from character counts.

Drop frame is not the cause of any of this. It changes how timecode is labelled, never which frame a caption lands on. If your timecode display and your captions disagree, look at the sequence start timecode instead.

Frequently asked questions

My subtitles are fine for a minute then slowly get worse. Why?

A frame rate mismatch, almost certainly 23.976 against 24 or 29.97 against 30. The error is proportional to elapsed time, so it is invisible early and obvious later. Re-export at the sequence's frame rate.

Everything is exactly two seconds late. Is that the frame rate?

No. A constant offset is a starting point problem: the track is in the wrong place, the sequence starts at a non-zero timecode, or the source had a slate the transcript did not. Move the track rather than re-exporting.

Can I fix drift by shifting the whole file?

Not properly. Shifting corrects one moment and makes everywhere else worse, because the error grows. Re-export at the correct frame rate instead.

How do I find my sequence's frame rate?

In Premiere, sequence settings. In Final Cut, the project's video properties. In Resolve, the timeline settings; note that a timeline can differ from the project default.

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 generator

Need more than that? See pricing : one-time packs from $5, and nothing expires.