The five formats side by side
Every subtitle file stores the same three things: the text, when it starts, and when it ends. The formats differ in what else they can store: styles, positions on screen, and data for TV equipment.
| Format | File | Written as | Position | Main use |
|---|---|---|---|---|
| SRT | .srt | Plain text | No | Uploads to video platforms |
| WebVTT | .vtt | Plain text | Yes | Video players on websites |
| ASS / SSA | .ass .ssa | Plain text | Yes, to the pixel | Styled subtitles, burned into the video |
| TTML / DFXP | .ttml .dfxp .xml | XML | Yes | Delivery to Netflix and other buyers with a TTML profile |
| SCC | .scc | Hex codes | Yes, on a fixed grid | US TV closed captions |
SRT (SubRip)
SRT comes from SubRip, a program that read subtitles from DVDs. Today it is the format that almost every platform and player opens. Each subtitle is a number, a start and end time, and one or more lines of text. A blank line ends the subtitle.
100:00:01,000 --> 00:00:04,200Who has the Spanish file?200:00:04,600 --> 00:00:07,000<i>Mina has it. She sent it back.</i>
- A comma comes before the milliseconds:
00:00:01,000. - SRT has no official specification. Players agree on the numbers and times, but not on tags such as
<i>and<font>. - The file does not say which text encoding it uses. Save SRT files as UTF-8: YouTube and Vimeo both ask for it.
- YouTube reads SRT as plain text, without its tags. To control position on YouTube, use WebVTT or TTML.
Who asks for SRT
YouTube, Vimeo, LinkedIn, and other video platforms. Most subtitle editors open it, so it is also the usual file to send to a translator or reviewer.
WebVTT
WebVTT (Web Video Text Tracks) is the W3C format for captions on the web. It grew out of SRT, so the two look almost the same. The <track> element in HTML video takes WebVTT files, so every browser can show them.
WEBVTT00:00:01.000 --> 00:00:04.200Who has the Spanish file?00:00:04.600 --> 00:00:07.000 line:10% align:center<i>Mina has it. She sent it back.</i>
- The file starts with the word
WEBVTT. - A period comes before the milliseconds:
00:00:01.000. The hours are optional. - Subtitle numbers are optional.
- Settings after the time move a subtitle:
line,position,size, andalign. The second subtitle above sits near the top of the picture. - A
STYLEblock in the file, or the website's CSS, sets fonts and colors.
Who asks for WebVTT
Video players on websites, through the HTML <track> element. Vimeo accepts SRT too, but recommends WebVTT. YouTube reads WebVTT positions, and bold, italic, and underline.
ASS and SSA (SubStation Alpha)
SubStation Alpha (SSA) and its later version, Advanced SubStation Alpha (ASS), are formats for styled subtitles. A file has named styles for font, size, color, border, and shadow. Tags in braces change one line: its position, color, rotation, or a karaoke highlight. Aegisub, a free editor, is made for this format.
[Events]Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, TextDialogue: 0,0:00:01.00,0:00:04.20,Default,,0,0,0,,Who has the Spanish file?Dialogue: 0,0:00:04.60,0:00:07.00,Sign,,0,0,0,,{\pos(960,120)}Mina has it.
- Times have hundredths of a second, not milliseconds:
0:00:01.00. {\pos(960,120)}puts a line at an exact position in the script's resolution.- YouTube and Vimeo do not accept ASS files. To show ASS styles on those platforms, burn the subtitles into the video.
Who uses ASS
Anime fansub groups, karaoke videos, and editors who burn styled subtitles into the picture. Netflix asks for TTML and US broadcasters ask for SCC, so ASS is not a delivery format for them.
TTML and DFXP
TTML (Timed Text Markup Language) is a W3C format in XML. Its first version was called DFXP (Distribution Format Exchange Profile). The .dfxp file extension still uses that name, and YouTube reads a DFXP file as TTML.
<tt xmlns="http://www.w3.org/ns/ttml" xml:lang="en"> <body> <div> <p begin="00:00:01.000" end="00:00:04.200">Who has the Spanish file?</p> <p begin="00:00:04.600" end="00:00:07.000">Mina has it.<br/>She sent it back.</p> </div> </body></tt>
TTML can do a lot, so buyers limit it with a profile. A profile says which parts of TTML a file may use:
- IMSC: the W3C profile for subtitles and captions on the internet. Apple added IMSC captions to HLS streaming in 2017.
- SMPTE-TT: the profile the US FCC accepted in 2012 for captions on TV programs shown online.
- EBU-TT: the profile of the European Broadcasting Union, for exchange and archives.
Who asks for TTML
Netflix, for subtitle and SDH files. Other buyers name a TTML profile in their delivery specification. On 2026.10.13, Netflix accepted IMSC 1.1 only for Japanese.
Our free tools do not read or write TTML. Use your subtitle editor's TTML export, and check the buyer's profile before you deliver.
SCC (Scenarist Closed Caption)
SCC files carry US TV closed captions, the CEA-608 standard (also called Line 21). The file does not store words. It stores the codes that a TV caption decoder reads.
Scenarist_SCC V1.000:00:01;00 9420 9420 94ae 94ae 9470 9470 5768 ef20 6861 7320 f468 e520 d370 616e e973 6820 e6e9 ece5 bf80 942f 942f
- The first line must be
Scenarist_SCC V1.0. - Times count frames at 29.97 frames per second. A semicolon before the frames, as in
00:00:01;00, means drop-frame timecode. - A caption row holds 32 characters at most.
- Control codes are sent twice, in case the TV signal loses one.
Who asks for SCC
US broadcasters. YouTube names SCC as its preferred format for CEA-608 captions.
Our free tools do not read or write SCC. To make one, use a caption editor with SCC export, and check the result on a CEA-608 decoder.
Other files you may get
- SBV (
.sbv): SubViewer, a plain text format with no tags and no subtitle numbers. YouTube accepts it. - EBU-STL (
.stl): a binary format for European broadcast TV. You need a subtitle editor to open it. - TXT: a transcript with no times. It must get times before a player can show it.
- Excel or CSV: not a subtitle format, but a common way to send subtitles to a client or reviewer who does not use a subtitle editor.
Which format to use
The place where the subtitles go decides the format. When you are not sure, ask for the buyer's delivery specification.
| Where the subtitles go | Use | Why |
|---|---|---|
| YouTube | SRT or WebVTT | Both upload directly. Use WebVTT when the position matters. |
| Vimeo | WebVTT | Vimeo accepts SRT, but recommends WebVTT. |
| Your own website | WebVTT | The HTML <track> element takes WebVTT. |
| Netflix | TTML | Netflix asks for TTML, and IMSC 1.1 for Japanese only. |
| US broadcast TV | SCC | It carries CEA-608 captions to TV decoders. |
| Burned into the video | ASS | It keeps fonts, colors, and exact positions. |
| A translator or reviewer | SRT | Most subtitle editors open it. |
What you lose when you convert
Every format keeps the text and the times. A conversion loses only what the new format cannot store.
| Conversion | What stays | What you lose |
|---|---|---|
| SRT to WebVTT | Everything | Nothing |
| WebVTT to SRT | Text, times, and basic tags | Positions, settings, and STYLE blocks |
| ASS to SRT | Text and times | Styles, positions, karaoke, and effects |
| SRT or WebVTT to TXT | Text | Times |
Keep the original file after you convert. You cannot get styles or positions back from the converted file.