Skip to main content

Subtitle Converter

Convert SRT and WebVTT both ways, shift every cue, and retime between frame rates.

Input

Output

Format
Seconds to move every cue; negative moves them earlier.
Multiplies every time; picking two frame rates sets it.
Kind
A language tag for the VTT header, such as en or vi.

The converted subtitles appear here.

Runs in your browser; nothing you enter leaves this page.

How it works

Reading cues

Any block with a timing line (start --> end) becomes a cue: its text is everything under that line until the next empty line. WebVTT headers, NOTE and STYLE blocks and cue settings after the end time are skipped.

SRT uses a comma before the milliseconds and numbers each cue; WebVTT uses a full stop and starts with WEBVTT. The tool writes both from the same cues.

Shift and scale

Scale multiplies every start and end time, then Shift adds a fixed number of seconds. Nothing goes below zero.

Picking the rate the subtitles were made for and the rate the video plays at sets the scale for you, which fixes the slow drift you get when a 25 fps file plays at 23.976.

new time = old time × (source fps ÷ target fps) + shift

WebVTT headers

For VTT you can add a Kind (captions, subtitles or descriptions) and a Language tag to the header, which some players read to label the track.

More tools

All 238 tools