Subtitle Sync Tool
Fix subtitle timing against your actual video - free, private, no upload.
This tool fixes subtitle timing against your actual video, entirely in your browser - shift a constant offset, scale away frame-rate drift, or sync to a point while the video plays. Nothing is uploaded, and both files stay on your device.
100% private. Your subtitle file and video stay on this device - nothing is uploaded. Undo, export and autosave all run locally in your browser.
No video loaded - the editor works without one.
Load a video to see its waveform. Drag a cue block's edges to adjust timing.
Bulk actions
Shift all timings
Scale for frame-rate drift
Fixes subtitles that start fine but drift further out of sync as the video plays.
Sync to a point
Select a cue, play the video, then press M (or the button) exactly when that cue should start. Every cue shifts to match.
Find and replace
Validation 0
Keyboard shortcuts
| Space | Play / pause |
| [ / ] | Previous / next cue |
| I | Set selected cue's start to the playhead |
| O | Set selected cue's end to the playhead |
| Ctrl/Cmd+Enter | Split the focused cue at the cursor |
| Ctrl/Cmd+M | Merge selected cue with the next |
| M (during sync) | Mark sync point |
| Ctrl/Cmd+Z | Undo |
| Ctrl/Cmd+Shift+Z | Redo |
| Ctrl/Cmd+S | Export / download |
Why use this sync tool
Nothing is uploaded
Your subtitle file and video stay on your machine.
Three ways to fix timing
Shift for a constant offset, scale for frame-rate drift, or sync live against the video.
It's the full editor underneath
Text edits, undo, autosave and export all work here too, not just timing.
How to sync subtitles to a video
- Open your subtitle file and your video.
- Watch the video and check whether subtitles are early/late throughout, or drift further out as it plays.
- Constant offset: use Shift all timings by the number of seconds you're off.
- Progressive drift: use Scale with the matching frame-rate preset, or your own custom rates.
- Still not lined up? Select a cue, click Start sync, and press M exactly when that cue should start - every cue shifts to match.
Common subtitle sync problems and fixes
- Subtitles are out of sync from the start: if every line is early or late by roughly the same amount throughout, that's a constant offset - use Shift all timings.
- Subtitles drift further out as the video plays: that's a frame-rate mismatch, not an offset - use Scale, not Shift. The common case is 23.976fps timed subtitles played against a 25fps video, or the reverse; there's a preset for exactly that.
- The start lines up but it drifts later, or vice versa: you likely need both - scale first to fix the drift rate, then shift the small remaining constant offset.
- You don't know the exact offset or frame rates: use Sync to a point instead - play the video, mark the moment a specific line should start, and let the tool work out the shift for you.
Once your timing is fixed, convert formats with SRT to VTT or VTT to SRT, or open the full subtitle editor for text edits and validation. You can also browse all Meetrix features.
Frequently Asked Questions
Is this subtitle sync tool free?
Yes, free to use with no sign-up and nothing to install.
Is my subtitle file or video uploaded anywhere?
No. Both are read and edited entirely in your browser and are never sent anywhere.
What's the difference between Shift and Scale?
Shift moves every cue by the same fixed amount - use it when subtitles are early or late by a constant amount from start to finish. Scale stretches or compresses all the timing by a ratio - use it when subtitles start fine but drift further out of sync as the video plays, which is almost always a frame-rate mismatch.
What does the 23.976fps to 25fps preset actually fix?
A file timed for 23.976fps (common for film) played against a 25fps video (common for PAL broadcast) drifts by about 4% over the runtime - small at the start, seconds off by the end. Scaling by that exact ratio corrects it across the whole file in one action.
How does Sync to a point work?
Select the cue you're using as a reference, click Start sync, then press M at the exact moment that cue's line should start playing. The tool calculates the difference between where it currently starts and works out from your video and shifts the entire file by that amount.
Do I need to load the video to fix timing?
For Shift and Scale, no - you can apply them blind if you know the offset or the frame rates. Sync to a point needs the video, since it times against actual playback.
Captioning at volume? Meetrix builds transcription and captioning pipelines.
For teams captioning many videos, see our self-hosted Transcriber AMI.
Talk to Us