Subtitle Time Shifter
Subtitles appearing too early or too late? Shift every cue by a fixed amount, or pick two lines and tell the tool when they should appear to fix drift that gets worse over time. Works with SRT and WebVTT.
Open an .srt or .vtt file
or paste subtitles below
Shift later by 1500 ms. First cue now starts at 00:00:02,500.
Fix subtitles that don’t match the video
Few things are more distracting than subtitles that appear a second before or after the words are spoken. It usually happens when subtitles were made for a different cut of a video: one with a longer intro, an extra logo, a removed scene, or a different frame rate. This tool corrects the timing of SRT and WebVTT files in your browser, whether the problem is a simple delay or a gradual drift.
Method 1: shift all times
Use this when the subtitles are off by the same amount all the way through.
- Open or paste your subtitle file.
- Play the video and note a line of dialogue: when it’s actually spoken, and when its subtitle appears.
- Enter the difference in seconds or milliseconds.
- Choose “Later” if subtitles show up too early, or “Earlier” if they show up too late.
- Optionally start from a later cue if only part of the file is out of sync, then download the result.
Method 2: sync with two points
If the subtitles start in sync but slowly drift — say, half a second off after 20 minutes and two seconds off by the end — a single shift can’t fix it. The cause is usually a frame-rate mismatch, such as subtitles timed for a 25 fps European release played with a 23.976 fps video.
- Choose “Sync with two points”.
- Pick a cue near the start and enter the time it should actually appear, for example 00:00:12,300.
- Pick a cue near the end (the last cue is selected by default) and enter its correct time.
- The tool calculates a speed factor and an offset and applies them to every cue.
Mathematically, each new time is old time × speed + offset, where the speed and offset are chosen so both reference cues land exactly where you said. Choosing cues far apart gives the most accurate result.
Finding the right timings
- Use a video player that shows milliseconds, such as VLC or MPV, and pause on the first frame of a spoken line.
- Pick distinctive lines — a name, a shout, or the first line after a long silence — so it’s easy to match them.
- In VLC you can test an offset first with the subtitle delay keys (G and H), then apply that value here to fix the file permanently.
What the tool keeps and changes
Only timestamps change. Cue text, line breaks, styling tags, VTT cue settings and headers are kept, and the file stays in its original format. If a shift would move a cue before 0:00:00, it’s set to zero and you’ll see how many were affected. Everything runs on your device — your files aren’t uploaded.
Need a different format as well? Convert with the SRT ↔ VTT Subtitle Converter. Working from an edit decision list? The Timecode Calculator converts between timecode and frames, and Video to MP4 makes your video play everywhere.
Frequently asked questions
How do I know which direction to shift?
If subtitles appear before the words are spoken, shift them later. If they appear after, shift them earlier. Note the time a line is spoken in your video and compare it with its subtitle time to find the exact amount.
The subtitles start in sync but drift over time. How do I fix that?
That's usually a frame-rate mismatch, for example subtitles made for a 25 fps release played with a 23.976 fps video. Use 'Sync with two points': give the correct time for one early and one late line, and the tool stretches or compresses all timings to fit.
Can I shift only part of the file?
Yes. In 'Shift all times', set 'Starting from cue' to the first line that's out of sync — useful when a video has an extra scene or ad break partway through.
What happens if a shift makes times negative?
Cues that would start before 0:00:00 are set to zero, and the tool tells you how many were affected. You may want to delete those lines.
Does it keep my formatting?
Yes. Text, line breaks and styling tags are unchanged, and the file stays in its original format. To change formats too, run the result through the Subtitle Converter.