Reference
Subtitle formats explained: SRT vs VTT vs ASS
All three are plain text files that pair lines of dialogue with timestamps. They differ in how strict the format is, how much styling it carries, and where you can upload it. This page shows what each file looks like, which platforms accept which, and how to get from a recording to a working subtitle file.
ClapClip Team · Last checked:
At a glance
| Property | SRT (SubRip) | WebVTT | ASS (Advanced SubStation Alpha) |
|---|---|---|---|
| Extension | .srt | .vtt | .ass (older SSA: .ssa) |
| Specification | No formal spec; very little official documentation1 | W3C Candidate Recommendation Draft3 | The SSA v4.00+ script format, described in the Matroska spec6 |
| Timestamp | 00:00:03,200 with a comma before milliseconds1 | 00:03.200 or 00:00:03.200; a period, hours optional3 | 0:00:03.20, in hundredths of a second6 |
| File header | None | WEBVTT on the first line3 | [Script Info], styles and [Events] sections6 |
| Styling | Basic bold, italic, underline and colour tags1 | Tags such as <b>, <i>, <v>, CSS in STYLE blocks, and cue positioning4 | Named styles with fonts, colours, outlines, positioning and karaoke timing6,7 |
| Text encoding | Not standardised; save as UTF-81,8 | Must be UTF-83 | Save as UTF-8 to be safe |
| Use it for | Uploading captions to most platforms and editors | Video players on web pages | Styled or positioned subtitles, signs and karaoke |
SRT: the one almost everything accepts
An SRT file is a list of numbered blocks. Each block has a sequence number, a start and end time joined by -->, one or more lines of text, and a blank line before the next block.6
1
00:00:00,800 --> 00:00:03,200
Welcome to the tutorial.
2
00:00:03,500 --> 00:00:06,400
Today we will make <i>subtitles</i>.- Times are
hours:minutes:seconds,milliseconds, with a comma, not a period.1 - SRT has no formal specification, and the Library of Congress notes there is no character-encoding standard for it.1 That is why the same file can show broken accents in one player and not another. Save it as UTF-8, which is what YouTube requires.8
- Formatting tags borrowed from HTML (bold, italic, underline, colour) work in some players, but YouTube ignores styling in SRT files.1,8
WebVTT: SRT’s stricter web cousin
WebVTT began in 2010 as “WebSRT” and was built on SRT.2 It is now a W3C Candidate Recommendation Draft, the format the HTML <track> element uses for subtitles and captions on web pages.3,5
WEBVTT
NOTE Converted from tutorial.srt
1
00:00:00.800 --> 00:00:03.200
Welcome to the tutorial.
2
00:00:03.500 --> 00:00:06.400 line:10% align:center
<v Presenter>Today we will make <i>subtitles</i>.- The file must start with
WEBVTT, be UTF-8, and is served astext/vtt.3,4 - Times use a period before milliseconds, and the hours part can be left out when it is zero.3 Cue numbers are optional identifiers.3
- Settings after the timestamp place a cue on screen:
vertical,line,position,sizeandalign.4NOTEblocks are comments, andSTYLEblocks hold CSS.3
ASS: for subtitles that need to look a certain way
SubStation Alpha (SSA) and its successor Advanced SSA (ASS) come from the SubStation Alpha editor and support positioning, karaoke and style management.6 A file is laid out like an INI file in sections.6
[Script Info]
ScriptType: v4.00+
PlayResX: 1920
PlayResY: 1080
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,56,&H00FFFFFF,&H000000FF,&H00000000,&H80000000,0,0,0,0,100,100,0,0,1,3,1,2,60,60,50,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.80,0:00:03.20,Default,,0,0,0,,Welcome to the tutorial.
Dialogue: 0,0:00:03.50,0:00:06.40,Default,,0,0,0,,{\an8}Today we will make {\i1}subtitles{\i0}.[Script Info]holds the script resolution;PlayResYmatters because font sizes and positions are scaled by it.6[V4+ Styles]defines named styles: font, size, colours, outline, alignment and margins.6[Events]lists eachDialogueline with its style, and times are in hundredths of a second.6- Override tags in braces change one line:
{\an8}moves it to the top centre (positions follow a phone keypad, 1 to 9), and{\i1}…{\i0}turns italics on and off. Colours are written in blue-green-red order.7
The catch: none of the upload help pages we checked (YouTube, Vimeo, Adobe Premiere) lists ASS.8,9,10 To keep the styling, burn the subtitles into the video, or ship them inside an MKV file, which can store SSA/ASS subtitles with their styles.6
Which platforms accept which format
From each platform’s own help or documentation page. “Not listed” means the page we read doesn’t name the format, not that it was tested and failed.
| Platform or tool | SRT | WebVTT | ASS |
|---|---|---|---|
| YouTube8 | Yesbasic files only, no styling, plain UTF-8 | Yespositioning supported; styling limited to bold, italic, underline | Not listed |
| Vimeo9 | Yes | YesVimeo recommends WebVTT; files must be UTF-8 | Not listed |
| Web pages (HTML <track>)5 | No | Yesthe format the <track> element uses | No |
| Adobe Premiere10 | Yessidecar caption file | Not listed | Not listed |
| VLC media player11,12 | Yes | Not listednot named on the VideoLAN pages we read | YesSSA/ASS since VLC 0.9.0 |
| FFmpeg13 | Read and write | Read and write | Read and write |
The VLC row combines the features page and the VideoLAN Subtitles wiki, which was last edited in April 2019.11,12
Which one should you use?
- Uploading to YouTube, Vimeo or an editor: SRT. It is on every list in the table above that accepts uploads.
- A video player on your own website: WebVTT, because that is what the
<track>element reads.5 Vimeo also recommends it.9 - Styled typesetting, signs or karaoke: ASS, then burn it in or keep it in an MKV, since upload platforms don’t list it.
- Not sure: start with SRT. It carries so little beyond text and timing that converting it to the other two loses almost nothing.
Converting between formats
SRT to WebVTT by hand: add a line reading WEBVTT and a blank line at the top, change the comma before the milliseconds in every timestamp to a period, and save the file as UTF-8 with a .vtt extension. The SRT sequence numbers can stay; WebVTT treats them as cue identifiers.3
With FFmpeg: it reads and writes all three formats,13 and picks the output format from the file extension:
ffmpeg -i tutorial.srt tutorial.vtt
ffmpeg -i tutorial.srt tutorial.ass
ffmpeg -i tutorial.ass tutorial.srtConverting ASS to SRT or WebVTT keeps the text and timing but drops what the simpler format can’t express: fonts, positions, colours and karaoke effects.
Make an SRT from a recording with ClapClip
ClapClip’s transcription app runs on Windows 10 and 11 and writes a standard .srt file and plain text from the same pass, with timestamps taken from the recognised speech rather than fixed intervals. The audio is processed on your PC, not uploaded.
- Add the recording. Video: MP4, MOV, MKV or WEBM. Audio: MP3, WAV, FLAC, AAC, M4A or OGG. You don’t need to extract the audio first.
- Pick the spoken language and choose SRT as the output.
- Review the draft: names, numbers and jargon first, then line breaks (one or two lines per cue).
- Play the video with the subtitles on to check timing, then save the file as UTF-8 with the same name as the video, for example
tutorial.srtnext totutorial.mp4. - Need WebVTT or ASS? Convert the finished SRT with one of the methods above.
The full walkthrough, with review and timing tips, is in How to Create SRT Subtitles from Video on Windows. For the tool itself, see the SRT generator.
Sources
Each source was read on October 29, 2026.
- SubRip Subtitle format (SRT), fdd000569 · Library of Congress, Sustainability of Digital Formats
- Web Video Text Tracks Format (WebVTT), fdd000567 · Library of Congress, Sustainability of Digital Formats
- WebVTT: The Web Video Text Tracks Format (Candidate Recommendation Draft, 20 May 2026) · W3C Timed Text Working Group
- Web Video Text Tracks Format (WebVTT) · MDN Web Docs
- <track>: the embed text track element · MDN Web Docs
- Subtitles: SRT and SSA/ASS subtitles · Matroska specification
- ASS Override Tags · Aegisub documentation
- Supported subtitle and closed caption files · YouTube Help
- How to add captions or subtitles to my video · Vimeo Help Center
- Supported file formats for captions (updated Jan 7, 2026) · Adobe Premiere Help
- VLC features · VideoLAN
- Subtitles (last edited 1 April 2019) · VideoLAN Wiki
- General Documentation: Subtitle Formats · FFmpeg
