Skip to content

Subtitle Formats Guide: SRT, VTT, ASS, LRC | AllSubConverter

- 5 min read

Why Subtitle Formats Exist in the First Place

Subtitles look simple on screen — a line or two of text timed to the dialogue — but underneath they are stored in a surprisingly varied set of file formats. Each was designed for a different era, platform, or purpose: SRT for DVD-era film rips, VTT for the modern web, ASS and SSA for fan-subbed anime with elaborate styling, LRC for music players, SBV for early YouTube, and TTML for broadcast and streaming standards bodies.

Knowing which format to use — and how to move between them — is what separates captions that "just work" from files that fail to load, display garbage characters, or drift out of sync. This guide is a reference for all the major formats, with a comparison table up front and a detailed breakdown of each. Once you understand the landscape, converting between formats becomes straightforward.

The Big Comparison Table

Here is how the major formats stack up across the dimensions that matter most: their file extension, how they write timestamps, what they can do, where they shine, and whether a web browser can play them natively.

Format Extension Timestamp format Key features Best for Browser support
SRT .srt hh:mm:ss,ms Simple, universal, plain text Movies, offline players None (convert to VTT)
VTT .vtt hh:mm:ss.ms Styling, positioning, chapters Web video, HTML5 Native
ASS .ass h:mm:ss.cs Full styling, animation, positioning Anime, karaoke, styled subs None
SSA .ssa h:mm:ss.cs ASS predecessor, styling Legacy styled subtitles None
LRC .lrc [mm:ss.xx] Minimal start-time tags Music lyrics, karaoke Via music players
SBV .sbv h:mm:ss.s Old YouTube caption format Legacy YouTube None
TTML .ttml / .dfxp hh:mm:ss.ms Broadcast-grade, rich styling Streaming, broadcast Limited (via IMSC)
One timestamp detail trips people up constantly: SRT uses a comma before the milliseconds (00:00:01,000) while VTT uses a period (00:00:01.000). That single character is the difference between a VTT file that plays and one that silently fails.

SRT — The Universal Workhorse

SubRip (SRT) is the closest thing subtitles have to a lingua franca. It dates back to the DVD-ripping era and uses a deliberately minimal structure: a sequential number, a start-and-end timestamp line, and one or more lines of text. There is no styling, no metadata, and no positioning — just timing and words.

That simplicity is its strength. Almost every media player on earth reads SRT, making it the safest choice when you do not know where a file will end up. Its weakness is the web: browsers do not play SRT natively, so for HTML5 video you need to convert it. If that is your goal, our SRT to VTT guide walks through the process step by step.

VTT — The Web Standard

WebVTT (VTT) is the W3C standard for text tracks on the web. It looks similar to SRT — the timestamp line and text blocks will feel familiar — but it adds a required WEBVTT header, switches the timestamp separator to a period, and layers in real features: CSS-like styling cues, speaker labels, positioning, and chapter metadata.

Because every modern browser supports VTT through the HTML5 <track> element, it is the format to target for anything that plays in a web page, including YouTube, Vimeo, and custom players. Most of the time, "make this work on the web" means "convert it to VTT."

ASS and SSA — Styled and Powerful

SubStation Alpha (SSA) and its successor Advanced SubStation Alpha (ASS) exist for one reason: styling. Where SRT and VTT treat text as plain words with light formatting, ASS/SSA treat every subtitle event as a fully styled object with fonts, colors, outlines, shadows, rotation, movement, and screen positioning. This is the format that powers elaborately styled anime subtitles, karaoke effects, and signs that are typeset directly onto the image.

The trade-off is that browsers and most simple players do not understand ASS at all. To use styled subtitles on the web or in a basic player, you typically convert them down to SRT or VTT — accepting that the rich styling will be lost in the process. For a deeper look at working with these formats, see our ASS subtitle styling guide.

LRC — Lyrics, Stripped to the Bone

LRC is a different category entirely. Rather than captions for video, it stores lyrics for music. Each line begins with a single timestamp in [mm:ss.xx] format, followed immediately by the lyric text. There are no end timestamps, no styling, and no metadata beyond an optional title or artist header. The next timestamp implicitly ends the previous line.

This minimalism is deliberate: music players like Winamp, foobar2000, and AIMP need only the start time of each line to scroll lyrics in sync. If you are moving subtitles from a video format into a music library, converting to LRC is the right move, and our SRT to LRC walkthrough shows how to do it cleanly.

SBV — YouTube's Old Caption Format

SBV was the caption format YouTube used in its earlier days, with a slightly unusual timestamp style (0:00:00.0). YouTube has since moved on — its captions are now served as VTT — but you will still encounter SBV files in older archives and third-party tools. Converting SBV to SRT or VTT is usually the first step to making it usable on any modern platform.

TTML — The Broadcast-Grade Standard

Timed Text Markup Language (TTML), and its streaming-focused profile IMSC (and the older DFXP / .dfxp extension), is an XML-based format used by broadcasters and major streaming services. It is verbose and complex by design, because it has to meet strict accessibility and legal captioning requirements, support multiple languages and regions, and carry precise layout for everything from news tickers to opera subtitles.

Most individual creators will never hand-write TTML, but you may need to convert a simpler file into it when delivering captions to a platform that requires broadcast-grade formatting, or convert a TTML file you received down into something more portable like SRT.

Choosing the Right Format

A simple decision path covers the vast majority of cases:

  • Playing in a web browser or uploading to YouTube/Vimeo? → VTT.
  • Playing in a desktop or mobile media player (VLC, MPV, phone)? → SRT.
  • Need rich styling, fonts, or on-screen effects? → ASS (then convert down for the web).
  • Displaying lyrics in a music player? → LRC.
  • Delivering to a broadcaster or standards-bound platform? → TTML/IMSC.
  • Inherited an old YouTube SBV file? → Convert to SRT or VTT.

When in doubt, SRT is the safest interchange format because everything reads it, and VTT is the safest delivery format for the web because browsers play it natively. Most real-world workflows involve exactly one conversion: get the file into whichever of those two the destination expects.

Converting Between Formats

Conversion is rarely lossless in both directions. Moving up to a richer format (SRT → VTT, or VTT → ASS) adds capability without losing information. Moving down (ASS → VTT, or VTT → LRC) drops features the target format cannot express — styling, positioning, or end timestamps. That is expected, not a flaw: the goal is to land on the format your player actually understands.

A good converter preserves everything the target format can hold and degrades gracefully on the rest, so timing and text always survive even when styling does not.

Put It Into Practice

The clearest way to see how these formats differ is to take one file and watch it transform. Converting SRT to VTT is the most common starting point, and it cleanly demonstrates the comma-to-period switch, the required header, and the dropped sequence numbers that define the format boundary.

Ready to convert between subtitle formats?

Convert SRT to VTT Now →

Related Articles