Turn ASS subtitle files into SMI format quickly—upload your .ass file, convert to .smi, and download the converted subtitles.
ASS — Advanced SubStation Alpha — is the styled subtitle format of the fansub world: fonts, colours, outlines, on-screen positioning and karaoke timing all live inside the script. SMI is Microsoft's SAMI format, an HTML-like caption document that legacy Windows Media Player and the classic Korean player ecosystem read natively. This converter rewrites each ASS dialogue line as a SAMI <SYNC> block entirely in your browser, so the file never leaves your device. Know the trade before you convert: the words and the timings carry across exactly, but ASS typesetting does not — SAMI has no per-caption coordinates and no karaoke, so positioning, effects and per-style fonts are dropped.
| Property | Value |
|---|---|
| Full name | Advanced SubStation Alpha — the v4.00+ revision of SubStation Alpha |
| Origin | SubStation Alpha, written by Kotus in 1996 for anime fansubbing; the Advanced revision followed in the early 2000s |
| Document structure | Plain text in INI-style sections: [Script Info], [V4+ Styles], [Events] |
| Cue line | Dialogue: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text |
| Timing | H:MM:SS.cc — centisecond resolution, so 0:00:01.50 is one and a half seconds |
| Styling | One style row per named style: font name and size, primary, secondary, outline and shadow colours, bold, italic, scale, spacing, rotation angle, border style, alignment, margins and font encoding |
| Inline overrides | Brace-wrapped tags — \pos and \move positioning, \an alignment, \k \kf \ko karaoke, \fad and \t animation, \clip, \frz rotation, \p vector drawing (tag reference) |
| Native editor | Aegisub |
| Best for | Fansubs, karaoke, sign typesetting — anything where position and font matter |
| Property | Value |
|---|---|
| Full name | Synchronized Accessible Media Interchange, spec version MSFT:1.0 |
| Origin | Microsoft, late 1990s; released as an open specification with no licensing fees (Understanding SAMI 1.0) |
| Document structure | HTML-like: a <SAMI> document wrapping a <HEAD> (title, optional <SAMIParam>, a CSS <STYLE> block) and a <BODY> of sync points |
| Cue line | <SYNC Start=1500><P Class=ENCC>Caption text |
| Timing | Elapsed milliseconds from the start of the media; DirectShow and Windows Media Player accept milliseconds only |
| Cue end times | None. A caption stays on screen until the next <SYNC>; a blank is written as a paragraph containing |
| Styling | A restricted CSS2 subset in the header — one P rule, .Class rules (one per language), #ID rules — plus inline HTML such as <B>, <I>, <U>, <FONT> and <BR> |
| Positioning | Margins and text alignment only; there are no per-caption x and y coordinates |
| Extensions | .smi or .sami — Windows Media Player auto-detects a .smi beside the video, but not .sami |
| Best for | Legacy Windows Media Player, classic Korean players and older .smi subtitle archives |
<SAMI> markup appears in the Output panel, each dialogue line rendered as a sync point in milliseconds.| In the ASS script | In the generated SMI | Why |
|---|---|---|
Dialogue: text |
A <P> inside a <SYNC> block |
The dialogue is the payload both formats share |
A start of 0:00:01.50 |
<SYNC Start=1500> |
Hours, minutes and centiseconds collapse into one elapsed-millisecond value |
An end of 0:00:04.00 |
A <SYNC Start=4000> holding |
SAMI has no end attribute, so a blank sync point clears the caption |
\N hard line break |
<BR> |
SAMI supports HTML's forced line break inside a caption block |
[V4+ Styles] rows |
A single default P rule |
SAMI's CSS subset has no outline, shadow or secondary-colour equivalent |
\pos, \move, \an, \clip, \frz |
Removed | SAMI places captions with margins and text alignment, not coordinates |
\k, \kf, \ko karaoke |
Removed | There is no syllable-level highlight in SAMI |
\fad, \t, \p drawings |
Removed | SAMI renders static caption blocks, not animation or vector shapes |
Override tags are stripped rather than passed through, because a player that cannot interpret them would otherwise print them: a typeset line would reach the screen as {\pos(192,120)\fad(300,300)}Sign: Closed. Since braces always delimit an override block in ASS, any literal braces sitting in the dialogue are removed along with them. One structural limit is worth planning around before you convert: SAMI displays one caption block per sync point, so two ASS lines that overlap in time — a sign layered over dialogue — cannot both appear, and the later sync point wins. When the typesetting matters more than the player does, keep the ASS file as your master; it is the only format in this set that carries the full style block.
No, and no converter can make them. Only the [Events] section is read — the [V4+ Styles] rows and every brace-wrapped override tag are discarded, and the output is written with one plain default paragraph rule. In our testing, a typeset sign written as {\pos(192,120)\fad(300,300)}Sign: Closed comes out of the converter as the caption Sign: Closed, correctly timed and completely unstyled. That is the honest ceiling of the format pair, not a limitation of the tool: SAMI's CSS subset has no outline, no shadow, no secondary colour and no x/y placement to map those properties onto.
They are removed. ASS marks karaoke with \k, \kf and \ko tags carrying per-syllable durations, which is how the highlight sweeps across a line word by word. SAMI has no syllable-level construct at all, so the syllables are simply rejoined into one caption that appears at the line's start time and clears at its end time. If the karaoke effect is the point of the file, SMI is the wrong target format — keep the ASS.
Yes. ASS stores times as H:MM:SS.cc at centisecond resolution, and each one is expanded into the elapsed-millisecond value that SAMI's Start attribute expects, so every sync point lands on an exact multiple of 10 milliseconds. Nothing is rounded or re-timed. The one structural difference is that ASS states an explicit end for every line while SAMI does not, so each cue's end time is written as its own sync point holding a blank — the mechanism Microsoft's specification prescribes for clearing a caption.
Because it predates ASS and comes from a different lineage. Windows Media Player has no ASS or libass renderer, but it reads a .smi sidecar natively with captions enabled, and SAMI became the de-facto subtitle format of the Korean media ecosystem, so classic players and older subtitle archives from that world are full of .smi files. If a player's documentation or an existing collection names .smi, matching it beats fighting it. If nothing specifically demands SAMI, ASS to SRT is the safer everyday target — SRT is read by practically every modern player and editor.
Save it in the same folder as the video with the same base filename — movie.smi next to movie.avi — and turn captions on in the player. Windows Media Player detects the .smi automatically under that naming rule but does not auto-detect the .sami extension, so stick with .smi. The generated markup also uses uppercase tags throughout, which sidesteps a documented Windows Media Player quirk: Microsoft's own SAMI guidance warns that the player may require all SAMI tags to be presented in caps.
Yes — the text is treated as UTF-8 from parse to output, so Hangul, kana, kanji, Cyrillic and accented Latin all pass through unchanged. Two encoding traps are worth knowing. First, the per-style Encoding field in an ASS file selects a font charset for rendering, not the file's text encoding, and it has no bearing on the characters that come out. Second, a very old player that expects a legacy code page such as EUC-KR may show UTF-8 Hangul as garbage; re-saving the .smi in the encoding that player's documentation names resolves it.
SMI to ASS makes the return trip, but it is not a true round trip. The text and timing come back intact; the styling does not, because it was never written into the SMI to begin with. A file that goes ASS to SMI and back arrives as plain dialogue in a generic ASS style — so keep the original .ass if the typesetting is worth anything to you, and treat the SMI as a delivery copy rather than a master.
No. This converter is genuinely client-side: the ASS script is parsed and the SAMI document is built by JavaScript running on your own machine, and the file is never sent anywhere. That is also why it returns instantly even for a feature-length script with thousands of dialogue lines — there is no upload, no queue and no processing wait.