Guide

SRT vs VTT: differences and which to use

SRT and VTT (WebVTT) both store timed text captions in plain text, and they look almost identical. SRT is the older, universal format accepted by almost every editor, player and upload form. VTT is the web standard required by the HTML5 video <track> element and adds optional styling and positioning. Use SRT by default and VTT for web players.

Need the other format? The subtitle converter turns SRT into VTT and back, plus ASS, SBV and TTML, instantly in your browser.

How to convert SRT to VTT (or back) with Videozify

  1. Open the Subtitle converter.
  2. Drop your .srt or .vtt file onto the box.
  3. Choose the target format: VTT for web players, SRT for editors and TVs.
  4. Press Convert subtitles; it finishes instantly.
  5. Download the new file and upload it next to your video.

Open the subtitle converter →

What an SRT file looks like

SRT (SubRip Text) started with a DVD subtitle-ripping tool in the early 2000s. Each cue has a sequence number, a time range with comma decimals, one or two lines of text, and a blank line:

1 / 00:00:01,000 --> 00:00:03,500 / Hello and welcome.

There's no official specification, which is why minor variations exist, but every major tool reads the basic form. Formatting is limited to simple tags like <i> and <b>, which some players ignore.

What a VTT file looks like

WebVTT is a W3C standard designed for HTML5 video. The file starts with the line WEBVTT, timestamps use a dot instead of a comma (00:00:01.000), and cue numbers are optional:

WEBVTT / 00:00:01.000 --> 00:00:03.500 / Hello and welcome.

VTT adds cue settings for position, alignment and line, CSS styling through the ::cue selector, voice tags for speakers, NOTE comments and chapter or metadata tracks. Most players support only basic positioning, so treat styling as optional.

Key differences

  • Header: VTT requires WEBVTT on the first line; SRT has none
  • Timestamps: SRT uses a comma (00:00:01,000); VTT uses a dot (00:00:01.000)
  • Cue numbers: required in SRT, optional in VTT
  • Styling: minimal in SRT; positioning and CSS in VTT
  • Standard: SRT is a de-facto format; VTT is a W3C standard
  • Web: HTML5 <track> requires VTT; browsers won't load SRT

Which platforms need which

SRT: Premiere Pro, DaVinci Resolve, Final Cut Pro (import), CapCut, VLC, most smart TVs and media players, LinkedIn, Facebook and most course and video platforms' caption upload forms.

VTT: any website using the HTML5 <video> element with <track>, players like Video.js, Plyr, JW Player and Vimeo's player, and many e-learning tools. Several video platforms accept both.

If in doubt, keep an SRT master and convert to VTT when a web player asks for it.

Converting by hand

For simple files you can convert SRT to VTT in a text editor: add WEBVTT and a blank line at the top, and replace the comma in every timestamp with a dot (only in timestamps, not in the text). Going back, remove the header, number the cues and swap dots for commas. It's error-prone on long files, which is why a converter is safer.

Encoding and line breaks

Both formats should be saved as UTF-8. VTT requires it; SRT files from older Windows tools may be in Windows-1252, which garbles accents on the web. Line endings (LF or CRLF) are accepted by most players, but some strict web parsers prefer LF.

Positioning and styling in practice

VTT cue settings look like this: 00:00:01.000 --> 00:00:03.500 line:10% position:50% align:center. That would place the caption near the top of the frame, useful when the bottom has on-screen text. Browser support for these settings is decent in Chrome, Safari and Firefox, but custom web players may override them. SRT has no positioning at all, so captions always appear in the player's default location.

Styling with CSS (::cue { color: yellow; background: rgba(0,0,0,.8) }) applies to all captions on a page. It's handy for matching a site's design, but it lives in the website's stylesheet, not the VTT file, so it doesn't travel with the captions.

Using VTT on your own website

To add captions to an HTML5 video, place a <track> element inside <video> with kind="subtitles" (or "captions"), src pointing to the .vtt file, srclang set to the language code, a label, and default on the track that should show first. The VTT file must be served from the same origin, or with CORS headers, and with the text/vtt content type, or browsers will refuse to load it.

Multiple <track> elements give viewers a language menu in the browser's built-in player.

Accessibility: captions vs subtitles

Strictly, subtitles transcribe or translate dialogue for viewers who can hear, while captions also describe sounds for deaf and hard-of-hearing viewers, such as [door slams] or [upbeat music]. Both SRT and VTT can carry either. VTT distinguishes them with kind="captions" vs kind="subtitles" on the HTML track element, and also supports kind="descriptions" for audio description text.

Which to keep as your master

Keep SRT as the master copy of your captions, because it's the simplest and most widely accepted. Convert to VTT for web players and to ASS when you need styled burned-in captions. Edits should always go into the master, then be re-exported, so different formats don't drift apart.

Quick decision guide

  • Uploading captions to a video platform or editor: SRT
  • Adding captions to your own website's HTML5 video: VTT
  • Need caption positioning or speaker voices on the web: VTT
  • Smart TV, VLC or a USB stick: SRT
  • Styled karaoke or anime subtitles: ASS, then convert as needed

Converting VTT back to SRT

When converting VTT to SRT, positioning settings, styling, NOTE blocks and voice tags are dropped, because SRT can't represent them. Cue numbers are added and the timestamps get commas. The text and timings come across exactly. Check any cues that relied on positioning, such as captions moved to the top to avoid on-screen text, since they'll now appear at the bottom.

Other formats you may meet

ASS/SSA supports rich styling and is common for anime and karaoke. SBV is a simple format some web tools export. TTML/DFXP is XML used in broadcast and streaming. All can be converted to SRT or VTT, though styling is lost in SRT.

Frequently asked questions

Is VTT better than SRT?

Not better, just different. VTT is required for HTML5 web video; SRT is more widely accepted elsewhere.

Can I rename .srt to .vtt?

No. You also need the WEBVTT header and dot timestamps.

Do video platforms accept VTT?

Many accept both SRT and VTT.

Which format does a TV play?

Usually SRT.

Does converting change timing?

No. Timings are preserved exactly.

Can VTT have colours?

Yes, via CSS ::cue styling, but player support varies.

Is SRT case sensitive?

No. The extension can be .srt or .SRT, though lower case is conventional and safest for web servers.

Do browsers support SRT?

Not in the HTML5 <track> element. Convert to VTT for web video.

Can one VTT file hold several languages?

No. Use one file per language and one <track> per file.

Which format do video editors export?

Most editors export SRT, and many also offer WebVTT. Choose based on where the captions will be used.

Can VTT files contain comments?

Yes. NOTE blocks hold comments that players ignore, which SRT can't do.

Related pages