XConvert
Downloads
Pricing

Convert SUB to SMI Online

Turn a .sub subtitle file into .smi in a few clicks—fast, simple, and ready to download from your browser.

Input (SUB)
Output (SMI)

SUB to SMI Converter

MicroDVD .sub and SAMI .smi are both survivors of the early-2000s desktop video era, and they solve the same problem in opposite ways. MicroDVD is one line per cue with frame numbers for timings. SAMI is Microsoft's HTML-derived captioning format, with a CSS style block, language classes and millisecond <SYNC> markers. This converter turns the first into the second in your browser, and the notes below cover the two things that decide whether the result plays: the frame rate, and the filename.

MicroDVD (.sub) at a Glance

Property Value
Origin Tiamat Software's MicroDVD Player, first released March 2000; development ended 2001
Standard None — a de facto convention
Cue syntax {start_frame}{end_frame}text, one cue per line
Timing model Frame numbers relative to a specific encode of the video
Frame rate Not part of the syntax; by convention declared as a first cue, {1}{1}23.976
Line breaks The pipe character `
Styling Inline codes — {y:i} italic, {y:b} bold, {y:u} underline, {c:$BBGGRR} colour, {f:name} font, {s:n} size
Multi-language Not supported — one language per file

SAMI (.smi) at a Glance

Property Value
Full name Microsoft Synchronized Accessible Media Interchange
Publisher Microsoft; documented in Understanding SAMI 1.0, published October 2001 and updated February 2003, and released as an open, licence-free specification
Extensions .smi or .sami — both are specified
Structure HTML-like: <SAMI> → <HEAD> (title and CSS <STYLE>) → <BODY> of <SYNC> blocks
Timing model <SYNC Start=n>, where n is elapsed media time; DirectShow and Windows Media Player accept milliseconds only
Clearing a caption A following <SYNC> whose paragraph contains a non-breaking space
Styling CSS, restricted to what the SAMI engine implements, plus inline HTML tags including <B>, <I>, <U>, <FONT> and <BR>
Multi-language Yes — one CSS class per language, matched against the player's language selection
Platform support Windows Media Player and Internet Explorer historically; YouTube accepts .smi/.sami uploads

How to Convert SUB to SMI

  1. Load Your MicroDVD File: Click "📂 Upload .sub" or paste the {start}{end}text lines into the Input (SUB) box — the character count beside the label confirms the file was read.
  2. Note the Frame Rate Your File Was Cut For: Open the .sub in a text editor and check whether the first line reads {1}{1}23.976 or similar. This converter reads every MicroDVD file at 25 fps and renders no frame-rate control, so anything other than 25 means the result needs verifying against the video.
  3. Confirm From Format Is SUB and To Format Is SMI: Both selectors list all thirteen supported formats, and the output panel header should read "Output (SMI)" before you convert.
  4. Convert, Download and Rename: Press "Convert →", then "⬇ Download .smi". The file arrives as subtitles.smi; rename it to match your video file, because that is how Windows Media Player finds it.

What the Generated SAMI Document Contains

Part What is written
Header <TITLE>Subtitles</TITLE> and a <STYLE TYPE="text/css"> block wrapped in an HTML comment
Paragraph style P { font-family: Arial; font-size: 16pt; color: white; background-color: black; }
Language class A single class, .ENCC { Name: English; lang: en-US; }
Cue <SYNC Start=1000><P Class=ENCC>text</P> — Start in milliseconds
Cue end A second <SYNC> at the end time carrying &nbsp;, which blanks the caption
Line breaks MicroDVD's `
Tag case All tags uppercase, which is what Windows Media Player has historically expected

Two deliberate omissions are worth knowing about. There is no <SAMIParam> block, so no Copyright, Media, Metrics or Spec declaration is written — the timings are milliseconds regardless, which is the only unit DirectShow and Windows Media Player read. And only one language class is defined. SAMI's real strength is carrying several languages in one file, each on its own class, with the player switching between them; a MicroDVD source has only one language to give it, and the class it lands on is .ENCC, labelled English. Editing that class name and lang: value is a two-line change if your captions are not English.

Why the Frame Rate Decides Whether This Plays in Sync

{25}{100}Hello means frames 25 to 100. What that is in milliseconds — the only unit a <SYNC Start=> attribute understands — depends on the frame rate of the video the file was cut against, and MicroDVD has nowhere in its syntax to record one. The convention is to put it in the first cue as {1}{1}23.976: FFmpeg's MicroDVD demuxer scans the opening lines for that shape, and the reference Python library pysubs2 raises UnknownFPSError and refuses the file rather than guess when it is absent.

This converter neither reads that line nor offers a frame-rate control, so every MicroDVD file is parsed at 25 fps. Delete a {1}{1}23.976 header from the input before converting — it is not recognised as metadata and will otherwise become a caption reading 23.976. And treat the <SYNC Start=> values in the output as provisional: load the file against the media and check the first and last caption before relying on it.

The check is arithmetic you can do by hand — the frame number divided by the frame rate is the time in seconds:

Frame number at 23.976 fps at 24 fps at 25 fps at 29.97 fps at 30 fps
24 0:00:01.001 0:00:01.000 0:00:00.960 0:00:00.801 0:00:00.800
1,500 0:01:02.563 0:01:02.500 0:01:00.000 0:00:50.050 0:00:50.000
90,000 1:02:33.754 1:02:30.000 1:00:00.000 0:50:03.003 0:50:00.000

