Subtitle Formats Explained — SRT vs WebVTT vs ASS
Subtitle files look interchangeable: text plus timestamps. Then your web player silently ignores the SRT file, YouTube strips the styling out of your ASS file, and the French subtitles you were sent display é as é. Each format made different choices about styling, metadata, and structure, and the players enforce those choices strictly. Here is what each format actually is and what happens when you convert between them.
SRT — The Common Denominator
SubRip (.srt) is the oldest and simplest: a numbered block, a start and end time separated by an arrow (with comma decimals: 00:01:02,500), and one or more lines of text. That's the whole format. Almost everything reads it: VLC, media players, TVs, YouTube, editing suites, transcription services. Styling support is limited to basic tags like italics and bold, and even those are inconsistently honored. When in doubt, deliver SRT.
WebVTT — The Browser Standard
WebVTT (.vtt) is the W3C format that HTML5 video requires: a <track> element only accepts VTT, which is why an SRT file "does nothing" when wired into a web page. The syntax is nearly identical to SRT with three visible differences: a mandatory WEBVTT header line, dot decimals in timestamps (00:01:02.500), and optional cue settings for position and alignment. It also supports CSS-based styling and metadata cues. SRT to VTT conversion is lossless; VTT to SRT drops positioning cues but keeps all text and timing.
ASS — The Typesetting Format
Advanced SubStation Alpha (.ass, and its predecessor .ssa) is a different animal: it defines named styles with fonts, sizes, colors, outlines, and shadows, plus per-line overrides for position, rotation, and karaoke timing. The anime fansub community built it and it remains the standard wherever subtitles are typeset rather than merely displayed. VLC and mpv render it fully; browsers, YouTube, and most editing software do not.
Converting ASS to SRT keeps the dialogue text and timing and discards everything else: styles, positioning, karaoke effects. That sounds like a loss, but it is usually the point, because the platforms that reject ASS want exactly that plain version. Converting SRT to ASS gives you a file with one default style, ready for typesetting work in Aegisub.
Format Comparison
| Format | Timestamps | Styling | Plays in browsers | Best for |
|---|---|---|---|---|
| SRT | 00:01:02,500 (comma) | Basic tags, inconsistently supported | No | Universal delivery, uploads |
| WebVTT | 00:01:02.500 (dot) | Cue settings + CSS | Yes (the only one) | HTML5 video, streaming |
| ASS | 0:01:02.50 | Full typesetting | No | Styled subs, karaoke, anime |
The Encoding Problem
When é turns into é or ? boxes, the file's character encoding does not match what the player assumed. Older subtitle files are often saved in regional encodings (Windows-1252, ISO-8859-2, GBK); modern players assume UTF-8. The fix is to convert the file to UTF-8, which our converters do on every pass. If a file arrives already garbled (the corruption was saved into the text), no encoding change repairs it; you need the original.
Practical Rules
Delivering to a website or HTML5 player: convert to VTT. Uploading to YouTube or handing to an editor: SRT. Typesetting or preserving styled subtitles for local playback: ASS, played in VLC or mpv. Archiving: keep the richest version you have (ASS if styled) and generate SRT/VTT from it on demand, because downconversion is trivial and upconversion cannot restore what was stripped.
Convert SRT, VTT, and ASS in the browser. Timing preserved to the millisecond, output always UTF-8.
Browse Subtitle Tools