Guide
Converting SRT and WebVTT subtitles, and fixing their timing
A subtitle file is plain text, but two almost identical formats compete. SubRip (SRT) is what downloads and video editors usually give you, and WebVTT is what a web page needs when it plays a video with captions. They differ in small ways that break a file if you simply rename it, and both can arrive with timing that is a little off. This page converts between them in your browser and repairs the timing without sending the file anywhere.
How the formats differ
An SRT cue has a number, a time line such as 00:00:01,000 --> 00:00:03,500 and one or more lines of text. A WebVTT file starts with the word WEBVTT, uses a dot before the milliseconds, may leave out cue numbers, and can add settings after the times, such as line:0 or align:start. WebVTT also allows notes, style blocks and voice tags. The converter writes the header, changes the separators, drops the numbers when going to VTT, and renumbers from 1 when going to SRT.
A worked example
Press Sample to load a three-cue SRT file. The first cue shows Welcome to the <i>openWorkstand</i> demo., the second begins with {\an8}, an SRT convention for the top of the screen, and the third has two lines. The tool reports Input SubRip, Cues 3 and Output WebVTT. The result begins WEBVTT, then 00:00:01.000 --> 00:00:03.500 with the italic tag kept, then 00:00:04.000 --> 00:00:06.250 line:0 for the top-positioned cue, with the {\an8} text removed, and the third cue unchanged. Switch Convert to SubRip and the same text goes back with commas and numbers.
Shifting and frame-rate conversion
If every line is early or late by the same amount, type a number of milliseconds in the shift box: 2500 moves everything 2.5 seconds later. If the lines start in sync and drift further apart as the film plays, the file was timed for another frame rate. Set Timed for to the file’s rate and Convert to the video’s rate, for example 23.976 and 25. Every time is multiplied by 23.976 ÷ 25 = 0.95904, so a cue at one hour (3,600,000 ms) moves to 3,452,544 ms, which is 57 minutes 32.5 seconds. The two buttons below the boxes fill in the usual rates.
What the checker reports
After each conversion the page lists up to a dozen problems. A cue that overlaps the next one, a cue that ends before it starts, an empty cue, a line longer than 42 characters and a cue that shows more than 21 characters per second all appear with the cue number. These limits are common reading guidelines rather than rules of either format, so treat a warning as a prompt to look, not as an error.
Edge cases
Short fractions are read as decimals, so 00:01:00,5 means 60.5 seconds. Windows line endings and a byte order mark at the start of the file are handled. Tags that WebVTT does not allow, such as <font>, are removed when going from SRT to VTT, and ASS-style overrides are dropped. Switch on the strip option to remove all italic, bold and position codes. Text that contains the arrow --> is escaped in VTT.
Limits
Only SRT and WebVTT are supported. Styling beyond italic, bold, underline and a top position does not survive a conversion, and VTT features such as regions and CSS styles are dropped when going to SRT. The tool changes times by arithmetic; it cannot listen to the audio and correct an uneven drift. Everything happens locally.
Related tools
- LRC Lyrics Maker times song lyrics the same way for music players.
- Video Cutter & Trimmer trims the video the subtitles belong to.
- Extract Audio from Video pulls the sound out of the video for transcription.
- Audio Cutter cuts the sound to match edited subtitles.
Checked against the current version of the SRT to VTT Subtitle Converter on .

