Why web video wants VTT
The HTML5 <video> element loads captions through a <track> tag, and that tag understands exactly one format: WebVTT. Players built on it — Video.js, Plyr, JW Player, the players inside most learning platforms and streaming back-ends — inherit the same rule. SubRip .srt is the format you are far more likely to have, because it is what subtitle sites, DVD rips and most editing suites produce. The two are close relatives, so converting is a matter of rewriting a few characters rather than re-timing anything.
Exactly what changes
- A
WEBVTTheader line is added at the top, followed by a blank line. - Timestamps swap the comma for a dot. Nothing is shifted.
- Cue numbers are kept as cue identifiers, which VTT allows and some players use for navigation.
- Inline
<i>,<b>and<u>tags survive, since VTT renders them. - ASS-style positioning codes such as
{\an8}are stripped; they mean nothing in VTT. - The file is read as UTF-8, with or without a byte-order mark.
One cue before and after:
14
00:02:17,440 --> 00:02:20,375
{\an8}<i>Nobody mentioned the second key.</i> WEBVTT
14
00:02:17.440 --> 00:02:20.375
<i>Nobody mentioned the second key.</i> Where SRT files come from
Subtitle communities such as OpenSubtitles distribute almost everything as SRT. Premiere Pro, DaVinci Resolve and Final Cut export it. Transcription tools, from Whisper to the caption downloaders people point at YouTube, default to it. Aegisub and Subtitle Edit save it. Whatever the source, the file is plain text: a number, a time range, one or two lines of dialogue, a blank line, repeat. That simplicity is why the conversion is deterministic and why this page has no settings.
After converting
Put the .vtt next to your video and reference it from the player, or upload it to the captions field of YouTube, Vimeo, Wistia or your course platform. If the video itself is not web-ready, MP4 to WebM and the Video Converter handle that in the same browser. VTT supports positioning and styling that SRT lacks; the converter does not invent any, so add cue settings in a text editor afterwards if a caption must sit at the top of the frame. To go back, use VTT to SRT.
Private and offline
Subtitles for unreleased films, internal training and legal depositions are sensitive. The conversion runs entirely on your device: the file is read into memory, rewritten by JavaScript and offered for download, with nothing uploaded or stored. After the first visit the page works without a connection, and a batch of files takes a moment rather than a queue.