Subtitles & captions in depth

How to Sync Subtitles with a Video: Offsets, Drift and Real Fixes

Out-of-sync subtitles come in two kinds. If every line is early or late by the same amount, it's an offset, and shifting all timestamps fixes it in seconds. If lines start right and get steadily worse, it's drift, usually from a frame-rate mismatch, and the file needs stretching, not shifting. If the gaps jump around, the subtitles were made for a different edit, and the honest fix is new subtitles.

4 min read · Updated

Diagnose first: three checks

Play the video with subtitles at three points: the first spoken line, the middle and near the end. Note how far off each is.

Same gap everywhere
Constant offset. The subtitle file and the video start at different points, often after a trimmed intro or an added logo.
Gap grows steadily
Drift. The timings were made at a different speed, usually a different frame rate, such as 23.976 versus 25 frames per second.
Gap jumps around
Different edit. Scenes were cut or moved after the subtitles were made. No single adjustment fixes it.

Fixing a constant offset

Shift every timestamp by the same amount. In a subtitle editor such as Subtitle Edit, the synchronisation menu has an option to adjust all times by a given value; Aegisub has a shift-times tool. Enter the gap (positive to make subtitles later, negative to make them earlier), save, and check again. Free subtitle editors compares the tools.

For a quick viewing fix without touching the file, players have delay controls: VLC's subtitle delay keys or synchronisation window shift subtitles while you watch, as covered in adding subtitles in VLC. That's temporary; anyone else playing the file sees the original timing.

Fixing drift from a frame-rate mismatch

Drift happens when subtitles were timed against one speed and the video plays at another. Converting between film's 23.976 frames per second and the 25 frames per second used in many PAL regions changes playback speed by about 4 percent (25 ÷ 23.976 ≈ 1.043), so a line that is right at the start is minutes out by the end of a feature-length film. The explainers on variable frame rate and on audio and video out of sync cover related problems in the video itself.

Two ways to fix it:

  • Change frame rate. Subtitle editors can convert timings from one frame rate to another. Choose the rate the subtitles were made for and the rate of your video.
  • Two-point sync. Pick a line near the start and a line near the end, tell the editor the correct time for each, and it stretches everything in between. Subtitle Edit calls this point sync. This works even when you don't know the frame rates.

When the edit changed: regenerate

If the gaps jump around, someone cut or moved scenes after the subtitles were made. You could re-time every cue by hand, but on a long video that takes far longer than making new subtitles from the final cut. Export the final version and generate fresh subtitles from it.

Example: a conference talk

An organiser has an SRT from the full livestream, but the published talk starts 6 minutes and 12 seconds in and has a coffee break removed. The first half is a constant offset, the second half a different one. Rather than splitting the file and shifting each part, he uploads the published video and gets a new SRT that matches it for 1 credit per minute.

Generating subtitles that match, with mydubly

Subtitles made from the exact file you publish start in sync. Upload the final video to the subtitle generator: the video stays on your device, only its audio is sent, and the SRT and VTT come back timed to that audio, in the spoken language or translated into one of 21 languages. Subtitle timestamp alignment explains how timings are derived from the speech.

Limits and prevention

  • Make subtitles last, after the edit is locked, music is final and the intro is trimmed.
  • Keep subtitles with the exact video they belong to; name them identically (subtitle file naming).
  • Automatic timing follows speech segments. Very fast exchanges or long pauses can give cues that start a little early or linger; small manual tweaks fix those, as subtitle timing guidelines describes.
  • Changing frame rate in a video editor after subtitling causes drift. Subtitle again after any conversion that changes speed.
  • SRT file not working covers files that don't load at all, which is a different problem.

Translated subtitles and dubbed audio

Translated subtitles made from the same file inherit the original's timing, so if the original is in sync, the translation is too. Problems appear when a translation is made from one version and used on another, or when an editor re-times only one language. Keep every language for a video in the same folder and regenerate them together after any re-edit. Dubbed audio has its own sync questions, such as lines that run longer in the new language; syncing translated audio with video explains how timing is kept, and translated subtitles covers reading speed when a translation runs long.

A two-minute test before publishing

Before publishing, jump to five points spread through the video and read the subtitle against the speech at each. Five matching points in a row almost always means the whole file is good; one mismatch tells you which of the three problems you have.

Frequently asked questions

Why are my subtitles a few seconds early?

Usually the video was trimmed at the start after the subtitles were made. Shift all timestamps by the gap.

Why do subtitles start in sync and drift later?

The subtitles were timed for a different speed, usually a different frame rate. Convert the frame rate or use two-point sync in a subtitle editor.

How do I shift all subtitle times?

Use a subtitle editor's adjust-all-times or shift-times tool, enter the offset, and save.

Can VLC fix subtitle sync permanently?

No. VLC's delay only applies while you watch. Shift the file's timestamps to make the fix permanent.

What if different parts are off by different amounts?

The video was edited after the subtitles were made. Regenerate subtitles from the final cut.

Does frame rate affect subtitles?

SRT and VTT store times, not frames, but converting a video between frame rates changes its speed, which makes subtitle timings drift.