XConvert
Downloads
Pricing

Convert VTT to SMI Online

Turn WebVTT (.vtt) subtitles into SMI (.smi) format in a few clicks—fast conversion with no software installation.

Input (VTT)
Output (SMI)

How to Convert VTT to SMI Online

  1. Upload Your VTT File: Drag and drop your .vtt file or click "Add Files" to browse. Parsing happens in your browser — the cues never leave your device. Batch is supported, so a whole folder of WebVTT exports can be converted in one pass.
  2. Confirm SMI as the Output: SMI (.smi, Microsoft SAMI 1.0) is preselected. The converter wraps your cues in the required <SAMI><Head><SAMIParam>…<Body> scaffolding, defines a single .ENUSCC language class, and emits each cue as a <SYNC Start=...> block with the timestamp converted from VTT's HH:MM:SS.mmm to SAMI's milliseconds-since-start integer.
  3. Review What Gets Translated (Optional): Inline <b>, <i>, <u>, and <font color> tags pass through verbatim — SAMI is HTML-derived and renders them natively. WebVTT-only constructs (<c.classname>, <v Speaker>, <ruby>, <lang>, cue settings like line: and position:, embedded STYLE and REGION blocks) are dropped because SAMI 1.0 has no equivalent grammar.
  4. Convert and Download: Click Convert. The .smi file downloads instantly. No upload, no sign-up, no watermark, no file-size cap beyond what your browser can hold in memory.

Why Convert VTT to SMI?

