One subtitle converter for every common caption format
This subtitle converter reads eleven subtitle and caption formats and writes any of them: SubRip SRT, WebVTT, Advanced SubStation (ASS) and SubStation Alpha (SSA), YouTube SBV, TTML and DFXP, MicroDVD SUB, LRC lyrics, plain text and JSON. Drop a file or paste the text — the format is detected automatically — choose the output and download. It also fixes the problems that tend to come with subtitle files: wrong timing, the wrong frame rate, garbled accents and overlapping lines.
Everything runs locally in your browser. There is no queue, no account and no upload, which matters when the subtitles belong to an unreleased film, a client project or a private recording.
How to use the Subtitle Converter
- Drop a subtitle file onto the upload area or paste its text into Input subtitles. Leave Input format on Auto-detect unless the guess shown underneath is wrong.
- Choose the Output format. The converted text appears next to the input and updates whenever you change a setting.
- To fix sync, enter a Time shift in milliseconds; to fix gradual drift, set Frame-rate conversion from the rate the subtitles were made for to your video’s rate.
- Read the badges and the list below them: overlaps, cues out of order and cues that end before they start are reported. Tick Sort cues and fix overlaps to repair them.
- Check the result in the Preview, then press Download or Copy.
Subtitle Converter features
Eleven formats in, eleven out
SRT, VTT, ASS, SSA, SBV, TTML, DFXP, MicroDVD, LRC, TXT and JSON. On the input side it also reads Whisper-style JSON segments and YouTube json3 caption files.
Formatting translated, not just dropped
Italics, bold, underline and colours move between SRT tags, WebVTT classes, ASS override codes such as {\i1}, TTML span styles and MicroDVD {y:i} codes. Top-of-screen positions survive as {\an8}, line:0 or a TTML region.
Time shift and frame-rate fix
Move every cue by any number of milliseconds, or rescale all times between 23.976, 24, 25, 29.97, 30, 50, 59.94 and 60 fps.
Validation and repair
Each file is checked for overlapping cues, cues out of order, negative or zero durations and empty cues, with cue numbers so you can find them. One tick sorts the cues and trims overlaps.
Encoding detection
UTF-8 and UTF-16 are detected automatically and older files fall back to Windows-1252. Nineteen encodings cover Cyrillic, Central European, Greek, Turkish, Hebrew, Arabic, Thai, Chinese, Japanese and Korean subtitles.
Supported subtitle formats
When the output cannot hold something, such as colours in SBV, the text is kept and that formatting is left out. ASS styles are preserved when converting ASS to ASS or SSA; other inputs get a clean Default style you can restyle in any subtitle editor.
| Format | Extension | Timing | Formatting kept |
|---|---|---|---|
| SubRip | .srt | Milliseconds | Italic, bold, underline, colour, {\an} position |
| WebVTT | .vtt | Milliseconds | Tags, classes, cue settings, STYLE blocks |
| ASS / SSA | .ass, .ssa | Centiseconds | Styles, override tags, alignment |
| YouTube SubViewer | .sbv | Milliseconds | Plain text |
| TTML / DFXP | .ttml, .dfxp, .xml | Clock time, frames or ticks | Span styles, colours, top and bottom regions |
| MicroDVD | .sub | Video frames | Whole-line italic, bold, underline, colour |
| LRC lyrics | .lrc | Start times in centiseconds | Plain text |
| Plain text | .txt | None (automatic when read) | Plain text |
| JSON | .json | Milliseconds | SRT-style tags |
Frame rates: fixing subtitles that drift
When subtitles start in sync but gradually run ahead or fall behind, they were timed for a version of the video with a different frame rate. Films shot at 24 frames per second are usually released at 23.976 fps; PAL television and many European DVDs play the same film at 25 fps, which makes it about 4% shorter. Subtitles timed for one version drift by roughly 2.5 seconds for every minute on the other.
Set Frame-rate conversion to the rate the subtitles were made for on the left and your video’s rate on the right. Every time is multiplied by the ratio between them: going from 25 to 23.976 fps, a cue at 10:00.000 moves to 10:25.626. Add a small time shift if the first line is also offset.
Formats that need extra information
- MicroDVD (.sub) counts video frames instead of time, so choose the MicroDVD frame rate of your video. If the first line of the file declares a rate, like
{1}{1}23.976, that value wins; files written here include such a line. - LRC lyric files only say when each line starts. A line lasts until the next one, and the empty timestamped lines this converter writes mark when text should disappear.
- Plain text has no timings at all. Each paragraph, or each line if there are no blank lines, becomes one subtitle lasting 1.5 to 7 seconds depending on its length, starting at 0:00 — a quick way to rough out subtitles before fine-tuning them.
- VobSub (.sub with .idx) stores pictures of text, not text. It needs OCR software before any converter can read it.
Subtitle Converter FAQ
Which formats can this subtitle converter handle?
SRT, WebVTT, ASS, SSA, YouTube SBV, TTML, DFXP, MicroDVD SUB, LRC, plain text and JSON, in any direction. The input format is detected automatically.
How do I convert ASS to SRT without losing italics?
Drop the .ass file and choose SubRip as the output. Italic, bold, underline and colour override codes become SRT tags, \N line breaks become real line breaks and top-aligned styles get {\an8}. Vector drawings and effects that SRT cannot show are removed.
How do I fix subtitles that are out of sync?
If every line is early or late by the same amount, use Time shift. If the gap grows as the video plays, use Frame-rate conversion — usually 25 → 23.976 fps or the reverse.
Why does my DFXP or TTML file convert with the wrong times?
TTML can express time as clock time, frames or ticks. The converter reads ttp:frameRate, ttp:frameRateMultiplier and ttp:tickRate from the file; if frames are used without a declared rate, the TTML default of 30 fps applies.
Can I turn subtitles into a plain transcript?
Yes. Choose Plain text as the output: timings and tags are removed and each subtitle becomes its own paragraph.
Are my files uploaded or stored?
No. Reading, converting, previewing and downloading all happen inside your browser tab.
What about subtitles inside an MKV or MP4 file?
Those are tracks inside the video rather than separate files. Pull them out first with Extract Subtitles, then convert them here.