ASS Subtitles Explained: Structure, Styles and Override Tags
Open an .ass file in a text editor for the first time and it looks like a configuration file for something far more complicated than subtitles. In fact it follows a clear, consistent structure, and once you can read it you can fix problems, understand what a converter will keep and discard, and recognize why an ASS file looks different in different players. This guide takes an ASS file apart piece by piece.
What ASS and SSA are
SubStation Alpha (SSA, .ssa) is a subtitle format that was designed to give subtitle authors control over how text looks. Advanced SubStation Alpha (ASS, .ass) is its extended successor and is the version in common use today. The two share the same overall structure, which is why tools that read one can usually read the other, and why the converters on this site treat both in the same way.
Unlike SRT, which describes only text and time, an ASS file also describes the canvas the text is placed on, a set of reusable styles, and per-line instructions for fonts, colors, positions and effects. That extra power is why the format is popular for fansubbing, karaoke and any project where typography matters, and why fewer players support it fully.
The three main sections
An ASS file is divided into sections, each introduced by a name in square brackets. Three matter most:
| Section | Purpose |
|---|---|
| [Script Info] | General settings: title, script type, and the reference resolution (PlayResX and PlayResY) that all positions and sizes are measured against. |
| [V4+ Styles] | A list of named styles. Each style defines the font, size, colors, outline, shadow, alignment and margins. (In the older SSA format this section is named [V4 Styles].) |
| [Events] | The actual content: one line per subtitle (Dialogue) or note (Comment), each referring to a style by name. |
[Script Info]
Title: Example
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,&H64000000,0,0,0,0,100,100,0,0,1,2,1,2,60,60,50,1
Style: Italic,Arial,56,&H00FFFFFF,&H000000FF,&H00000000,&H64000000,0,1,0,0,100,100,0,0,1,2,1,2,60,60,50,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:04.00,0:00:06.50,Default,,0,0,0,,Welcome back to the channel.
Dialogue: 0,0:00:07.00,0:00:09.20,Italic,,0,0,0,,(whispering) Let's begin.Reading a Dialogue line
The Format line directly above the events tells you what each comma-separated field means. For the Dialogue line in the example:
Dialogue: 0,0:00:04.00,0:00:06.50,Default,,0,0,0,,Welcome back to the channel.| Field | Value in the example | Meaning |
|---|---|---|
| Layer | 0 | Drawing order. Higher layers are drawn on top of lower ones. |
| Start | 0:00:04.00 | When the line appears. |
| End | 0:00:06.50 | When the line disappears. |
| Style | Default | The name of a style defined in the [V4+ Styles] section. |
| Name | (empty) | An optional speaker label. It is not displayed. |
| MarginL / MarginR / MarginV | 0, 0, 0 | Margin overrides for this line. A value of 0 means use the style's own margin. |
| Effect | (empty) | An optional effect name; usually empty. |
| Text | Welcome back to the channel. | The words to display, plus any override tags. |
Two details are worth remembering. Times are written as H:MM:SS.cc, where the last two digits are centiseconds (hundredths of a second), not milliseconds. And because the Text field is last, it can contain commas freely; a parser reads the first nine fields by position and treats everything remaining as the text.
Styles, colors and alignment
A style bundles every visual decision about a line of text so that dialogue lines can simply name it. Defining a style once and reusing it is what keeps a large file consistent. Three details trip people up:
- Colors are written as &HAABBGGRR. That is hexadecimal with the channels in blue-green-red order (not red-green-blue), preceded by an alpha value in which 00 is fully opaque and FF is fully transparent. So &H000000FF is opaque red, and &H00FF0000 is opaque blue.
- Alignment uses the layout of a numeric keypad: 1, 2 and 3 are bottom-left, bottom-center and bottom-right; 4, 5 and 6 are middle-left, middle-center and middle-right; 7, 8 and 9 are top-left, top-center and top-right. The default bottom-center is 2.
- Sizes and margins are measured in the units of the PlayRes canvas. If PlayResX and PlayResY do not match the video's resolution, the player scales everything proportionally, which is why text size can look different between files.
What happens when you convert ASS to SRT
Converting ASS or SSA to SRT is a one-way simplification. Here is what our ASS to SRT and SSA to SRT converters do with each part of the file:
| In the ASS file | In the SRT result |
|---|---|
| Dialogue text and start/end times | Kept. Times become the SRT form 00:00:04,000 and the lines are numbered in order. |
| Hard line breaks (\N) | Converted into real line breaks. |
| Override tags in curly braces (italics, bold, colors, positioning, fades) | Removed. The visual effect of those tags is lost, and only the plain text remains. |
| Styles, fonts, colors and the PlayRes canvas | Discarded, because SRT has nowhere to store them. |
| Comment: lines | Ignored, since they are not displayed subtitles. |
Because the loss is permanent, keep the original .ass file. If you later need the styling, you will need to go back to it, since no SRT contains the information required to restore it.
Where ASS is and is not supported
ASS is rendered well by desktop players that include a dedicated subtitle renderer, such as VLC, mpv and MPC-HC, and it is supported by subtitle editors like Aegisub and Subtitle Edit. It is generally not supported by web browsers' native subtitle handling, and many platforms and hardware players either ignore it or show only plain text. If your audience is not using a player known to support ASS, plan to deliver an SRT or WebVTT version too.
Frequently asked questions
- What is the difference between .ass and .ssa files?
- SSA is the older format and ASS is its extended successor. They share the same structure, with small differences such as the style section name and the first column of the Dialogue format (Marked in SSA, Layer in ASS). Most tools read both.
- Why are ASS colors written backwards?
- ASS stores colors as &HAABBGGRR, which puts blue before green before red, the reverse of the red-green-blue order used on the web. So pure red is &H000000FF.
- Can I get the styling back after converting to SRT?
- No. SRT cannot store fonts, colors or positions, and the converter discards them. Always keep the original ASS file if you might need the styling again.
- Why does my ASS file look different in different players?
- Players differ in how fully they implement the format and how they scale the canvas, and the fonts named in the styles must be installed on the viewer's system. A missing font is replaced with a fallback, which changes the look.