Convert SRT to VTT (WebVTT) online for free. Also VTT to SRT and YouTube SBV, with subtitle time shift and frame-rate fix. Runs in your browser, no upload.
Who Uses SRT to VTT Converter
Use it when: an HTML5 <video> needs WebVTT but you only have an SRT, a video player or editor wants SRT and you have VTT, YouTube Studio's SBV export has to go to another platform, subtitles are a few seconds early or late, or they drift out of sync because of a frame-rate difference.
SRT to VTT Converter Features
- SRT, VTT and SBV — Convert in any direction between SubRip, WebVTT and YouTube SBV, or export a plain transcript.
- Shift timing — Move every subtitle earlier or later by any amount, down to a tenth of a second.
- Fix frame-rate drift — Rescale timing from 23.976 to 25 fps (or any pair) when subtitles slowly drift out of sync.
- Never uploaded — Conversion runs in your browser, so subtitles for unreleased work stay on your device.
How to Use SRT to VTT Converter
Add, convert, download.
- Add your subtitles — Drop an .srt, .vtt or .sbv file, or paste the text.
- Pick a format — Choose VTT, SRT, SBV or TXT. Shift timing or fix frame rate if needed.
- Download — The converted file updates live. Download it or copy the text.
Frequently Asked Questions
How do I convert SRT to VTT?
Drop your .srt file onto the page. The tool reads it and shows a WebVTT version next to the original straight away. Press Download VTT to save it. Commas in the timestamps become dots, the WEBVTT header is added and the cue numbers are dropped, which is all WebVTT needs.
What is the difference between SRT and VTT?
Both list subtitles with start and end times. SRT (SubRip) numbers each cue and uses a comma before the milliseconds. WebVTT starts with a WEBVTT line, uses a dot, and adds styling, positioning and speaker tags. Browsers only accept VTT in an HTML5 <track> element; most desktop players and editors prefer SRT.
Why won't my SRT file work with HTML5 video?
The <track> element only reads WebVTT. A browser given an SRT file silently shows nothing. Convert it to VTT, point the track's src at the .vtt file, and serve it with the text/vtt content type.
How do I fix subtitles that are out of sync?
If every line is off by the same amount, enter that amount under Shift timing: a positive number delays the subtitles, a negative one makes them appear earlier. The +1s and -0.1s buttons help you home in. If the subtitles start in sync and drift further off as the film goes on, the problem is frame rate, not offset.
What does the frame-rate option do?
Subtitles timed for a 23.976 fps release drift when played against a 25 fps PAL release of the same film, because PAL plays about 4% faster. Choose the frame rate the subtitles were made for and the frame rate of your video, and every timestamp is rescaled so the drift disappears.
Can I convert YouTube SBV captions?
Yes. YouTube Studio exports captions as .sbv. Drop the file in and convert it to SRT or VTT for other platforms, or go the other way and create an SBV to upload to YouTube.
Are formatting tags kept?
Italic, bold and underline are kept in both SRT and VTT. Font colour tags are kept in SRT, which supports them, and removed for VTT, which does not. VTT speaker tags become a 'Name: ' prefix in SRT and SBV so you don't lose who is speaking.
My subtitles show strange characters like é. Can this fix them?
Usually, yes. Older subtitle files are often saved in a Windows encoding rather than UTF-8. The converter detects this, reads the file correctly, and always saves the output as UTF-8, which every modern player understands.
Can I get a plain transcript from a subtitle file?
Yes. Choose TXT as the output format. You get the dialogue with all timings and tags removed, one subtitle per line, ready to paste into a document or a blog post.
Is my subtitle file uploaded?
No. The file is read and converted by JavaScript in your browser and never leaves your device, which makes the tool safe for unreleased films, client projects and private recordings.
SRT, WebVTT and SBV: what each format is for
SRT, short for SubRip, is the oldest and most widely supported subtitle format. It is a plain text file of numbered cues, each with a start and end time and one or two lines of text. VLC, Plex, Premiere Pro, DaVinci Resolve, most smart TVs and almost every subtitle download site use it. Its timestamps put a comma before the milliseconds, as in 00:01:02,500.
WebVTT, or VTT, was designed for the web. It looks very similar, but the file must begin with the word WEBVTT, timestamps use a dot instead of a comma, and cue numbers are optional. It also supports features SRT lacks: positioning a cue at the top of the screen, aligning text, styling with CSS classes and marking who is speaking. Most importantly, it is the only format browsers accept in the HTML5 <track> element, so any site that plays its own video needs VTT.
SBV is YouTube's own format, the one YouTube Studio offers when you download captions. It drops the arrows and cue numbers and puts the start and end times on one line separated by a comma. YouTube accepts SRT and VTT uploads too, so SBV mostly matters when you want to take YouTube's captions somewhere else.
Choosing is usually decided for you by the destination. Building a website with its own <video> element, or a player such as Video.js, Plyr or JW Player: use VTT. Importing into an editor, loading into VLC or a TV, or sending to a translator: use SRT, which every tool on the list reads. Uploading to YouTube, Vimeo, Facebook or LinkedIn: SRT works on all of them. If you are unsure, keep an SRT master copy and convert it to VTT when a web player asks for one, because SRT is the format most likely to be readable in ten years' time.
| SRT | WebVTT (VTT) | SBV | |
|---|---|---|---|
| Timestamp | 00:01:02,500 | 00:01:02.500 | 0:01:02.500 |
| Header line | None | WEBVTT | None |
| Cue numbers | Required | Optional | None |
| Positioning and styling | Basic tags only | Yes | No |
| HTML5 <track> element | No | Yes | No |
| Typical use | Players, editors, downloads | Web video players | YouTube caption export |
The same cue at one minute, two and a half seconds, written in each format.
How the conversion works
The converter first works out which format it has been given. A file that starts with WEBVTT is VTT; a file whose timings are two times separated by a comma is SBV; anything with arrow-style timings is treated as SRT. It is tolerant of real-world files: hours can be missing, milliseconds can have one to three digits, Windows and Unix line endings both work, and stray text between cues is ignored rather than breaking the file.
Each cue is then read into a start time, an end time and its text, sorted into order, and written out in the format you picked. SRT output is renumbered from one. VTT output gets the WEBVTT header and keeps any positioning settings that came from a VTT source. Formatting is translated rather than copied blindly: tags one format can't display are removed so they don't appear on screen as literal text, and a VTT speaker tag turns into a 'Name: ' prefix where the target format has no equivalent.
Text encoding is handled too. Older subtitle files are often saved in a Windows code page instead of UTF-8, which is why accented letters sometimes show up as é or as question marks. The file is checked as UTF-8 first and re-read as Windows-1252 if that fails, and the converted file is always written as UTF-8. If a cue has a timestamp that can't be read, it is left out and you are told how many were skipped.
Fixing subtitles that are out of sync
There are two different ways subtitles go wrong, and they need different fixes. The first is a constant offset: every line appears, say, two seconds late from the first scene to the last. That happens when the video was trimmed, a studio logo was added or removed, or the subtitles were made for a release with a different intro. Fix it with Shift timing. Enter the delay in seconds, using a negative number to move subtitles earlier, and use the quick buttons to adjust by a second or a tenth of a second until the lips match.
The second is drift: the first scene is in sync but the gap grows, until by the end of a film subtitles are a minute or more out. That is a frame-rate mismatch. Films are usually 23.976 frames per second, but PAL television and many European releases run at 25, which plays the same footage about four percent faster. Subtitles timed for one play progressively out of step with the other. Set the frame rate the subtitles were made for and the frame rate of your video, and every timestamp is scaled to match.
The two fixes can be combined, and both are applied before the file is converted, so you can fix sync and change format in one pass. A good way to check is to look at a line near the start and one near the end of the video: if both are off by the same amount you need an offset, and if the second is off by more you need a frame-rate change. Cues that a negative shift would move before the start of the video are dropped, and the tool tells you how many.
Related: srt to vtt, srt to vtt converter, convert srt to vtt, srt to webvtt, subtitle converter online, srt to vtt for html5 video