Skip to content

SubRip SRT to ASS subtitles converter

SRT to ASS writes a minimal Advanced SubStation Alpha file with one Dialogue line per parsed SRT cue.

  • Converted with Subtitle engine · nothing stored
  • Free: 5 conversions a day · 5 MB each
  • Higher limits →

From real runs

What you get — and what changes

  • ASS header Changed

    Our subtitle engine added Script Info, ScriptType v4.00+, Events, and a fixed Dialogue format line.

  • Timestamps Changed

    SRT comma milliseconds became dot-millisecond values such as 00:00:01.000.

  • Cue numbers Lost

    Original SRT indexes did not become separate ASS fields; each cue became a Dialogue row.

  • Multiline cues Changed

    Internal SRT line breaks became ASS \N line break escapes inside Dialogue text.

  • Placement tags Kept

    The literal {\an8} override stayed in Dialogue text rather than being interpreted or normalized.

  • Styles Changed

    The output always used the Default style and did not create a V4+ Styles section from the SRT.

Sample conversions

Styled torture SRT

Input
BOM and CRLF SRT with <i>Hello</i>, a two-line cue, overlapping timing, {\an8}, and quoted café text.
Output
402 byte ASS with three Dialogue rows, dot milliseconds, \N for the first cue's line break, and literal inline tags.

Simple fixture SRT

Input
176 byte SRT with three numbered cues and comma-millisecond timings.
Output
363 byte ASS with Script Info and Events sections, three Default-style Dialogue rows, and no V4+ Styles section.

A real SubRip SRT → ASS subtitles run

We converted our SubRip SRT sample (176 B) with Subtitle engine on 2026-09-11. It took 1 ms and produced a 363 B ASS subtitles file, 2.1× larger than the input. The engine raised no warnings.

Input · sample.srt · 176 B

3 cues

Cues
3
Lines
9

Output · sample.ass · 363 B

3 cues

Cues
3
Lines
7

First lines of the output

ass
[Script Info]
ScriptType: v4.00+

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,00:00:01.000,00:00:03.400,Default,,0,0,0,,Previously, on the show…
Dialogue: 0,00:00:04.100,00:00:06.900,Default,,0,0,0,,We never found the second key.
Dialogue: 0,00:00:07.200,00:00:09.000,Default,,0,0,0,,Then we look again.

Do it yourself

FFmpeg

bash
ffmpeg -i in.srt out.ass

FFmpeg may write a fuller style section than subtitle-ir, so compare styling if ASS renderer behavior matters.

SubRip SRT to ASS subtitles by API or MCP

The HTTP API and the MCP server run the exact engine this page uses (Subtitle engine); the response carries the same warnings the web converter shows. Check support first with GET /api/v1/pairs?from=srt&to=ass.

curl
curl -X POST https://filetypeconverters.com/api/v1/convert \
  -H "Authorization: Bearer $FTC_API_KEY" \
  -F "file=@input.srt" -F "from=srt" -F "to=ass" \
  --output output.ass
API reference

When this is the wrong conversion

  • Use /convert/srt-to-txt for a transcript where timing and subtitle styling are not needed.
  • Use /convert/srt-to-json when cue timing and text need to feed an app or QA script.
  • Do not use ASS unless the destination player or typesetter actually supports ASS subtitles.

SubRip SRT to ASS subtitles questions

Does SRT to ASS create style definitions?

No V4+ Styles section was written by our subtitle engine. The output used the Default style name directly in Dialogue rows.

How are multiline SRT cues represented in ASS?

The line break becomes \N inside the Dialogue text field. We saw that in the first torture cue.

Are SRT positioning tags converted to ASS positioning?

No. The {\an8} tag stayed literal in the Dialogue text in our run, so review the result in the target player.