Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

Subtitle Converter (SRT, VTT, ASS)

Turn any text subtitle file into the format your player, editor or platform needs.

Audio & Video No upload Works offline Free, no sign-up

Your subtitles

Detected when you choose a file. Pasted text is already decoded.

Convert to

Output format

SubRip (.srt)

Next steps

About the Subtitle Converter (SRT, VTT, ASS)

Convert subtitles between SubRip (SRT), WebVTT (VTT), ASS and SSA, YouTube SBV, TTML/DFXP, MicroDVD (SUB) and LRC lyrics, or turn them into a plain-text transcript. Drop a file or paste the text: the format is recognised from the content, the cues are listed with a preview of how each one looks on screen, and the converted file is ready to copy or download.

Old subtitle files are often saved in a legacy code page such as Windows-1250 (Polish, Czech), Windows-1251 (Russian) or Shift_JIS (Japanese) instead of UTF-8, which turns letters into gibberish like “é”. The converter detects the encoding, fixes mixed or broken line endings, and writes clean UTF-8. When the target format cannot hold something — colours in SBV, exact positions from ASS, end times in LRC — it tells you what was changed instead of dropping it silently.

How to use it

  1. Choose or drop a subtitle file, or paste subtitles into the text box. The page shows the format it recognised, the number of cues and the text encoding.
  2. If letters look wrong in the preview, choose the correct Text encoding. For a MicroDVD .sub file, check the Frame rate (it must match the video).
  3. Pick the output format. Leave Keep styling and placement on to carry over bold, italics, colours and top-of-screen placement where the format allows.
  4. Read the notes under the result: they list repairs (such as cues that ended before they started) and anything the new format cannot store.
  5. Press Download (or Copy). The file keeps your original name with the new extension.

Examples

SRT to WebVTT for an HTML5 video
Input
1
00:00:01,000 --> 00:00:04,000
<i>Hello</i> & welcome
{\an8}Sign at the top
Result
WEBVTT

00:00:01.000 --> 00:00:04.000 line:0
<i>Hello</i> &amp; welcome
Sign at the top

The comma becomes a full stop, the {\an8} placement becomes the cue setting line:0, and & is escaped as &amp;.

ASS from Aegisub to SRT
Input
Style: Thoughts,Arial,58,&H0000FFFF,…,0,-1,…,8,…
Dialogue: 0,0:00:02.00,0:00:04.00,Thoughts,,0,0,0,,Thinking {\b1}hard
Result
1
00:00:02,000 --> 00:00:04,000
{\an8}<font color="#ffff00"><i>Thinking </i></font><font color="#ffff00"><b><i>hard</i></b></font>

The style “Thoughts” (yellow, italic, alignment 8 = top centre) is applied to the text. Fonts, outlines and \pos positions cannot be expressed in SRT; the notes say so.

MicroDVD at 25 fps
Input
{1}{1}25
{25}{100}First line|Second line
Result
1
00:00:01,000 --> 00:00:04,000
First line
Second line

The first line says 25 frames per second, so frame 25 is 1.000 s and frame 100 is 4.000 s; “|” separates lines.

Lyrics (LRC) to subtitles
Input
[00:12.00]First line
[00:15.30]Second line
[00:20.00]
Result
1
00:00:12,000 --> 00:00:15,300
First line

2
00:00:15,300 --> 00:00:20,000
Second line

LRC stores only start times, so each line lasts until the next time tag; the empty tag at 0:20 ends the last one.

Common uses

  • Uploading captions to YouTube, Vimeo or a course platform that accepts only SRT, VTT or SBV.
  • Adding subtitles to an HTML5 <video> element, which needs WebVTT.
  • Bringing fan subtitles from Aegisub (ASS) into a TV or editor that reads only SRT.
  • Repairing a downloaded .srt that shows garbled accents, Cyrillic or Greek letters.
  • Turning subtitles into a readable transcript or lyric sheet, with or without times.

The formats

  • SubRip (.srt): numbered cues with 00:01:02,345 --> 00:01:04,000 times; most players read <b>, <i>, <u> and <font color>, and many read {\an8} for text at the top.
  • WebVTT (.vtt): the W3C format for HTML5 video. Times use a full stop, cue settings such as line:0 and align:left place the text, <v Name> marks the speaker, and colours use classes such as <c.yellow>.
  • ASS and SSA (.ass, .ssa): SubStation Alpha scripts with styles and override tags such as {\i1}. ASS (v4.00+) is what Aegisub writes; SSA (v4.00) is the older version. Times are in hundredths of a second.
  • YouTube SBV (.sbv): 0:00:01.000,0:00:04.000 followed by the text; no styling.
  • TTML and DFXP (.ttml, .dfxp, .xml): the W3C Timed Text XML format used by streaming services and broadcasters. DFXP is the TTML 1 profile under its older name; both are written as the same TTML 1 document.
  • MicroDVD (.sub): {start frame}{end frame}text, with | between lines. Frames only become times with the frame rate, so the page asks for it. SubViewer 2 .sub files are also read.
  • LRC (.lrc): lyrics with [mm:ss.xx] start times, used by music players; [offset:] tags are applied.
  • Plain text (.txt): one line per cue, optionally starting with its time and the speaker; transcripts copied with timestamps can also be read.

