Subtitle conversion and timing
Convert plain SRT and WebVTT cues and shift their timing with millisecond precision for a changed video lead-in.
- 1Add input
- 2Adjust settings
- 3Get your result
Tool input and files are processed in this browser without being uploaded.
Before you start
Convert plain SRT and WebVTT subtitles and shift every cue by an exact millisecond offset. Choose pasted text or one UTF-8 subtitle file, then download a new SRT or WebVTT file.
How to use this tool
- Choose pasted subtitles or one UTF-8 SRT/WebVTT file. Keep the original.
- Choose SRT or WebVTT output and an offset in seconds with up to three decimal places; positive delays cues and negative advances them.
- Check the cue count and first/last times, then reopen the downloaded subtitle file in the target player.
Supported inputs and limits
Up to 10,000 plain cues; offsets must be whole milliseconds within ±24 hours. Negative or reversed timings and unsorted starts are rejected. WebVTT cue identifiers and settings, NOTE, STYLE, REGION, rich tags and character references are unsupported rather than silently lost.
Text stays in the browser. Pasted input is limited to 1 MiB; one UTF-8 .srt, .vtt or .txt file is limited to 10 MiB. The output does not overwrite the original.
Worked example
Example input
1 00:00:01,000 --> 00:00:03,000 Hello world
Example options
{"offset": 1.5, "format": "vtt"}Example output
WEBVTT 00:00:02.500 --> 00:00:04.500 Hello world
When something does not work
Up to 10,000 plain cues; offsets must be whole milliseconds within ±24 hours. Negative or reversed timings and unsorted starts are rejected. WebVTT cue identifiers and settings, NOTE, STYLE, REGION, rich tags and character references are unsupported rather than silently lost.
Frequently asked questions
Can I shift all subtitle times together?
Yes. Set a whole-millisecond offset from −86,400 to +86,400 seconds. Positive values delay and negative values advance every cue.
Will formatting and cue identifiers survive conversion?
No. This tool accepts plain cue text. Rich tags, character references, WebVTT cue identifiers and cue settings are rejected so they are not silently dropped.
What should the example produce?
The sample starts at 00:00:02.500 and ends at 00:00:04.500 in WebVTT. Check synchronization in the target player.
Documentation & further reading
Related tools
Save a video frame
Capture a still image from a video and save it as PNG.
Video information
Inspect video duration, resolution, codecs, frame rate and file size.
Mute video
Remove every audio track from supported MP4 and WebM videos without re-encoding the picture.
Trim video
Trim supported WebM video and review its actual export range.