Home › Tools › SRT to ASS Converter

SRT to ASS Converter

Turn SubRip (.srt) subtitles into a complete ASS v4+ script with a default style, ready for styled players.

Drop a subtitle file here, or

Your file never leaves your device

This tool is plain JavaScript. There is no upload step and no server-side processing, so confidential captions, unreleased content and client material stay on your machine.

What this does

ASS is the format that supports fonts, colours, positioning and karaoke — which is why fansub groups and staged releases use it. SubRip supports none of that, so converting SRT upwards gives you a file a player like mpv, VLC or Aegisub can restyle, rather than a file that is already correct.

How to use it

  1. Paste your .srt content into the box, or drop the file onto it.
  2. A complete ASS v4+ script is written: [Script Info], one Default style in [V4+ Styles], and one Dialogue: line per cue in [Events].
  3. Copy the result or download it as an .ass file, then restyle it in Aegisub or your player of choice.

Good to know

  • The output is ASS v4.00+, not SSA v4.00. v4.00+ is what modern tools expect; the older SSA variant is only needed for legacy hardware players.
  • Cue order and timing are preserved. Only the container changes.
  • A single Default style is written. Add more styles in Aegisub if you want to distinguish speakers or sign translations.
  • If the source SRT was itself converted from ASS, positioning and karaoke are already gone — this converter cannot bring them back, only supply a file that could carry them next time.

Why the generated file looks plain at first

A converter cannot invent styling. SRT records text and timing, nothing else. So the ASS that comes out has one style — Arial at 64px, white with a black outline, centred near the bottom — and every cue points at it. That is a working baseline, not a finished look. The point of converting is to get the cues into a format where styling is possible; the styling itself is a design decision you make afterwards.

Timing converts cleanly in this direction. SubRip writes 00:00:01,000 with milliseconds. ASS writes 0:00:01.00 with centiseconds, so milliseconds are divided by ten and rounded down. A cue at 00:00:04,205 becomes 0:00:04.20 — a five millisecond difference, well below a frame at any normal frame rate.

Inline tags become override blocks. <i> and <b> in the SRT are rewritten as {\i1} / {\i0} and {\b1} / {\b0}, and any other markup is stripped rather than left to confuse the parser. Line breaks inside a cue become \N, the ASS hard break.

The PlayRes is set to 1920×1080. ASS positioning and font sizes are relative to the resolution declared in [Script Info]. Matching that to your video's resolution keeps the styling proportional — if your source is 1280×720, change PlayResX and PlayResY before you start styling, otherwise every measurement you set will be scaled.

Worked example

Input — .srt
1
00:00:01,000 --> 00:00:04,000
Hello there.

2
00:00:04,200 --> 00:00:07,000
<i>Music playing</i>
Output — .ass
[Script Info]
ScriptType: v4.00+
WrapStyle: 0
PlayResX: 1920
PlayResY: 1080

[V4+ Styles]
Format: Name, Fontname, Fontsize, ...
Style: Default,Arial,64,&H00FFFFFF,...

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:04.20,0:00:07.00,Default,,0,0,0,,{\i1}Music playing{\i0}

Milliseconds became centiseconds, became {\i1}, and the cues now sit in an [Events] block that a player can restyle.

FAQ

Will my subtitles look the same in the player?
The text and timing will match. The appearance will not, because the generated file uses one plain style. That is deliberate: SRT carries no styling to preserve, so the converter supplies a neutral baseline instead of guessing at a look.
Why 1920×1080?
It is the most common modern delivery resolution, and ASS measurements scale from it. If your video is a different size, edit PlayResX and PlayResY in the [Script Info] block to match.
Can I convert back to SRT afterwards?
Yes — the ASS to SRT converter reads this file back. Italics and bold survive the round trip; anything you add in Aegisub beyond that will not.
Does this upload my file?
No. The conversion runs entirely in your browser. Nothing is sent to a server, and there is no file size limit beyond your own memory.

Troubleshooting

  1. The player shows the file but no subtitlesCheck that the [Events] block still contains the Format: line — ASS needs it to know which column is which. If you edited the file by hand and removed it, the player will read the Dialogue lines as malformed.
  2. Text after a comma in a cue was cut offThat happens when a Dialogue line is edited by hand and the Text field is split at the wrong comma. The Text field is last, so it must absorb every remaining comma in the line.
  3. Fonts look enormous or tinyThe PlayResX / PlayResY values do not match your video. ASS sizes are relative to that declared resolution, so a mismatch scales every measurement.
  4. Italics show as literal {\i1} textThe override block landed outside a cue, or the braces were escaped. Override codes only work inside the Text field of a Dialogue line.
  5. My styling disappeared after round-tripping through SRTSRT has no field for positioning, fonts or karaoke, so any of that is lost the moment a file passes through it. Keep the ASS as the master and derive SRT copies from it, not the other way around.

Related tools

Last updated 2026-09-21. All conversions happen locally in your browser.