Skip to content
OneFileConverter

SRT vs VTT: subtitle formats, burned-in captions and sync

Updated · 4 min read

Subtitle files are plain text: a list of lines, each with a time to appear and a time to disappear. The two formats you'll meet most are SRT and WebVTT (VTT). They're close enough that people rename one to the other — and different enough that this often breaks. Here's how they differ, when to put captions into the picture itself, and how to fix captions that come too early, too late or drift.

What SRT and VTT files look like

An SRT (SubRip) file is a series of numbered blocks. Each block has a number, a timing line and one or more lines of text, with a blank line between blocks. A cue reads: 1, then 00:00:01,000 --> 00:00:03,500, then the text, such as Hello there.

A WebVTT file must start with the word WEBVTT on its first line. After that, cues look almost identical — but the milliseconds are separated by a dot, not a comma: 00:00:01.000 --> 00:00:03.500. Cue numbers are optional, hours can be left out, and the format adds features for the web, such as positioning settings after the timestamp, style blocks and comments.

SRTWebVTT (.vtt)
First lineThe first cue numberWEBVTT
Timestamp00:00:01,000 (comma)00:00:01.000 (dot)
Cue numbersRequiredOptional
ExtrasSimple tags such as <i> and <b>Positioning, styles and comments
Best forMost video players, editors and upload sitesWeb players and HTML5 video

Tip: Renaming a .srt file to .vtt doesn't convert it: the header is missing and the commas are still there, so web players may show nothing at all. Convert it properly instead.

Converting between SRT and VTT

Subtitle Converter & Resync reads either format — it detects which one you've given it — and saves as WebVTT or SRT. SRT output is numbered with comma timestamps; VTT output starts with the WEBVTT header and uses dots. The text of each cue is kept, including simple tags like <i>. WebVTT-only extras — positioning settings, style blocks and comments — aren't carried over, because SRT has no place for them.

You can add up to 20 files at once. Subtitles are plain text, so they're converted instantly on your device.

Soft subtitles vs burned-in captions

Soft subtitles live in a separate file or track. Viewers can turn them on or off and pick a language, players can restyle them, and you can fix a typo by editing the text. Their weakness is that they only work where the player supports them — and many places don't: social feeds that play videos muted, chat apps, and some TVs and players.

Burned-in (hardcoded or open) captions are drawn into the picture itself. They show everywhere the video plays, with no setting to switch on. The trade-off is that they can't be turned off, translated or edited afterwards, and the video has to be re-encoded to add them.

Burn In Subtitles takes one video and one .srt or .vtt file. Choose a text size (2 to 12% of the video's height) and whether captions sit at the bottom or top; they're drawn as white text with a dark outline so they stay readable on any background. Formatting tags such as italics are removed before drawing. WebM videos stay WebM; everything else comes out as MP4. It needs a browser with WebCodecs — recent Chrome, Edge and Safari 17+ work best.

Fixing subtitles that are out of sync

Sync problems come in two kinds, and they need different fixes. Play the video and compare a line near the start with one near the end.

Always early or always late: shift the timing

If every caption is off by the same amount, enter that amount in Shift timing, in seconds. Positive numbers make captions appear later; negative numbers make them appear earlier. Captions that are 2 seconds late need −2. Captions moved before the start of the video are clamped to zero, and any that would end before it are dropped.

Fine at first, worse later: stretch the timing

If captions start in step and drift further off as the video goes on, they were timed for a different frame rate — typically a 25 fps version against a 23.976 fps video. Under Advanced, enter the rate they were made for in Made for frame rate and the video's rate in Video frame rate. Every time is then multiplied by the ratio between the two, which stretches or squeezes the whole file back into step. Any shift you enter is applied after the stretch.

Not sure of the video's frame rate? Video Info shows it. Once the timing is right, burn the corrected file into the video if you need captions that always show.

Questions

Should I use SRT or VTT?

SRT for most video players, editors and upload sites; WebVTT for subtitles on a web page with HTML5 video. If a site lists only one, convert to that one.

Can I convert without changing the timing?

Yes. Leave Shift timing at 0 and the frame-rate fields at 0, and only the format changes.

Can I edit the subtitle text here?

No — the converter changes format and timing only. Subtitle files are plain text, so any text editor can fix a typo before you convert or burn them in.

Tools in this guide

All guides →