What is the ASS file format?
A file with the .ass extension contains a script for creating video subtitle text formatted using the SubStation Alpha standard. .ass files are most commonly created and edited in Aegisub, an open-source multiplatform tool for creating and editing video subtitles. An .ass file is plain UTF-8 text divided into four or five sections, which contain:
- *Script Info* - version, author, title, and general information related to screen format and resolution,
- *V4+ Styles* - information about text formatting and styles, including:
- Fonts,
- Font size,
- Colors,
- Positioning,
- Text alignment,
- *Events* - list of events and text timings in the format
H:MM:SS.cc, along with additional per-line attributes, - *Pictures* - UUE-encoded images (optional),
- *Fonts* - embedded font data (optional).
The .ass format is an extension of the SubStation Alpha standard that closely follows the SSA v4+ specification. Files conforming to the basic SSA v4 standard use the .SSA extension. .ass subtitle scripts are used to overlay subtitles on video in a process called *hardsubbing*. Matroska multimedia containers also support .ass subtitles, which can be embedded as a separate stream - a technique known as *softsubbing*. Compared to simpler formats like .SRT, .ass enables per-line karaoke timing effects, motion tracking, and alpha-channel transparency.
Security & safety
RISK: LOWAn .ass is plain text and cannot execute code, so the file is safe to open. Two minor cautions: (1) keep your media player updated - years-old research ("Subtitle Hell", 2017) showed malformed subtitle parsing could be abused by some players; (2) ASS can reference external fonts, and very heavy typesetting/karaoke can momentarily stress a weak player, but neither is a security risk. Save as UTF-8 so non-Latin characters display correctly.
Format details
in a nutshellPrograms that open ASS files
Technical details
deep spec| File encoding | UTF-8 plain text; optionally preceded by a UTF-8 BOM (EF BB BF) |
| MIME type | text/x-ssa |
| File identification | No binary magic bytes; file always begins with the section header `[Script Info]` on the first line |
| Required sections | `[Script Info]`, `[V4+ Styles]`, `[Events]` |
| Optional sections | `[Fonts]` (embedded font data) and `[Graphics]` (UUE-encoded images) |
| Timing format | `H:MM:SS.cc` - hours, minutes, seconds, centiseconds; gives 10 ms resolution per subtitle event |
| Inline override tags | Style overrides enclosed in `{}`, e.g. `{\b1}` (bold on), `{\i1}` (italic), `{\pos(x,y)}` (absolute position), `{\an}` (numpad alignment) |
| Karaoke support | Syllable-level timing via `{\k}` (wipe), `{\kf}` (fill sweep), and `{\ko}` (outline sweep) tags |
| Color format | ABGR hex notation, e.g. `&H00FFFFFF&`; Primary, Secondary, Outline, and Back color channels each carry an independent alpha byte |
| Animation tags | `{\move()}`, `{\fade()}`, and `{\t()}` enable position animation, fade transitions, and timed interpolation of any style parameter |
| Drawing mode | Vector shape rendering activated by `{\p1}`; supports line segments, Bezier curves, and B-spline commands for on-screen graphics |
| Layer field | Each `Dialogue:` event carries a `Layer` integer; higher values render on top, enabling multi-layer compositing within one subtitle stream |
| Line wrap control | `WrapStyle` in `[Script Info]`: 0 = smart wrap, 1 = end-of-line break, 2 = no wrap, 3 = reverse smart wrap |
| Collision handling | `Collisions` property governs overlapping lines - `Normal` pushes lines upward to avoid overlap; `Reverse` leaves them in declared position |
| Container embedding | Natively stored as a subtitle track in Matroska (`.mkv`) files with codec ID `S_TEXT/ASS` |
| Released | Advanced SubStation Alpha (ASS) early 2000s, extending SubStation Alpha (SSA, 1998) |
| Open standard | Yes · royalty-free |
| Specification | www.tcax.org |