Sync Subtitles Online — Fix & Shift Subtitle Timing

Fix subtitles that are too early, too late, or slowly drifting out of sync. Use a constant time shift for a fixed offset, or a two-point resync to correct frame-rate drift. Works with SRT, VTT, ASS, SSA and SBV — 100% in your browser, no upload, no watermark.

Drop a subtitle file here, or click to browse
.srt  .vtt  .ass  .ssa  .sbv  (max 25 MB)
Shift SRTFix drifting VTTResync ASSTwo-point syncNo upload

How it works

1. Drop your subtitleLoad a .srt, .vtt, .ass, .ssa or .sbv file. The format and encoding are detected automatically.
2. Choose how to syncA constant shift for a fixed offset, or a two-point resync to correct progressive drift.
3. Sync & downloadTimestamps are recalculated locally. No upload, no account — download the corrected file instantly.

Why subtitles fall out of sync

Subtitles are just a list of text lines, each with a start and end time. When the times do not match the video, the words appear at the wrong moment. The cause determines the fix, and picking the wrong fix wastes time — so it is worth understanding the two main failure patterns before you click anything.

Fixed offset: early or late by a constant amount

This is the simplest and most common problem. Every line is off by the same number of seconds — the whole subtitle track was burned 2 seconds earlier than the audio, or a broadcaster inserted a 3-second intro card that the subtitle file ignores. The error does not grow; a line that should appear at 0:10 appears at 0:08 from start to finish. A constant time shift corrects this perfectly.

Drift: the error grows over the length of the film

A line near the start is roughly correct, but by the end the subtitles are twenty seconds behind. This is almost always a frame-rate mismatch. The subtitles may have been timed for a 25 fps PAL video while the movie you are watching runs at 23.976 fps (or the reverse). Because the two run at slightly different speeds, the gap between them widens steadily. A constant shift only moves the whole track; it cannot undo a changing gap, so you need a two-point resync that stretches or compresses the timeline.

Wrong or mixed encoding

Sometimes the timing is actually fine but the text looks like random symbols, which reads as "broken subtitles." That is an encoding issue, not a sync issue. Many Chinese subtitle files are saved as GBK/GB18030 and many Western files as Windows-1252; re-save them as UTF-8 and the problem disappears. This tool auto-detects the encoding before syncing.

Image-based subtitle tracks

DVD and Blu-ray often store subtitles as pictures (VobSub .idx/.sub, PGS) rather than text. Those cannot be shifted with a text tool — they would need optical character recognition first. If your source is an image-based track, extract it with dedicated software before syncing.

Constant shift vs. two-point sync vs. other fixes

Not every tool on the internet does the same thing. The table below shows what each approach can and cannot correct, so you can choose the right one before you start.

MethodFixed offsetProgressive driftText preservedBest for
Constant shift (this tool)YesNoYesSubtitles 1-5s early/late everywhere
Two-point resync (this tool)YesYesYesFrame-rate drift across a long film
Manual subtitle editorYesYesYesFine, per-line corrections by hand
Re-encode the videoNoNoYesWhen the audio itself is out of sync
Online "auto-sync" by audioSometimesSometimesYesWhen you have the audio track to analyse (uploads your file)

Syncing each subtitle format

The sync math is identical for every format — only the way timing is written down differs. This tool parses each format into a common internal list of start/end times, adjusts those times, and writes the result back out, so you can even change formats while you sync.

SRT (.srt)

SubRip is the most common format and the easiest to work with. Times look like 00:00:10,500 --> 00:00:13,000. A shift simply moves every timestamp; the text lines between them are copied unchanged.

WebVTT (.vtt)

WebVTT is the web standard and uses a dot instead of a comma: 00:00:10.500 --> 00:00:13.000. Any cue settings or voice tags are preserved through a plain shift; if you export to SRT those web-only extras are dropped, but the timing correction stays.

ASS / SSA (.ass, .ssa)

Advanced SubStation Alpha stores times as 0:00:10.50 with hundredths of a second. Because ASS carries styling — fonts, colours, positions, karaoke — this tool keeps the styling and only rescales the timestamps, so your fancy typesetting stays intact while the timing moves.

SBV (YouTube) and TXT

YouTube .sbv uses a comma-separated 0:00:10.500,0:00:13.000 range and works the same way. Plain .txt has no timing at all, so a sync has nothing to move — use it only when you want a readable transcript rather than timed captions.

Step-by-step: two-point resync (the drift fix)

Use this when the subtitles start roughly right but drift further out of sync toward the end of the video. The tool needs two reference points: where one cue is now and where it should be, measured early in the film and again late in the film.

  1. Play the video and find a clear spoken line near the start. Pause and read the player's time. In the "Cue currently at (time A)" box, type where that subtitle actually shows up; in "Should be at (time A)", type where it should be.
  2. Jump near the end of the film and repeat the same check for another obvious line. Fill in "Cue currently at (time B)" and "Should be at (time B)".
  3. You can click Use first & last cue times to auto-fill the "currently at" boxes with the real start time of the first and last line in your file, then just type the corrected targets.
  4. Sync. The tool computes the ratio between the two gaps and rescales every timestamp, so the start, the end, and everything in between all line up.

Tip: pick reference lines that are far apart (one early, one late) rather than two lines a few seconds apart. The wider the gap, the more accurate the correction, because small timing errors in reading the clock are diluted.

Step-by-step: constant shift

Use this when the whole subtitle track is off by the same amount from beginning to end.

  1. Estimate the offset by watching the first minute. If a line that should appear at 0:30 shows up at 0:28, the subtitles are 2 seconds early, so enter -2.
  2. Use the quick presets (-2, -1, -0.5, +0.5, +1, +2) to try a value fast, or type a precise decimal such as -1.5 or +3.25.
  3. Sync and check the first line. If it still looks slightly off, adjust the number by a fraction of a second and sync again — most sync problems are solved within one or two tries.

