🎬 Subtitle Resync
Shift SRT/VTT subtitle timestamps by offset, scale for FPS conversion, and convert between formats.
About this tool
Subtitle files often drift out of sync with video — a subtitle track ripped from a different release, or subtitles timed for 23.976 fps played against a 25 fps PAL video. This tool fixes both problems: apply a fixed time offset (positive or negative) to shift every cue, and scale timestamps to convert between frame rates.
Example: a subtitle file is 2.5 seconds too early. Set the offset to +2500 ms and every cue moves 2.5 seconds later. Or convert a 23.976 fps subtitle to 25 fps — set the scaling from 23.976 → 25 and all timestamps are adjusted proportionally.
Both SRT (SubRip) and VTT (WebVTT) formats are supported. The tool auto-detects your input format, and you can choose to output in either format — useful when migrating from one format to the other.
FAQ
Why do my subtitles drift out of sync over time? ›
The most common cause is frame-rate mismatch. A subtitle timed for 23.976 fps played against a 25 fps video will drift by roughly 4% — about 2.4 seconds per minute. Use the FPS scaling (23.976→25) to fix this. A constant offset across all cues usually means the subtitles were extracted from a different release with a different intro or logo.
What is the difference between SRT and VTT? ›
SRT (SubRip) is the most widely supported subtitle format, using plain text with numeric indices and comma-separated milliseconds. VTT (WebVTT) is the HTML5 standard, using dot-separated milliseconds and supporting optional cue identifiers, CSS styling, and metadata headers. Both store the same timing and text data.
Does negative offset work? ›
Yes. If your subtitles are too late, enter a negative offset (e.g. -3000 ms). Cues are clamped so start times are never negative — the first cue stays at 00:00:00.000 and later cues shift proportionally.