The differences
- Header
- VTT files must start with WEBVTT; SRT has no header.
- Timestamps
- SRT uses a comma for milliseconds (00:00:03,200); VTT uses a dot (00:00:03.200).
- Cue numbers
- Required in SRT; optional in VTT.
- Styling
- SRT has none officially; VTT supports cue settings and CSS-style styling.
- Where it works
- SRT: editors, desktop players, most upload forms. VTT: HTML5 video and web players.
The same cue in both formats
1 00:00:00,000 --> 00:00:03,200 Today we continue from the last session.
WEBVTT 00:00:00.000 --> 00:00:03.200 Today we continue from the last session.
Which one should you use?
- Uploading to YouTube, Vimeo, LinkedIn or Facebook: SRT.
- Importing into Premiere Pro, DaVinci Resolve or Final Cut: SRT.
- HTML5 <video> on your website, Video.js, Plyr, JW Player: VTT.
- Course platforms and LMSs: check their docs — most accept VTT, many accept both.
Converting between them
To convert SRT to VTT by hand: add WEBVTT and a blank line at the top, and replace the comma in each timestamp with a dot. In practice you rarely need to — the SRT generator and VTT generator give you both from every job.
Frequently asked questions
Can browsers play SRT files?
Not natively through the <track> element — browsers require VTT. Some JavaScript players convert SRT on the fly.