Neatbo.

Subtitle conversion and timing

Convert plain SRT and WebVTT cues and shift their timing with millisecond precision for a changed video lead-in.

Browser-local processingInputFile / TextOutputSRT / WebVTTUp to 10 MiB per file · File limit: 1
  1. 1Add input
  2. 2Adjust settings
  3. 3Get your result

Tool input and files are processed in this browser without being uploaded.

Your input

Inputs are kept temporarily in this tab when switching tools. Refreshing or closing clears them; large results may need to be regenerated.

⌘ / Ctrl + Enter to run
Subtitle source
0 characters · 0 bytes
Options

Complete the required options first. You can keep the defaults for the rest.

Positive values delay subtitles; negative values bring them forward. For example, 1.5 delays them by 1.5 seconds.

Preparing the tool…

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

  1. Choose pasted subtitles or one UTF-8 SRT/WebVTT file. Keep the original.
  2. Choose SRT or WebVTT output and an offset in seconds with up to three decimal places; positive delays cues and negative advances them.
  3. 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