Shift subtitle timing
Subtitles that are right except for when they appear.
Examples temporarily replace the input and settings. You can restore your previous work.
Paste or type above to see the result here.
Your files stay on your device
This tool runs entirely in your browser. What you paste is processed on your device and is never sent to a server, so it is safe to use with tokens, keys and unpublished text.
Example
Example: subtitles that come up 2.5 seconds early, moved later
A downloaded .srt shows every line 2.5 seconds before the actor speaks — at the start and still at 1:32:05 near the end, so it is an offset, not a frame rate. Type 2.5 under “Move everything by”, leave Frame-rate mismatch on None and Save as on The same as it came in.
- Every start and end time moves by the same 2.5 seconds; the cue numbers, the text and the line breaks stay as they were.
- Subtitles that come up late go the other way: with -1.5, line 1 starts at 00:00:00,000 instead of 00:00:01,200, and the rest move 1.5 seconds earlier.
- Copy or download the result and save it beside the video with the same name, such as film.mp4 and film.srt.
| Line | Before | After +2.5 |
|---|---|---|
| 1 | 00:00:01,200 --> 00:00:03,900 | 00:00:03,700 --> 00:00:06,400 |
| 2 | 00:00:04,500 --> 00:00:06,000 | 00:00:07,000 --> 00:00:08,500 |
| 3 | 00:41:10,000 --> 00:41:12,500 | 00:41:12,500 --> 00:41:15,000 |
| 4 | 01:32:05,250 --> 01:32:08,000 | 01:32:07,750 --> 01:32:10,500 |
The same file with every line 2.5 seconds later — the first at 00:00:03,700, the last at 01:32:07,750 — so the words appear as they are spoken, from the opening scene to the end.
How it works
- Open the .srt or .vtt in any text editor and paste the whole thing here.
- Play the video, find a line you can hear, and note how far out it is. If the subtitle comes up two seconds early, type 2.
- If the error grows as the film goes on, it is a frame-rate mismatch rather than an offset — pick the pair from the list instead.
- Copy or download the result and save it beside the video with the same name.
Frequently asked questions
- How do I know whether it is an offset or a frame rate?
- Check a line near the start and a line near the end. If both are out by the same amount, it is an offset. If the error at the end is much larger, the file was made for a different frame rate and needs stretching — usually 23.976 against 25, which drifts by about 2.5 seconds a minute, over two minutes by the end of a 50-minute episode.
- What happens to a line pushed before the start?
- It is dropped, and you are told how many. A cue that begins before the video does cannot be shown, and leaving it in makes some players give up on the file.
- How do I write the amount?
- 2.5, -1.2, 250ms, 1:30 or 00:00:02,500 all work. A minus sign moves the subtitles earlier.
- Does it change the text?
- No. Only the timestamps move; the lines, the cue settings and the line breaks come through exactly as they were. Saved as SRT, a VTT’s position settings are left out, as SRT has none.
- Can I convert SRT to VTT while shifting?
- Yes: set Save as to VTT (or SRT). The VTT gets its WEBVTT header and full stops in the times — 00:00:03.700 instead of 00:00:03,700 — and the cue numbers are left out, as the format allows.
- Can I shift only part of the file?
- No: every line moves by the same amount. If only the part after a certain scene is out, copy that part into the box, shift it, and paste it back in place of the old lines in a text editor.
- Is anything uploaded?
- No. It all happens in your browser.