File picking and downloads often fail inside apps. Open this page in your default browser (Chrome, Safari) or on a computer.
Subtitle Converter (SRT, VTT, SMI)
Convert subtitles between SRT, WebVTT and SMI, and move the timing earlier or later when the captions are out of sync with the video. Old files saved in legacy encodings are detected and read correctly. Everything runs in your browser, so your subtitles are never uploaded.
Choose a subtitle file, pick the output format and timing, then press Convert.
How to use the subtitle converter
- Press Choose subtitle files and pick .srt, .vtt or .smi files. Choose several at once to convert them all with the same settings and download a ZIP.
- Pick the output format. YouTube and web players take VTT, almost every desktop player and editor takes SRT, and SMI is the old SAMI format used by some Windows players. Text drops the timestamps and gives you the dialogue one line per cue, handy for a transcript.
- If the subtitles are early or late by the same amount all the way through, set a timing shift. If they start in sync and drift further apart, use the frame rate fix.
- Press Convert subtitles to get a preview and download buttons. When you only change the timing, the new file gets a _sync suffix so it is not confused with the original.
SRT vs VTT vs SMI
| Feature | SRT | VTT (WebVTT) | SMI (SAMI) |
|---|---|---|---|
| Timestamp | 00:00:01,000 (comma) | 00:00:01.000 (period) | Start=1000 (milliseconds) |
| Used by | Most players and video editors | YouTube, HTML5 <video>, e-learning platforms | Older Windows players, Korean fansubs |
| Languages | One per file | One per file | Several per file (classes) |
| Styling | <i>, <b>, <u> | Position and style settings | HTML fonts and colors |
The converter keeps the dialogue, the timing and italic, bold and underline. Format-specific extras such as VTT cue positions or SMI font colors have no equivalent in the other formats and are dropped. VTT voice tags (<v Name>) become "Name: line" so you still know who is speaking.
Fixing out-of-sync subtitles
- Off by the same amount everywhere: your copy of the video has a different intro length. Compare when the first line is spoken with when the subtitle appears and shift by the difference. If the actor speaks at 10 s and the subtitle shows at 8 s, delay by 2 seconds.
- Drifting further apart: the subtitles were timed for a different frame rate. Subtitles made for a 23.976 fps film release run about 2.5 minutes late per hour on a 25 fps PAL broadcast. Choose 23.976 → 25; if they drift earlier instead, choose 25 → 23.976.
- Both: the frame rate fix is applied first, then the shift, so you can set both in one go.
Cues pushed before 0:00 by an advance are removed, and a cue that straddles 0:00 is trimmed to start at zero.
Garbled characters in old subtitle files
Subtitles made before UTF-8 became the norm were often saved in a legacy code page, and smart TVs, phones and YouTube then show the accented or Korean letters as junk such as "é" or "¾È³ç". The converter checks the bytes for a byte-order mark, valid UTF-8 or legacy Korean EUC-KR and reads the file accordingly; the output is always UTF-8, which every modern player understands. If detection guesses wrong, set the source encoding under Encoding and SMI options. For text that was already copied in garbled form, try the mojibake fixer.
FAQ
Are my subtitle files uploaded?
No. The files are read and converted entirely in this browser and are never sent to or stored on a server, so unreleased translations stay private.
Which format should I upload to YouTube?
YouTube accepts both SRT and VTT but not SMI, so convert SMI files first. For the <track> element of an HTML5 <video>, only VTT works.
My SMI file has two languages.
When you choose an SMI file, the languages inside it (for example KRCC and ENCC) appear under Encoding and SMI options → SMI language. Pick one before converting; otherwise the first language is used.
Can I burn the subtitles into the video?
This tool works on subtitle files only. Most players load a subtitle automatically when it sits next to the video with the same name (movie.mp4 and movie.srt). If you trimmed the start of a video with Split & Trim Video, advance the subtitles by the amount you cut.
Sources
- WebVTT format: W3C, WebVTT: The Web Video Text Tracks Format
- SAMI (SMI) format: Microsoft Learn, Understanding SAMI 1.0
- YouTube subtitle formats: YouTube Help, Supported subtitle and closed caption files
- Browser text encodings: WHATWG Encoding Standard
Found this useful? Share it
Only the page link is shared. Your inputs and files are never included.