Subtitle Sync & Shifter: Fix Out-of-Sync Subtitles
Subtitle sync for files that are early, late or drifting. Shift every line by a few milliseconds, resync the whole file from two reference lines, or convert between 25 and 23.976 fps timing, the usual cause of subtitles that start fine and slowly fall behind. The fixed file is saved permanently, so every player shows it in sync. Nothing is uploaded.
- Runs on your device
- Browser APIs
- Works offline
Updated
Drop your subtitle files here
How to fix out-of-sync subtitles
Step 1: Drop your subtitle file (SRT, VTT, ASS and other text formats work).
Step 2: Pick the fix: Shift all for a constant delay, Two-point for drift that grows, Frame rate for PAL and film versions.
Step 3: Enter the values, for example +1500 ms if the subtitles appear 1.5 seconds too early.
Step 4: Press Sync and download the corrected file.
Good to know
Settings explained
- Fix
- Shift all: Constant delay
- Two-point: Drift that grows
- Frame rate: 23.976 ↔ 25 fps
- Shift by
- Positive = subtitles appear later, negative = earlier. 1000 ms = 1 second.
- First line now at
- Leave both “now at” times at 0:00 to use the file’s actual first and last lines.
Formats
Batch-friendly: add many files and they are processed one after another — if one fails, the rest still finish.
How it runs
- Built-in browser features
- Uses standard browser features only — nothing extra to download.
Shift, two-point or frame rate: which fix you need
Watch one line near the start and one near the end. If both are off by the same amount, shift. If the gap grows, the timing has to be stretched, either from two reference points or by a known frame-rate ratio.
| What you see | Mode | What you enter |
|---|---|---|
| Every line is early or late by the same amount | Shift all | The delay in ms: positive = later, negative = earlier |
| In sync at the start, worse towards the end | Two-point | When the last line should appear (and the first, if it is off too) |
| Drift of about 2.5 minutes per hour | Frame rate | 25 fps (PAL) subtitles on a 23.976 fps video, or the reverse |
| Some scenes fine, others off | Subtitle editor online | Retime the affected lines one by one |
Why subtitles get out of sync
A constant offset happens when the subtitles were timed for a version with a different start: an extra studio logo, a recap or a few seconds trimmed from a recording. Every line is wrong by the same amount, and one shift fixes it.
Drift means the subtitles were timed for a release that plays at a different speed. European PAL video runs at 25 frames per second, about 4% faster than the 23.976 fps film version, so a subtitle made for one slides further out on the other every minute.
How far subtitles drift at the wrong frame rate
This is how much the Frame rate mode moves a line, depending on how far into the file it is. The same numbers tell you how badly unsynced subtitles will be off.
| Subtitles → video | Stretch | At 10 min | At 1 hour | At 2 hours |
|---|---|---|---|---|
| 25 → 23.976 fps | ×1.04271 | +25.6 s | +2 min 34 s | +5 min 08 s |
| 23.976 → 25 fps | ×0.95904 | −24.6 s | −2 min 27 s | −4 min 55 s |
| 25 → 24 fps | ×1.04167 | +25.0 s | +2 min 30 s | +5 min 00 s |
| 24 → 23.976 fps | ×1.00100 | +0.6 s | +3.6 s | +7.2 s |
How to find the right subtitle offset
Play the video and pick a short, clear line. Note when it is spoken, then when its subtitle appears. If the subtitle comes 1.5 seconds before the voice, shift by +1500 ms; if it comes 0.8 seconds after, shift by −800 ms.
For Two-point, do the same with a line near the end. Leave both “now at” fields at 0:00 and the tool uses the file’s real first and last lines, so you only type where they should be.
Sync subtitles for Plex, Jellyfin or VLC permanently
Players can fix timing for one viewing (in VLC, the G and H keys change the subtitle delay), but the setting does not travel with the file. Fixing the file itself works everywhere. Save the result under the video’s name, such as Movie.en.srt next to Movie.mkv, and Plex or Jellyfin pick it up on the next library scan.
Tips & troubleshooting
A line that would end before 0:00 after a negative shift is removed, and the result says how many. Use a smaller shift if that is not what you want.
Two-point refuses reference lines less than half a second apart, or a stretch beyond 2×. Both mean a typo in the times.
ASS files keep their styles and override tags. Change Save as under Advanced settings to get SRT, VTT or ASS instead.
Fixing dual-language subtitles? Sync each file first, then combine them with merge SRT files.
Subtitle Sync / Shifter FAQ
How do I fix subtitles that are out of sync?
Find how far off one line is, enter that delay in Shift all (positive if the subtitles are early) and press Sync. If the delay grows during the film, use Two-point with a line near the end, or Frame rate for 25 vs 23.976 fps versions.
Why do subtitles start in sync but drift later?
They were timed for a version running at a different speed, usually a 25 fps PAL release on a 23.976 fps video. The gap grows by about 2.5 seconds every minute. The Frame rate mode stretches the timing back.
What is subtitle offset?
The constant time difference between when a line is spoken and when its subtitle appears. A positive offset makes subtitles appear later, a negative one earlier. 1000 ms is one second.
Can I sync subtitles to the video automatically?
Not by listening to the audio. This tool applies the shift or stretch you choose. If the subtitles are hopeless, auto captions can write new, correctly timed ones from the speech.
Is your subtitle file uploaded anywhere?
No. Your subtitle file is processed by your own browser on your own device. There is no server that receives files, so nothing is uploaded, stored or shared. You can even switch to airplane mode once the page has loaded.