A frame-rate mismatch is not a fixed offset you can nudge back into place. The error accumulates, so a file that looks fine over the opening minute is badly adrift by the end:

Source authored at Read at 25 fps, captions land After 1 minute After 10 minutes After 1 hour
23.976 fps early 2.5 s early 24.6 s early 2 min 28 s early
24 fps early 2.4 s early 24.0 s early 2 min 24 s early
29.97 fps late 11.9 s late 1 min 59 s late 11 min 56 s late
30 fps late 12.0 s late 2 min 0 s late 12 min 0 s late

Two smaller input quirks are worth knowing before you convert. A UTF-8 byte-order mark at the head of the file makes the first line unmatchable, because the cue pattern is anchored to an opening { — the first caption then silently disappears, and Windows-authored .sub files frequently carry a BOM. And a cue written with an empty end frame, {1234}{}, is skipped, because this parser requires digits in both braces.

Frequently Asked Questions

Why doesn't Windows Media Player show my captions?

Nine times out of ten it is the filename. Windows Media Player looks for a SAMI file with the same base name as the media file, with a .smi extension, sitting in the same folder — and it does not auto-detect the .sami extension. This converter always downloads as subtitles.smi, so rename it: holiday.mp4 needs holiday.smi beside it. After that, check that captions are switched on in the player, since SAMI captions are closed rather than burned in.

Is .smi always a SAMI file?

No, and this trips people up in both directions. .smi is also used for SMIL presentations and, on some systems, for other unrelated formats — while SAMI itself may legitimately use .sami. The reliable test is the first line: a SAMI document opens with a <SAMI> tag. Your input has the same problem from the other side, since .sub is claimed by MicroDVD, by VobSub bitmap subtitles, and by SubViewer.

Can SAMI carry more than one language, and can this conversion produce that?

SAMI can; this conversion cannot. The format's design intent is several caption tracks in one file, each <P> tagged with a CSS class such as .ENCC or .FRFRCC, and the rendering engine displays only the class matching the viewer's selected language — falling back to the first class defined if none is chosen. A MicroDVD file contains a single language, so the output defines one class. To build a multi-language SAMI file, convert each language separately and merge the <SYNC> blocks by hand, adding a class definition per language.

Do the italics and colours in my .sub file survive?

They do not. MicroDVD's {y:i}, {y:b}, {c:$0000ff}, {f:Arial} and {s:12} codes are stripped during parsing, and no <I>, <B> or <FONT> tag is written to replace them — even though SAMI supports all three. What you get is the paragraph style from the <STYLE> block applied uniformly: white Arial 16pt on black. Editing that one CSS rule restyles the whole file.

What unit is the Start attribute in?

Milliseconds. SAMI's Metrics parameter technically allows other time units for systems that use them, but Microsoft's documentation is explicit that DirectShow and Windows Media Player support milliseconds only, and that is what this converter writes. A <SYNC Start=61000> cue appears one minute and one second into the media.

What happens if my dialogue contains a < or an &?

Cue text is written into the document as-is, so a stray < risks being read as the opening of a tag by whatever parses the file. There is also an upstream effect worth knowing: during parsing, anything that looks like a tag is removed from the text, so a line reading 5 < 6 but 7 > 2 arrives as 5 2 — the characters between the brackets are gone. Substitute typographic angle quotes or reword before converting.

What did the converter actually emit in testing?

We ran a three-cue MicroDVD file through this pipeline. The output was a complete <SAMI> document with the header, CSS block and .ENCC class described above, and a <BODY> containing six <SYNC> blocks — one carrying each caption and one carrying &nbsp; at each cue's end time to blank it. A cue written with MicroDVD's pipe separator came through as two lines joined by <BR>. Text, cue order and line breaks were exact. The Start values are the part to verify against your media, for the frame-rate reasons above.

Is my subtitle file uploaded to convert it?

No. The file is read in the tab with the browser's FileReader API, converted by JavaScript delivered with the page, and returned as a Blob download — nothing carrying your subtitle text leaves the machine, and there is no server-side copy to expire. If SAMI turns out to be the wrong target, SUB to SRT is the most broadly compatible option and the SUB converter hub lists the rest.

Related Convert tools
SUB ConverterConvert Sub To SrtConvert Sub To VttConvert Sub To AssConvert Sub To SsaConvert Srt To SmiConvert Vtt To SmiConvert Ass To Smi

Image Tools

Image CompressorCompress JPEGCompress PNGCompress GIFCompress WebPImage ConverterJPG ConverterImage Resizer

Video Tools

Video CompressorCompress MP4MP4 to GIFVideo to GIFVideo ConverterMP4 ConverterVideo Cutter

Audio Tools

Audio CompressorCompress MP3Compress WAVAudio ConverterMP3 ConverterFLAC to MP3Audio Cutter

Document Tools

Compress PDFMerge Images to PDFSplit PDFPDF to JPGUnzip FilesRAR Extractor

Converters

Time Zone ConverterMeeting PlannerIST to ESTTime Zone AbbreviationsUnit ConverterLength ConverterFlow Rate Converter
© 2026 XConvert.com. All Rights Reserved.
About UsPrivacy PolicyTerms of ServiceContactHelp Us Grow