SRT to VTT
Browsers play captions from a <track> element only in WebVTT, so an SRT file that works in VLC shows nothing on a web page. Convert it to VTT here and the same captions appear in any HTML5 player.
Subtitle Converter
or drop SRT, VTT, ASS … files here ·
Max 95 MB per file· Up to 20 files· Deleted after 30 minutes
Files are processed on our servers and deleted after 30 minutes.
Moves every subtitle by this many seconds. Use a positive number if subtitles appear too early, negative if too late (e.g. -1.5).
Set this and the target rate when subtitles drift further out of sync over the film, a sign they were timed for a different video release.
Frame rate of the video you will play the subtitles with. A 23.976 → 25 conversion fixes most PAL/NTSC drift.
Only used for plain TXT input, which has no times: each line is shown for this long, one after another. Adjust times afterwards in a subtitle editor if needed.
Auto-detect handles most files. Pick the encoding manually if accented, Cyrillic or Arabic letters come out as question marks. The output is always UTF-8.
Font used by the default ASS style. The viewer's computer must have it installed; Arial is the safest choice.
Size relative to a 1080-pixel-tall video. 48 is a typical size for films.
How to use this tool
- 1
Drop the .srt files
Add one subtitle file or one per language, up to 20 files of 95 MB each. Legacy encodings are detected and rewritten as UTF-8, which WebVTT requires.
- 2
Adjust timing if needed
Leave everything as it is for a straight conversion. If the captions run early or late on your video, enter seconds under Shift timing in Advanced settings.
- 3
Convert to WebVTT
Press Convert to WebVTT (VTT) and download the .vtt files. Upload them next to your video; our copies are deleted after 30 minutes.
Upload the SRT and press Convert to WebVTT (VTT). You get a file with the required WEBVTT header, period-separated milliseconds and UTF-8 text, ready for the <track> element, Video.js, Plyr or a course platform.
Why web players need VTT instead of SRT
SRT came out of the DVD-ripping world around 2000 and became the default for desktop players, editors and downloads. WebVTT was designed in 2010 for the web, starting from SRT's syntax, and the HTML standard made it the format of the <track> element. Chrome, Firefox, Safari and Edge all read it natively and none of them reads SRT through a track.
The two look almost identical in a text editor, which is why the difference catches people out. A VTT file must start with WEBVTT, must be UTF-8, and writes 00:01:05.300 where SRT writes 00:01:05,300. On top of that, VTT can carry positions, styling and comments that SRT never had. Going from SRT to VTT therefore loses nothing; the reverse trip through VTT to SRT drops those extras.
Once you have the .vtt, link it from your page as shown below. For a video in a format browsers do not play, such as a .mov from an iPhone, the guide on converting MOV to MP4 covers that half of the job.
<video controls src="lecture.mp4">
<track kind="subtitles" src="lecture.en.vtt"
srclang="en" label="English" default>
</video>SRT vs VTT: every difference that matters
| SRT | WebVTT | |
|---|---|---|
| First line of the file | Cue number `1` | `WEBVTT` |
| Timestamp | `00:01:05,300` | `00:01:05.300` (hours optional) |
| Cue numbers | Required | Optional identifiers |
| Text encoding | Anything, often legacy code pages | UTF-8 only |
| Position and alignment | Not standardized | Cue settings such as `line` and `align` |
| Styling | `<i>`, `<b>`, `<u>`, `<font>` | `<i>`, `<b>`, `<u>`, classes styled with CSS |
| MIME type on a server | `application/x-subrip` | `text/vtt` |
SRT
SubRip subtitles
SRT is the subtitle format of SubRip, a free Windows program that extracted subtitles from video around 2000. Each entry is a plain-text block with a number, a start and end time, and the caption text. It is the most widely supported subtitle format, accepted by VLC, YouTube, Facebook, video editors and smart TVs. SRT has only basic formatting and no positioning or styling standard.
- Compression
- –
- Transparency
- –
- Animation
- –
- Introduced
- SubRip
VTT
WebVTT subtitles
VTT is the Web Video Text Tracks format, developed by WHATWG and the W3C around 2010 for HTML5 video. It looks similar to SRT but adds a WEBVTT header and supports positioning, styling, speaker labels and metadata. Browsers use it for captions through the <track> element, and streaming platforms and YouTube accept it. Some desktop players and editors expect SRT instead.
- Compression
- –
- Transparency
- –
- Animation
- –
- Introduced
- 2010 · W3C / WHATWG
HTML5 video only loads WebVTT through the track element, so SRT captions made for desktop players have to become VTT before they can appear on a web page.
VTT subtitles not showing in the browser
Captions work online but not when you open the HTML file from your disk
Browsers block tracks loaded from
file://pages. Test through a local web server or on the real site.The track loads from another domain and stays empty
Add
crossoriginto the<video>element and allow your site in the CORS headers of the server holding the .vtt.The server sends the file as text/plain
Configure it to serve .vtt as
text/vtt; some players refuse other types.Every caption appears a second too early
Convert again with a positive Shift timing, such as 1, and replace the file.
SRT to VTT questions
What does the converter change in the file?
It adds the WEBVTT line at the top, replaces the comma before the milliseconds with a period, and saves the file as UTF-8. WebVTT allows cue numbers as optional identifiers, and the caption text itself is not changed.
Can I just rename .srt to .vtt?
No. Without the WEBVTT header and with commas in the timestamps, browsers reject the track or skip every cue. The file needs to be rewritten, which takes a second here.
Do italics and bold survive?
Yes, <i>, <b> and <u> exist in both formats. SRT's <font color> tag has no direct WebVTT equivalent, because WebVTT colors cues through CSS classes, so turn on Remove formatting tags if your file uses it heavily.
Which file does my course platform want?
Most learning platforms and web players take WebVTT, and many accept SRT as well. If an upload form lists only .vtt, convert here; if it lists only .srt, use VTT to SRT for the reverse.
Can I position captions at the top of the screen?
WebVTT supports it with cue settings such as line:0, which you can add in a text editor after converting. SRT has no standard way to store a position, so the converted cues start at the default position at the bottom.
How do I add several languages to one video?
Convert each language's SRT, then add one <track> per file with its own srclang and label. Viewers pick the language from the player's caption menu.