The Complete Subtitle Conversion Guide — SRT, VTT & SMI timecodes, sync and encoding
Updated 2026-07-11 · All conversion runs in your browser; files are never uploaded.
Why so many subtitle formats?
A subtitle file is just text that records which line to show, from when to when. Each platform chose a different way to write that down, which is why several formats exist. subconvert handles four of them:
- SRT (SubRip) — the most widely supported format. Blocks of a number, a timeline, and the text. Works with desktop players and YouTube uploads.
- WebVTT (.vtt) — the HTML5
<track>web standard. Starts with aWEBVTTheader and uses a dot in its timecodes. - SMI (SAMI) — a Microsoft format that was the de-facto standard on older Korean media players for years.
- TXT — a plain transcript with timecodes removed. Handy for proofreading or as a translation draft (output only).
Timecodes are the tricky part
Timecodes break most often during conversion. The three timed formats write the same instant differently:
- SRT:
00:01:02,500— hours:minutes:seconds, then a comma and three milliseconds. - VTT:
00:01:02.500— the separator is a dot. The hour can be dropped, e.g.01:02.500. - SMI:
<SYNC Start=62500>— the start time as an integer of milliseconds; the end is set by the next empty ( ) cue.
subconvert converts every timecode to milliseconds internally, so comma-vs-dot and dropped-hour differences never matter. When exporting SMI it automatically inserts an empty cue at each caption's end time so the screen clears correctly.
Fixing out-of-sync subtitles — the offset
Downloaded subtitles often drift from the video. A sync offset shifts every cue at once.
- If the subtitles appear too late, use a negative value (e.g.
-1.5) to move them earlier. - If they appear too early, use a positive value (e.g.
+0.8) to delay them. - Use the ±0.5s / ±1s quick buttons for fine adjustments.
Any cue pushed before 0 is clamped to 0 — no negative times are produced.
FPS retiming (advanced)
Sometimes subtitles start in sync but drift further apart over time. That happens when the frame rate (FPS) of the video the subtitles were made for differs from your video (e.g. a 23.976fps movie subtitle placed on a 25fps PAL copy). Pick the source and target FPS in the advanced options and subconvert rescales the whole timeline with new time = old time × (sourceFPS / targetFPS). Only use it when a plain offset can't align the file.
Recovering garbled Korean subtitles — EUC-KR
Older Korean SMI and SRT files are frequently stored in EUC-KR (CP949) rather than UTF-8. Read as UTF-8, the Hangul looks like garbage. Switch the encoding selector to EUC-KR and the same file is re-decoded correctly. Output is always UTF-8, so one conversion turns a broken file into a clean, universally readable subtitle.
How to convert (summary)
- Drop a subtitle file on the drop zone, or paste its text. The source format is auto-detected.
- If Korean text is garbled, switch the encoding to EUC-KR.
- Choose the target format (SRT, VTT, SMI or TXT) and enter a sync offset if needed.
- Check the preview, then copy it or download the file.
Limitations
- Line breaks and basic
<i>/<b>/<u>tags are preserved, but advanced ASS/SSA styling, VTT positioning and SMI CSS classes are not fully carried over. - TXT has no timing, so it cannot be turned back into a timed format.