Skip to content
← All Guides
🔒 No Upload Required ✅ Free Forever 🌐 Browser-Based
Video Tools

ASS to SRT: Subtitle Format Conversion Guide

By Bill Crawford  ·  March 2026  ·  10 min read

Connect on LinkedIn →

🎬 Ready to convert? Use the free browser-based ASS to SRT Converter — no upload, no signup.

Open Converter →

Table of Contents

  1. What Is the ASS Format?
  2. What Is the SRT Format?
  3. Why Convert ASS to SRT?
  4. What You Lose in Conversion
  5. Format Internals: How ASS Works
  6. Timestamp Conversion Details
  7. Character Encoding Considerations
  8. Batch Conversion Workflows
  9. FAQ

If you work with video subtitles — anime fansubs, foreign language films, or custom caption tracks — you have almost certainly encountered the .ass format. ASS (Advanced SubStation Alpha) is the subtitle standard for high-quality fan releases, offering precise positioning, custom fonts, color styling, and karaoke effects. The problem: most devices, platforms, and video editors do not support it.

SRT (SubRip Text) is the opposite in almost every way — it has almost no styling capability, but it works everywhere. This guide covers everything you need to know to convert ASS to SRT correctly, including what gets lost, how timestamps are translated, and how to handle batch conversions efficiently.

What Is the ASS Format?

ASS stands for Advanced SubStation Alpha — an evolution of the older SSA (SubStation Alpha) format developed in the early 2000s. An ASS file is a structured plain-text file divided into sections:

The [Events] section is the heart of the file. It begins with a Format: line that declares the column order, followed by Dialogue: lines for each subtitle cue. A typical dialogue line looks like:

Dialogue: 0,0:01:02.34,0:01:05.12,Default,,0,0,0,,This is the subtitle text\Nwith a second line.

The timestamp format is H:MM:SS.cc where cc is centiseconds (hundredths of a second). Style override tags are embedded inline in curly braces: {\i1}italic text{\i0}, {\c&H0000FF&}colored text{\r}.

What Is the SRT Format?

SRT (SubRip Text) is a plain-text format developed alongside the SubRip subtitle ripper in the early 2000s. Its structure is elegantly simple:

1
00:01:02,340 --> 00:01:05,120
This is the subtitle text
with a second line.

2
00:01:07,000 --> 00:01:09,500
Next subtitle here.

Each cue has four components: a sequential index number, a timestamp range in HH:MM:SS,mmm format (millisecond precision, comma as decimal separator), the subtitle text (which can span multiple lines), and a blank line separator. That is the entire specification.

Many video players accept limited HTML-like tags in SRT text — <i>, <b>, <u>, and <font color> — but support is inconsistent across players. The safest SRT output is plain text only.

Why Convert ASS to SRT?

The main reason to convert is compatibility. ASS is a niche format — it requires a player that explicitly supports it and has a renderer capable of handling the style engine. SRT is supported everywhere:

A secondary reason is simplicity. If the original ASS file uses complex overlapping dialogue layers, custom positioning, or animated effects, and you just need the words timed correctly, SRT gives you exactly that — clean, portable, text-only.

What You Lose in Conversion

Understanding what gets removed helps you decide whether ASS→SRT is the right choice for your use case.

ASS FeatureIn SRT
Custom fonts and sizesRemoved — player default font used
Color styling ({\c&H...})Removed
Screen positioning ({\pos(x,y)})Removed — player decides placement
Karaoke timing ({\k}, {\kf})Removed — syllable text preserved
Animated transforms ({\t(...)})Removed
Drawing mode vector shapesRemoved entirely (not text)
Multiple styled layersMerged into single text block per timestamp
Bold/italic/underline ({\b1},{\i1})Removed (basic; could be translated to <b>/<i>)
\N hard line breaksConverted to real newlines ✓
Dialogue text contentFully preserved ✓
Timing (start/end)Fully preserved with ms precision ✓

The most critical loss for anime fansubs is positioning. Many fansub groups use ASS positioning to place subtitle text above characters speaking in the top portion of the frame, or to overlay sign translations at precise screen positions. In SRT, all text appears in the default location (usually bottom-center), which may obscure video content or look incorrect for some scenes.