WebVTT is the modern W3C standard for the HTML5 <track> element — it lives natively inside browser-based players. SAMI (Synchronized Accessible Media Interchange), released by Microsoft in June 1998 and last formally documented as MSFT:1.0 in February 2003, predates HTML5 by a decade. The two formats solve the same problem (timed text alongside video) but expect completely different host environments. When a legacy Windows-era player, a Korean media library, or a Windows Media Player skin refuses your .vtt, transcoding to .smi is usually the fix.

  • Windows Media Player sidecars — WMP scans the folder for a file with the same basename and .smi extension and loads it automatically as the closed-caption track. .vtt is not recognised. Anyone maintaining an old WMV/ASF library on Windows needs SAMI for sidecar captions.
  • Legacy Korean video collections — SAMI became the de-facto subtitle format in Korea during the 2000s and is still the expected format for many older KMPlayer, GOM Player, and PotPlayer libraries. Drama and movie collections ripped before ~2015 ship with .smi files; replacing them with .vtt breaks the automatic load.
  • VLC and MPC-HC compatibility — VLC and Media Player Classic both load .smi sidecars (VLC's SAMI demuxer has shipped since at least 2008). For users on those players who only have .vtt files from a web download, conversion makes the existing library "just work."
  • Encarta-style multimedia and CD-ROM titles — SAMI was designed for Microsoft Encarta and similar Windows multimedia titles. Anyone restoring or maintaining a CD-ROM-era educational title or kiosk replays SAMI captions, not VTT.
  • DHTML / older Internet Explorer captioning — The Windows Media Player ActiveX control exposes SAMIFileName, SAMILang, and SAMIStyle properties for in-page captions. Internal corporate portals built around that stack still consume SMI.
  • Multi-language captions in one file — SAMI's Class mechanism lets a single .smi carry English, Korean, and Japanese tracks distinguished by lang: en-US, lang: ko-KR, etc. WebVTT typically expects one file per language. Consolidating several .vtt files into one multi-language .smi is a common archival workflow.

VTT vs SMI — Format Comparison

Property VTT (WebVTT) SMI (SAMI 1.0)
Standardised by W3C (webvtt1 Candidate Recommendation Draft) Microsoft, published Jun 1998; spec updated Feb 2003
Current status Active web standard Legacy; superseded by TTML/WebVTT for new work
File header Required: WEBVTT on line 1 Required: <SAMI>…</SAMI> document with <Head> and <Body>
Underlying grammar Plain-text cue blocks HTML-like markup with CSS in <Style>
Timestamp format HH:MM:SS.mmm --> HH:MM:SS.mmm <SYNC Start=ms> integer milliseconds from media start
Inline styling <b> <i> <u> <c> <ruby> <v> plus CSS classes Most HTML 4.01 inline tags (b i u font basefont strong em)
Block styling STYLE blocks with ::cue selector CSS in <Style Type="text/css"> block in the head
Positioning line: position: align: vertical: size: cue settings None — relies on <Sync> block CSS classes
Multi-language in one file No (one .vtt per language) Yes — Class .ENUSCC {lang: en-US} etc.
Native browser support <track kind="subtitles" src="...vtt"> None (no major browser parses SAMI)
Player support Chrome, Firefox, Safari, Edge, VLC, MPV Windows Media Player, VLC, MPC-HC, KMPlayer, PotPlayer, GOM Player
Typical MIME / extension text/vtt / .vtt application/smil (informal) / .smi or .sami
Encoding UTF-8 mandated Any (UTF-8, EUC-KR, CP949, Shift-JIS — declared in <META> or assumed)

What Gets Translated, Preserved, or Dropped

VTT element Behavior in SMI output
WEBVTT header Removed; replaced with <SAMI><Head> scaffolding
NOTE comment blocks Discarded
STYLE blocks (embedded CSS) Dropped — replaced with a minimal <Style> paragraph rule
REGION blocks Dropped (SAMI has no region concept)
Cue identifiers (numeric or string) Dropped — SAMI uses <Sync Start=> only
Cue settings (line position align vertical size) Stripped — SAMI has no equivalent on the cue line
<b> <i> <u> inline tags Preserved verbatim — SAMI accepts HTML 4.01 inline tags
<font color="..."> Preserved (legal HTML in SAMI)
<c.classname> class spans Class name dropped, inner text retained
<v Speaker> voice tags Text retained; speaker label dropped (no SAMI equivalent for the <v> attribute)
<ruby> annotations Dropped — Ruby is not part of SAMI 1.0
Timestamps Recomputed: 00:01:23.456 → Start=83456 milliseconds
End timestamps Encoded as a blank <Sync> block at the cue's end time (SAMI uses appearance times, not durations)
UTF-8 text Preserved as UTF-8 in the output (declared in the <Style> block)
&amp; &lt; &gt; entities Preserved

Frequently Asked Questions

Why does SMI use millisecond integers when VTT uses HH:MM:SS.mmm?

SAMI was designed for the Windows Media DirectShow stack, where timestamps are most naturally expressed as elapsed milliseconds since the media's start. The <SYNC Start=83456> syntax means "display this paragraph 83.456 seconds in." WebVTT, by contrast, was modelled after SRT and uses a human-readable wall-clock notation. The converter does the arithmetic (hours*3600000 + minutes*60000 + seconds*1000 + millis) so the playback timing is byte-equivalent — only the encoding differs.

Will my subtitle positioning survive the conversion?

No. WebVTT's line:, position:, align:, vertical:, and size: cue settings have no counterpart in SAMI 1.0 — SAMI relies on CSS paragraph styles declared in <Style> and Class definitions, applied to entire <P> blocks rather than per-cue. The converter drops the cue settings and emits each cue as a plain <P Class=ENUSCC>. If your VTT relied on positioning to avoid covering on-screen text, you will need to re-author the layout in the SAMI <Style> block manually.

Why won't Windows Media Player show my .smi captions?

Three common causes. First, the .smi file must have the same basename as the media file and live in the same folder (MyVideo.wmv + MyVideo.smi). Second, Windows Media Player only auto-loads .smi, not .sami. Third, captions must be enabled under Play → Lyrics, Captions, and Subtitles → On if Available. SAMI files with <META> declaring a non-default encoding can also fail silently on older WMP builds — UTF-8 with a BOM is the safest choice for cross-version compatibility.

Can a single .smi carry Korean and English captions?

Yes — that's one of SAMI's defining features. The converter emits one Class block per detected language. If your source VTT is English-only, the output .smi has a single .ENUSCC class with lang: en-US. To add Korean, run a separate VTT-to-SMI conversion on the Korean .vtt, then merge the two <P> blocks under the same <Sync> timestamps and define both .ENUSCC and .KRCC classes in the header. KMPlayer, GOM Player, and PotPlayer will then surface a language switcher.

What character encoding does the output use?

UTF-8 by default, declared in the SAMI <Style> block. This works in every modern player. Legacy Korean SAMI files were often saved as EUC-KR or CP949 because that's what Windows-XP-era Korean Windows used; if you're authoring .smi for an old PotPlayer or GOM Player build that ignores the BOM, you can resave the output as EUC-KR in a text editor. Modern KMPlayer, VLC, and MPC-HC detect UTF-8 automatically.

Does VLC really support SMI subtitles?

Yes. VLC's SAMI demuxer has shipped since the 0.x series in the late 2000s and is still in current builds — it loads .smi sidecars the same way it loads .srt. The implementation is lenient about case (<SAMI> vs <sami>) and tolerates malformed CSS, but it does require the basic <SAMI><Body><Sync Start=...> skeleton. Files emitted by this converter are tested against VLC, MPC-HC, KMPlayer, and Windows Media Player.

What about ruby text or furigana for Japanese SAMI files?

WebVTT supports <ruby> annotations natively; SAMI 1.0 does not. If your VTT uses ruby for Japanese furigana or Chinese pinyin, the converter strips the ruby base/text wrapping and keeps the base characters only. For Japanese SAMI workflows that need furigana, the convention is to inline the reading in parentheses after the kanji — that's lossy compared to VTT's structured ruby, but it's the only option SAMI 1.0 permits.

Is SMI a sensible target format in 2026, or should I use TTML or stick with VTT?

For new work, no — WebVTT for browsers and TTML / IMSC1 for broadcast and OTT deliveries are the modern defaults. Convert to SMI when you have a specific legacy reason: a Windows-era video archive with WMP playback, a Korean drama library that ships .smi sidecars, a CD-ROM-era multimedia title, or a corporate intranet built around the old Windows Media Player ActiveX control. For any other workflow, prefer .vtt (HTML5) or .ttml/.dfxp (timed-text broadcast).

Why does my SMI file display all captions at the same position even though my VTT had them moved around?

Because SAMI 1.0 positions captions through CSS rules on <P Class> paragraphs in the document <Style> header, not per-cue. WebVTT's line:0 (top of screen) or position:90% align:end (bottom-right) cue settings are simply dropped. To re-create per-cue positioning in SAMI you would need to define multiple Class styles (.TopCC, .BottomRightCC, etc.) with different margin-top and text-align values, then assign each <P> to the appropriate class. That's a manual re-authoring step the converter doesn't attempt.

Related Convert tools
VTT ConverterConvert Vtt To SrtConvert Vtt To AssConvert Vtt To SsaConvert Vtt To SbvConvert Srt To SmiConvert Ass To SmiConvert Ssa 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