What carries over

Bold and italics survive in every format except SBV, LRC and plain text. Underline is kept in SRT, WebVTT, ASS, TTML and MicroDVD; strike-through in SRT, ASS, TTML and MicroDVD (WebVTT has none). Colours are kept in SRT, ASS, SSA, TTML and MicroDVD, and in WebVTT through classes. Top, middle and side placement is kept in SRT (as {\an} tags), WebVTT, ASS, SSA and TTML.

Speaker names — WebVTT voices such as <v Anna> and the Name field of ASS — are kept in WebVTT, ASS/SSA and plain text; the other formats have no place for them, and the notes say so.

ASS-only features — fonts and sizes, outlines, exact \pos positions, movement, fades, karaoke and drawings — have no equivalent in the other formats. An exact position is turned into top, middle or bottom, and the notes count each feature that was dropped. Converting between ASS and SSA keeps every event exactly as written.

How the text encoding is found

A byte-order mark identifies UTF-8, UTF-16 and UTF-32. UTF-16 without one is recognised by its zero bytes, and text that is valid UTF-8 is UTF-8. Otherwise the lines with accented or non-Latin bytes are decoded with each legacy code page — Windows-1250 to 1258, ISO-8859, KOI8, Shift_JIS, EUC-JP, EUC-KR, GBK and Big5 — and scored: common words of the languages that use that code page count for it; control characters, symbols inside words, words that mix alphabets and lower-to-upper-case jumps count against it. The guess is shown with the preview; if it is wrong, choose the encoding by hand. The result is always saved as UTF-8 (optionally with a byte-order mark for old Windows players).

Frame rates for MicroDVD

A frame number becomes a time as time = frame ÷ frame rate (and back as frame = time × frame rate, rounded). 23.976 fps is exactly 24000/1001, 29.97 is 30000/1001 and 59.94 is 60000/1001. With the wrong rate the subtitles drift further from the speech as the video goes on: at 25 instead of 23.976 fps a cue at one hour is off by about 2.5 minutes. Many .sub files start with a line such as {1}{1}23.976 that names their rate; the page reads it and writes one into the files it makes.

Limitations

  • Only text subtitles are converted. Picture subtitles — VobSub (.sub with .idx), Blu-ray PGS (.sup) and image-based TTML — need OCR first.
  • The converter keeps times as they are; it does not shift or stretch them.
  • ASS styling beyond bold, italics, underline, strike-through, colour and placement cannot be expressed in the other formats (see the notes after each conversion).
  • Encoding detection is a guess for legacy files; very short files with few accented letters can be ambiguous — check the preview.
  • Files up to 20 MB (well over 100,000 cues) are handled; for very long files the text boxes show only the beginning, while the whole file is converted, downloaded and copied. One file at a time.

Privacy

Everything happens in your browser. What you enter or open here is not uploaded or stored by MySmartCoPilot.

Frequently asked questions

How do I convert SRT to VTT?

Drop the .srt file, choose WebVTT as the output and press Download. The page adds the WEBVTT header, changes the time separator to a full stop, escapes & and <, and turns {\an8} placement into a line:0 cue setting.

Why do letters look like “é” or “пр” in my subtitles?

The file was read with the wrong text encoding. “é” instead of “é” is UTF-8 read as Windows-1252, and so is “при” instead of “при”; “ïðèâåò” instead of “привет” is a Windows-1251 file read as Windows-1252. Drop the file here: the encoding is detected, you can correct it in the list, and the result is saved as UTF-8, which every modern player reads.

Which frame rate should I choose for a .sub file?

The frame rate of the video the subtitles were made for. Most downloaded films are 23.976 fps, European TV is 25 fps and North American TV is 29.97 fps. If the subtitles start in sync and then drift, the frame rate is wrong.

What does {\an8} at the start of an SRT line mean?

It is an ASS alignment tag that places the subtitle at the top centre (the numbers follow a phone keypad: 1–3 bottom, 4–6 middle, 7–9 top). Players built on the common subtitle libraries, such as VLC, mpv and MPC-HC, read it in SRT files; some simpler players and TVs show it as text — turn off Keep styling and placement for those.

Can it convert VobSub (.idx/.sub) or Blu-ray .sup subtitles?

No. Those subtitles are pictures of text, not text, so they need optical character recognition before they can become SRT. The page recognises such files and says so.

Is my file uploaded?

No. The file is read and converted by this page in your browser; nothing is sent to a server, and the page works offline once loaded.

Quick answers and tool search

Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.