Format Internals: How ASS Parsing Works

Correctly parsing ASS requires reading the Format: line rather than assuming a fixed column order. The standard column order is:

Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text

But not all files follow this exactly. A parser that hard-codes column positions will fail on non-standard files. The correct approach:

  1. Read the Format: line and build a column index map
  2. For each Dialogue: line, split into exactly N fields where N = number of Format columns
  3. The split must respect that the Text field (always last) can contain commas — split on the first N-1 commas only

This matters in practice because the Text field frequently contains dialogue with commas: "Yes, I know, but that is not the point." A naive split(',') would truncate this at the first comma.

Timestamp Conversion Details

ASS timestamps use centiseconds as the fractional unit. SRT uses milliseconds. The conversion is a simple multiplication:

ASS TimestampSRT TimestampNote
0:01:02.3400:01:02,340cc × 10 = ms
1:23:45.0701:23:45,070Leading zero on single-digit ms
0:00:00.0000:00:00,000Valid — starts at time zero
0:01:02.99900:01:02,999Three-digit fraction = already ms

Note that some rare ASS files use three-digit fractional seconds (milliseconds rather than centiseconds). A robust parser detects this by checking whether the fraction component is 2 or 3 digits wide and handles both cases.

SRT timestamps always use two-digit zero-padded hours, two-digit minutes, two-digit seconds, and three-digit milliseconds. ASS hours can be a single digit (0: rather than 00:) — the SRT output must normalize this.

Character Encoding Considerations

Encoding is a common source of garbled subtitles. ASS files come in two common encodings:

When a UTF-8 reader encounters a Windows-1252 file containing non-ASCII characters, the result is replacement characters (the Unicode replacement character , often called "mojibake"). Signs: subtitle text contains ’ instead of ', or blocks of characters where accented letters should be.

If you see garbled text after conversion, the source file is likely Windows-1252. Open it in a text editor like Notepad++ (Windows) or BBEdit (Mac), change the encoding to UTF-8, save, and re-upload. The Script Info section of an ASS file sometimes contains an ScriptType: v4.00+ line alongside a Title: that hints at the source language.

Batch Conversion Workflows

When converting a full subtitle archive — for example, a season of a show — batch conversion saves significant time. The online converter handles up to 50 files in one session. For larger archives, consider these approaches:

For the browser-based tool, the ZIP naming convention follows the pattern dataconversioncenter_ass_to_srt_yyyymmddhhmm.zip using your local time, making it easy to identify when each batch was processed.

Frequently Asked Questions

Can I convert ASS to SRT without installing software?
Yes — the ASS to SRT converter on this site runs entirely in your browser. No software installation, no upload to any server, no signup required.
Why does my SRT have duplicate or overlapping subtitle lines?
ASS files often use multiple simultaneous dialogue events on different layers for sign translations, secondary speakers, or visual effects — all appearing at the same time. In SRT, each cue is independent and players display them sequentially or overlapping depending on their implementation. If overlapping looks wrong in your player, the issue is with the player's SRT renderer, not the conversion.
What happened to the sign subtitles (overlay text)?
Sign translations in ASS files are typically separate dialogue events with custom positioning. When converted to SRT, they appear as normal subtitle cues at the bottom of the screen at the same timestamps as the main dialogue. If the sign translation is coded as a drawing-mode vector graphic (a raster overlay drawn with ASS drawing commands), it is removed entirely since SRT has no image capability.
Can I go back from SRT to ASS?
Technically yes — pysubs2 and other tools can wrap an SRT in the ASS format structure. However, all the original styling is already gone. You would get a barebones ASS file with default styling and no positioning data — effectively identical in appearance to the SRT.
My video player shows blank subtitles after converting. What went wrong?
A few possible causes: (1) The original ASS file used drawing mode lines for all its text (unusual but possible for graphical subtitle overlays) — these are removed during conversion, leaving an empty SRT. (2) The SRT file has a byte-order mark (BOM) that some players do not handle. (3) The player requires UTF-8 without BOM encoding. Re-save the SRT as UTF-8 without BOM in a text editor to rule out encoding issues.

🎬 Convert your ASS subtitle files to SRT now — free, browser-based, no upload required.

Open ASS to SRT Converter →