Skip to main content
SubtitleMatrix

SMI Subtitle Format

What this format can express

Text styling
Bold and italic
On-screen positioning
Yes
Karaoke timing
No
Line breaks inside a cue
Yes
Timeline
Start and end time for every cue
Timing resolution
1 ms
Timing stored as frame numbers
No
Right-to-left text
Yes

Examples

A typical SAMI file, and what is read out of it

File

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial; }
.ENCC { Name: English; lang: en-US; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P Class=ENCC>Hello there.
<SYNC Start=3000>
<P Class=ENCC>&nbsp;
<SYNC Start=3500>
<P Class=ENCC>How are you?<br>Fine, thanks.
<SYNC Start=6000>
<P Class=ENCC>&nbsp;
</BODY>
</SAMI>

What it holds

2 cues, 3 lines of text

  Start=1000  =  00:00:01.000 → 00:00:03.000
    Hello there.
    [Class=ENCC]
  Start=3500  =  00:00:03.500 → 00:00:06.000
    How are you?
    Fine, thanks.
    [Class=ENCC]

Outside the cues:
  head       a <STYLE> block with CSS for the paragraphs, kept as it came in
  cue ends   the next <SYNC> tag — a SAMI file writes no end time of its own
  clearing   a <P>&nbsp; block blanks the screen; the two here are kept as clearing blocks, not turned into cues

The right-hand side is not a converted file — it is what this site reads out of the left-hand side, and what every conversion of that file starts from.

An awkward SAMI file, and what is still read out of it

File

<SAMI>
<BODY>
<SYNC Start=abc>
<P Class=ENCC>this block's start cannot be read
<SYNC Start=2000>
<SYNC Start=4000>
<P>no attributes here<br>second line
<SYNC Start="6000">
some loose text before any P
</BODY>
</SAMI>

What it holds

3 cues, 3 lines of text

  Start=2000  =  00:00:02.000 → 00:00:04.000
    (no text)
  Start=4000  =  00:00:04.000 → 00:00:06.000
    no attributes here
    second line
  Start=6000  =  00:00:06.000 → 00:00:08.000
    some loose text before any P

Outside the cues:
  head       no <STYLE> block and no <TITLE> — just the <SAMI> and <BODY> tags
  cue ends   the next <SYNC> tag; the last cue has none after it, so its end time was given a default
  loose text text between two <SYNC> tags that belongs to no <P> is kept and attached to the cue open at that point

Reported while reading — repaired or skipped, never silently:
  1 × SYNC blocks whose start time could not be read (they were skipped)
  1 × the last cue has no following timestamp, so its end time was generated

Real files arrive with a byte-order mark, Windows line endings, a stray line before a timecode, or a timecode that cannot be read at all. None of it throws: whatever cannot be understood is reported rather than dropped in silence.

Convert SAMI (SMI) to another format

Each of these runs entirely in your browser. The labels say what that direction costs before you open it.

Converting into this format

SAMI (SMI) is one of the subtitle formats this site handles, and this page is its reference: what it can store, what it cannot, and a page for every format you can convert it to.

The table above is the whole of it — there is no hidden feature list. When a row says no, that is exactly what is lost by converting into SMI, and each conversion page linked below says so before you open a file.

Every one of those conversions runs in your browser. Nothing is uploaded and no account is needed, which matters for material under an NDA, a patient record or a broadcast embargo.

Frequently asked questions

What is a SMI file?

`.smi` is Microsoft's SAMI: subtitles written as an HTML fragment, where each `<SYNC Start=…>` tag says what is on screen from that moment on. Windows Media Player and the DVD and broadcast tooling of that era read it, and `.smi` files still turn up in archive material.

Does SMI store styling?

A little, and inside the text rather than beside it: emphasis and colour are part of the cue (`<b>`, `<i>`, `<u>`, `<font color="…">`). Nothing declares a font size, an outline or a margin, so the page displaying the subtitles decides those. A SAMI file can also carry CSS for the paragraphs in a `<STYLE>` block in its head — that is where a caption file usually says which font and colour the channel uses. A file that has one keeps it; a file that has none gets a small default one on the way out.

Does every SMI cue store both a start and an end?

Yes, and a moment in a SMI file reads `Start=4126`. That is as fine as SMI goes — to the millisecond — and the number is exact, so a cue can be short, long, or overlap the next one without anything being implied.

Which format should I convert SMI to?

Nothing on this site takes everything a SMI file holds, so there is no free direction — each conversion page names its own list of losses. Pick the target by which of those lists you can live with, not by which format you have seen most often.

What does a SAMI file keep outside its cues?

A `<STYLE>` block in the head holding CSS for the paragraphs — for a caption file that is usually the channel's look: font, size, colour, and where on screen the text sits — plus a `<TITLE>`, and attributes on each paragraph such as `Class=ENCC`, which is how a paragraph is pointed at one of those CSS rules. None of that is part of the cue model, so a format with no equivalent cannot take it, and each conversion page lists it as a loss.