Subtitle File Formats: SRT, VTT and ASS Explained

What SRT, VTT and ASS files actually contain, which one each player and platform accepts, and how to pick — with the same subtitle written in all three.

A subtitle file is a plain text file: lines of dialogue, each with a start and an end time. The format decides how much more than that it can carry — styling, positioning, word timing — and which players will accept it.

Three formats cover almost everything you'll meet: SRT, VTT and ASS.

SRT — the one everything accepts

SubRip (.srt) is the oldest and the most widely supported. A cue is a number, a time range, and the text:

1
00:01:42,300 --> 00:01:45,120
Thanks for watching,
see you next week.

That's all it holds. No colours, no fonts, no positions — the player decides how it looks. Milliseconds come after a comma.

Use it when you want a file that simply works: desktop players, video editors, TV boxes, most upload forms.

VTT — the web format

WebVTT (.vtt) was written for the browser. The HTML5 <track> element reads this format and no other, so a player on a web page needs VTT.

WEBVTT

00:01:42.300 --> 00:01:45.120
Thanks for watching,
see you next week.

Three differences from SRT: the file must start with WEBVTT, milliseconds come after a period, and cue numbers are optional. VTT can also carry cue settings — position, line, alignment — and simple styling through CSS in the page.

Use it when the subtitles will play in a browser. See how to convert SRT to VTT if you already have the SRT.

ASS — the one that carries the look

Advanced SubStation Alpha (.ass) is a different kind of file. Besides the dialogue it stores a style table: font, size, colours, outline and shadow, margins, alignment. Every line points at a style.

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, OutlineColour, ...
Style: Default,Inter,43,&H00FFFFFF,&H4D100C0C,...

[Events]
Dialogue: 0,0:01:42.30,0:01:45.12,Default,,0,0,0,,Thanks for watching,\Nsee you next week.

Because the look travels with the file, ASS is what subtitle renderers use when subtitles are drawn into a video, and what fansubbing and karaoke tooling has always used. It also supports word-level timing, which is how word-by-word highlighting is done.

Use it when the styling matters and the player supports it (VLC and mpv do), or when you're handing the file to something that will render it into the picture.

Side by side

SRTVTTASS
Text and timingsyesyesyes
Styling stored in the filenolimited, via CSSyes, full
Positioningnoyes, cue settingsyes
Word-level timingnoyesyes
HTML5 <track>noyesno
VLC / mpvyesyesyes
Video editorsusuallyvariesrarely
Upload forms (YouTube, Vimeo, socials)yesoftenrarely

Which one should you pick?

  • Uploading to a platform — SRT. It's the safe default; YouTube, Vimeo and most others take it.
  • A player on your own web page — VTT.
  • You want your styling to survive — ASS, or skip the file entirely and burn the subtitles into the picture.
  • Handing subtitles to an editor or a colleague — SRT, plus a note about the styling you want.

What about the other extensions?

You'll also run into .ssa (the older version of ASS), .sub (several unrelated formats, some counted in frames rather than in time), .ttml and .dfxp (XML, used in broadcast and by some platforms), and .sbv (YouTube's own export). They exist, but for everyday work the three above cover it.

Getting a file in the format you need

OpenSubs runs in your browser and exports all three. You can start from an existing subtitle file or from the video itself:

  • Open an .srt or .vtt you already have, then export .srt or .vtt — no video needed. Exporting .ass needs the video loaded, because the style is scaled to the picture.
  • Or drop in a video and let it transcribe the speech on your own machine, with nothing uploaded, then export.
  • Pick a caption style before exporting ASS, so the look is written into the file.
  • Or export an MP4 with the subtitles burned into the picture, for places that don't take subtitle files at all.

FAQ

Can I just rename an .srt to .vtt?

No. VTT needs the WEBVTT header and periods instead of commas in the timestamps. Renaming leaves the file unreadable.

Does converting change the timings?

No. Only the format changes.

Will ASS styling show up everywhere?

No. Players that use a subtitle renderer, such as VLC and mpv, draw it; most web players and editors ignore it. If the look has to survive everywhere, burn the subtitles into the video.

Which format should I upload to YouTube?

SRT. YouTube ignores styling anyway.


Convert or create subtitles →