Subtitle Sync Fixer
Processed locally in your browser — nothing is uploaded.
Quick answer
A sync fixer re-times subtitles that are both offset and drifting — wrong at the start and getting steadily worse. You give it two anchor points: the correct time of the first cue and the correct time of the last. It solves a straight-line map, t′ = a·t + b, and rescales every cue in between. It all runs in your browser; nothing is uploaded.
How to subtitle sync fixer
Load the out-of-sync file
Drop your .srt, .vtt or .ass file in, or paste the text. Play the video alongside it so you can read the two correct times off the dialogue.
Set the two anchors
Enter the time the FIRST line is actually spoken and the time the LAST line is actually spoken. The tool computes the scale and offset from those two points.
Export the re-synced file
Every cue is remapped and the preview updates. Download the corrected subtitles in the original format, or copy them to the clipboard.
What does a two-point linear re-sync actually do?
A plain shift adds the same number of seconds to every cue. That only works when the whole file is wrong by a constant amount. A linear re-sync is more powerful: it stretches or squeezes the timeline as well as sliding it. Give it two known-good times and it solves for a scale (a) and an offset (b) so that every timestamp t becomes t′ = a·t + b.
Two points define one straight line, and subtitle drift is linear, so two anchors are all it takes to nail the entire file — the first cue lands where you said, the last cue lands where you said, and everything between is interpolated exactly.
a = (newLast − newFirst) / (oldLast − oldFirst)
b = newFirst − a · oldFirst
t′ = a · t + b (applied to every start and end time)When do you need this instead of a shift?
It comes down to whether the error is constant or growing. If your captions are a fixed second or two out from beginning to end, a simple offset is the right, faster tool. If they line up early on but wander further apart as the film runs, no single offset can catch them — the gap itself is changing — and you need the rescale.
| What you observe | Error type | Tool to use |
|---|---|---|
| Off by the same amount all the way through | Constant offset only | subtitle shifter |
| Good at the start, worse and worse by the end | Offset + drift (wrong scale) | Subtitle Sync Fixer (this tool) |
| First line right, last line right, middle floats | Pure scale error | Subtitle Sync Fixer |
| Correct in patches, jumps at scene cuts | Re-cut video | split then fix each part |
It fixes offset and drift at once
The reason two anchors beat a shift is that they correct both errors in a single pass. The offset term b slides the whole file so your first cue lands on time; the scale term a stretches or squeezes it so your last cue lands on time too. A file that is a second late at the start and drifting a further few seconds by the end is the exact case that defeats a shift and is solved cleanly here — one correction, no iterating.
Is the file uploaded to re-sync it?
No. The scale and offset are computed and applied in your browser as plain arithmetic; the file is parsed, remapped and rebuilt in memory. Nothing is transmitted — open DevTools, watch the Network tab while you export, and you will see no upload. Pre-release screeners and confidential captions stay on your machine.
Related subtitle tools
If the drift is caused by a known PAL/NTSC frame-rate mismatch, the subtitle speed changer fixes it from the two frame rates alone. For a constant error, reach for the subtitle shifter; for line-by-line work, the subtitle editor. Once the timing is right, add the subtitles to your video to lock them in.
Your files never leave your device
Processed locally in your browser — nothing is uploaded. You can verify it yourself: open your browser’s developer tools, watch the Network tab, and use the tool — no upload request is ever made.
Frequently asked questions
How is this different from just shifting the subtitles?
A shift only slides the whole file by a fixed amount. This tool also stretches or compresses it, so it can fix subtitles that start slightly off and drift further out — something a shift can never do.
What two times do I enter?
The real spoken time of the first cue and the real spoken time of the last cue. The tool reads the file’s existing first and last times and solves the line that maps old to new.
My first line is already correct but the end drifts — can I fix that?
Yes. Keep the first anchor at its current time and set only the last anchor to the correct time. That produces a pure scale change pinned at the start.
Do I need to know the frame rate?
No. The linear method works purely from two on-screen times, so you never have to identify the frame rate. If you do know it is a PAL/NTSC issue, the speed changer is an even quicker route.
Will this keep my formatting and styling?
Yes. Only the start and end timestamps are recomputed. Cue text, italics and ASS styling pass through unchanged, and the file is exported in its original format.
What if the middle cues still look slightly off after fixing?
That usually means one anchor time was read a little inaccurately, or the drift is not perfectly linear because the video was re-cut. Re-check both anchors, or split the file at the cut and fix each half.
Can it push a cue before zero?
The map can in theory produce a negative time if your first anchor is earlier than the original; the tool clamps at zero so no cue is given a negative timestamp.