SRT vs VTT

SRT and VTT hold the same thing — timed lines of text — but VTT is the web standard and SRT is the desktop one. The HTML5 <track> element accepts only WebVTT, so a browser video player will silently ignore an .srt file. Offline players read both. The practical difference in the file itself is small: VTT starts with a WEBVTT header, uses a dot before milliseconds instead of a comma, and can carry positioning and styling that SubRip has no way to express.

Last reviewed 2026-09-07

Side by side

SRT (SubRip)VTT (WebVTT)
HeaderNone — the file starts with entry 1Must begin with the word WEBVTT
Milliseconds separatorComma: 00:00:03,233Dot: 00:00:03.233
Entry identifierRequired sequence numberOptional, and may be text rather than a number
PositioningNot specified; {\an8} works in some playersBuilt in: line, position, align, size
StylingA few HTML-like tags, support variesCSS through STYLE blocks and ::cue
CommentsNot supportedNOTE blocks
EncodingAnything in practice; UTF-8 by conventionUTF-8 required by the specification
HTML5 <track>Not acceptedThe only accepted format
Standardised byNo formal spec — a de facto standardW3C

The same two entries in both formats

1
00:00:03,233 --> 00:00:08,233
Puff pastry, 500 g

2
00:00:14,833 --> 00:00:19,033
Melted butter, 20 g
Brush the pastry with a thin layer
SubRip
WEBVTT

1
00:00:03.233 --> 00:00:08.233
Puff pastry, 500 g

2
00:00:14.833 --> 00:00:19.033 align:middle
Melted butter, 20 g
Brush the pastry with a thin layer
WebVTT — note the header, the dots, and the optional cue setting

Which one to use

What is lost in conversion

SRT to VTT loses nothing — the format only gains capabilities it does not have to use. VTT to SRT loses whatever the file used beyond plain timed text: cue settings, STYLE blocks, NOTE comments and region definitions have no SubRip equivalent and are dropped. Timings survive both directions to the millisecond.

Both conversions run in your browser, nothing is uploaded.

Convert SRT to VTT

Questions

Why does my SRT file not work in an HTML5 video player?+

The <track> element only accepts WebVTT. An .srt file is ignored without an error, which usually looks like the subtitles simply never appearing. Convert the file to .vtt and it works.

Is VTT better than SRT?+

It is more capable, not universally better. VTT adds positioning, CSS styling and comments, and is required on the web. SRT is simpler and read by more offline software. For a plain dialogue track that has to work everywhere, SRT is the safer choice.

Can I just rename .srt to .vtt?+

No. The file would still lack the WEBVTT header and would still use commas in the timecodes, so a strict parser rejects it. The change is small but it has to be made in the content, not the file name.

Do the timings change when converting?+

No. Only the decimal separator changes — comma to dot or back. Every start and end time stays identical to the millisecond.

More on subtitles