How to tell whether your subtitles are actually in sync

Before reaching for a tool, confirm the problem. Play the video with the subtitle open and find an obvious spoken line early in the film, then another near the end. Note the times the player shows for each.

Adding synced subtitles back to a video

Once the timestamps are corrected, getting them onto the video is usually just file placement. Put the subtitle next to the video with the same base name — movie.srt beside movie.mp4 — and most players, including VLC and Total Video Player Pro for Mac, load it automatically. For web video, point a <track> element at your .vtt file inside the <video> tag. To make the subtitles permanent, burn them in with a tool such as HandBrake or FFmpeg (ffmpeg -i movie.mp4 -vf subtitles=movie.srt out.mp4), or use our Burn Subtitles into Video tool. Containers like MKV and MP4 can also embed the subtitle track inside the video file itself, which removes the need for a separate file.

Troubleshooting common sync problems

The subtitles are consistently early or late

Use Constant shift and enter a negative value to bring cues earlier or a positive value to delay them. A fixed offset corrects a constant error cleanly in one step.

The subtitles drift further out of sync as the video plays

That is a frame-rate mismatch, for example subtitles timed for 25 fps played against a 23.976 fps video. Switch to Two-point sync and give the tool a reference at the start and another near the end so it can rescale the whole timeline.

Two-point sync made things worse

The two "currently at" times must be different, and the early/late pairing must be consistent — if you swap time A and time B by mistake the ratio flips and the film plays backwards. Re-enter the real times: where the cue is now, and where it should be, early and late.

Characters look like garbage after syncing

Sync does not change characters. The file was likely saved in a legacy encoding (GBK/GB18030 for Chinese, Windows-1252 for Western text). The tool auto-detects common encodings, but if yours is rarer, open the original in a text editor, re-save it as UTF-8, and load it again.

The synced file is empty or missing cues

The source may be empty, image-based (idx/sub or PGS), or in a layout this parser does not recognise. Image-based tracks cannot be shifted with a text tool. Confirm you are loading a real SRT, VTT, ASS, SSA or SBV file with timing lines.

Privacy: your subtitle file never leaves your device

Everything runs in JavaScript inside your browser tab. When you open a file, the browser reads it from disk into memory; the parsing, the timing math and the export all happen locally. No request carrying your file content is ever sent to our server, and there is nothing for us to delete afterwards. Because nothing is uploaded, there is no file size cap and no queue — even a two-hour film's subtitle file syncs instantly.

Working with several subtitle files

Sync one file at a time: drop it, choose the method, sync, download, then reset and drop the next. Because nothing is uploaded there is no queue and no waiting between files. If an entire set of episodes shares the same timing error — a common situation with a single fansub release — enter the same offset for each file so the whole set stays consistent. Keep your originals until you have confirmed the synced files play correctly, since a timestamp adjustment cannot be visually undone without the source.

Frequently asked questions

How do I fix subtitles that are ahead of or behind the video?

If every line appears at a constant offset — for example 1.5 seconds early or 3 seconds late — use the Constant shift mode. Enter the offset in seconds (negative to bring cues earlier, positive to delay them) and sync. The whole file slides by exactly that amount and the text and wording are untouched.

What if the subtitles get worse over time instead of staying off by a fixed amount?

That is drift, usually caused by a frame-rate mismatch such as 25 fps subtitles played against a 23.976 fps video. A constant shift cannot fix it. Use Two-point sync: tell the tool where one cue currently is and where it should be at the start of the film, and again near the end. The tool rescales the whole timeline so both points and everything between them line up.

Which subtitle formats can I sync?

SubRip (.srt), WebVTT (.vtt), Advanced SubStation Alpha (.ass), SubStation Alpha (.ssa), YouTube (.sbv) and plain text (.txt). The original timing is preserved during sync; you can also switch the output format at the same time, for example resyncing an SRT and exporting it as VTT.

Does this subtitle sync tool upload my file?

No. All parsing and timing adjustment happen in JavaScript inside your browser tab. Your subtitle file is read from your device and is never sent to any server, which also means there is no file size limit and no waiting for uploads.

Will syncing change the subtitle text or styling?

No. Sync only moves timestamps. For SRT, VTT and SBV the cue text is copied exactly. For ASS/SSA the timing is rescaled while the original styling and text are preserved; converting to a plain format such as SRT strips styling, but that is a format conversion, not a sync change.

Can I adjust the timing and convert the format in one step?

Yes. Pick the output format from the dropdown before syncing. For instance you can shift an SRT back into place and export it as WebVTT for an HTML5 video player, or standardize a drifting ASS file to SRT, all in a single download.

Why does my subtitle file look garbled after syncing?

Sync does not touch the characters, so garbled text comes from the original encoding. Many Chinese (GBK/GB18030) and Western (Windows-1252) subtitle files are saved in legacy encodings. The tool auto-detects the encoding before processing, but if the source uses something rarer, re-save it as UTF-8 in a text editor and load it again.

How do I check whether my subtitles are actually in sync?

Play the video with the subtitle open and find an obvious spoken line early in the film and another near the end. Note the times shown in the player. If both line up, a constant shift is enough; if the early line is correct but the late line drifts, you need the two-point resync.

Watching subtitled videos on your Mac?

Total Video Player Pro for Mac plays MKV, AVI, 4K and Blu-ray with automatic SRT/ASS subtitles, embedded subtitle tracks and full styling — no codec or converter needed.

Get Total Video Player Pro for Mac