Guide

SRT vs VTT: What's the Difference?

SRT and VTT both store timed text, and the files look almost the same. The differences are small but decide which players accept them.

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

SRT
1
00:00:00,000 --> 00:00:03,200
Today we continue from the last session.
VTT
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.