The encoding problem nobody else handles
Subtitle conversion has a hidden failure mode: encoding. Files from the 2000s-era Korean subtitle scene are almost always EUC-KR, not UTF-8 — feed one to a typical converter (or an HTML5 player, which requires UTF-8) and every Hangul character breaks. The converters here sniff the real encoding first (UTF-8, UTF-16, EUC-KR) and always emit clean UTF-8, which is why the SMI → SRT and SMI → VTT pages exist as first-class tools rather than afterthoughts.
Player compatibility at a glance
| Format | VLC / mpv / PotPlayer | HTML5 / web players | YouTube upload | Styling |
|---|---|---|---|---|
| SRT | Yes | No | Yes | i / b / u only |
| VTT | Mostly | Only format accepted | Yes | Cues + CSS |
| ASS | Yes (full styling) | No | No | Full typesetting |
| SMI | Fading | No | No | Legacy HTML-ish |
Timing survives every conversion here to the millisecond (centiseconds for ASS); styling converts where a real equivalent exists and is stripped honestly where it doesn't — each page documents exactly which.