Convert SMI subtitles to SRT in your browser
Convert an SMI subtitle file to UTF-8 SRT on your device: HanOpen reads its timing cues, lets you choose a subtitle language class, and saves a numbered SubRip track without sending the subtitle file to a server.
Your file never leaves this device.
Drop files here
Accepted: .smi. Several files at once are fine.
Up to 200 MB per file on this device.
Read an SMI file, choose its language track, then save UTF-8 SRT subtitles. UTF-8 and EUC-KR input are supported, up to 20 MB per subtitle file.
Used only when the selected track has no later ending cue. Choose between 0.1 and 60 seconds.
How to use it
- Choose one or more .smi subtitle files and select Read subtitle tracks to inspect the available languages.
- Pick a track for each file, check the text sample, and set how long the final subtitle should last when no ending cue follows it.
- Convert the selected tracks and download the SRT result; multiple successful conversions are supplied together in a ZIP.
What is preserved
Each conversion writes one selected language class from each SMI input. A blank cue can end the previous subtitle without becoming an empty numbered SRT entry. Line-break tags become line breaks; other markup, including italics and styling, is removed.
This guide describes what the tool handles. Review the result and any warnings before using your output.
About the formats
SAMI stores subtitle timing in an HTML-like document, commonly using SYNC tags with Start values in milliseconds and P elements identifying a language class. SubRip uses a simpler text structure: an increasing number, a start and end timestamp such as 00:00:01,200, then the subtitle lines. Moving between them requires more than changing a filename extension. HanOpen reads the source cues, separates language classes and constructs explicit end times for the selected track. The output is UTF-8 text with SRT timestamps and line endings, not a video or an embedded subtitle stream.
Frequently asked questions
- How does the tool read Korean text?
- It first tries strict UTF-8 decoding, including a UTF-8 byte-order mark when present. If that fails, it tries EUC-KR decoding, which covers the Korean legacy input used in the tests. The displayed encoding is the decoder that succeeded, not a statistical confidence score. Review the sample because successful decoding alone does not prove the intended spelling.
- What ends the last subtitle?
- A later cue in the chosen track supplies the previous cue’s end time, even if the later cue is blank. If no later cue exists, the final subtitle uses its start plus your chosen duration. The default is three seconds, adjustable from 0.1 to 60 seconds; the converter does not know the video’s actual ending.
- Do all languages become separate SRT files automatically?
- The track selector chooses one class per input file. To export another language from the same SMI, select that class and convert again, saving the previous result first. Class names such as KRCC and ENCC are source labels rather than translated language names.
- Will colours, italics or positioning survive?
- Only subtitle text and line breaks are carried across. Font settings, colour, positioning and italic tags are stripped in this version. If those visual details are necessary, use the original subtitle format or a subtitle editing workflow that explicitly supports them.
- Can this correct subtitles that are out of sync?
- The existing SYNC Start values are preserved as timing inputs. This converter has no audio track, frame-rate control or global time-shift option, so it cannot determine where spoken words occur. Correct timing in a subtitle editor before converting or adjust the SRT afterward.
- Why is an SMI file rejected?
- Files without readable timed text, invalid or decreasing timestamps, undecodable input and unavailable language classes produce explicit errors. UTF-16 input is not supported by the decoder selection here. Save a UTF-8 copy in a text editor when necessary, retaining the SYNC and P structure.
Select the right track before converting
A single SAMI file may interleave Korean and English text at the same times. The preview lists the available classes and the number of nonempty cues in each, with an initial text sample for the selected class. Use both the label and the sample: a file may use custom class names or put its content in an unlabelled track. Choosing the wrong class can create a valid SRT containing the wrong language.
Why empty cues matter
A source cue containing only a non-breaking space often means that the previous subtitle should disappear. HanOpen preserves that timing boundary and leaves the empty cue out of the numbered output. For example, text beginning at one second followed by a blank cue at two seconds is displayed for one second, even if the next spoken line starts at four seconds. Removing blank cues before interpreting the timing would incorrectly extend the first subtitle.
Check the result with the matching video
After downloading, open the SRT as text to inspect its numbering, accents and Korean characters, then load it beside the intended video. Check an early line, a line near the middle and the final spoken line. A well-formed SRT can still be mistimed for a different edit of the video. The last-duration setting only affects an unterminated final cue; it is not a repair for earlier timing differences.
Batch files and output encoding
Every file retains its own track choice, while the final-cue duration applies to the current batch. Outputs use UTF-8 regardless of whether the input was UTF-8 or EUC-KR, and CP949 output is not offered. Subtitle inputs are limited to 20 MB each. When a batch contains duplicate output filenames, the outer ZIP adds a number so that both results remain available.
Other options
When the subtitles require retiming, translation or preservation of visual styling, edit the source with a workflow designed for those tasks before exporting. HanOpen’s scope is narrower: it reads a local SAMI track and creates a clean text-based SRT. For a video that already carries embedded subtitles, first obtain a separate subtitle file through an appropriate local workflow; selecting the video itself is not supported.