SRT vs VTT: Which Subtitle Format Should You Use?
Use VTT for a native browser video track. Use SRT as a practical starting point for video editors and straightforward caption uploads, provided the destination accepts it. Both can carry the same words and timings. The differences matter more when you need positioning, styling, or a conversion that preserves the original cues.
| Your destination | Format to choose | What to check first |
|---|---|---|
| A browser video player | VTT for a native HTML video text track | Some custom players accept SRT by converting or parsing it themselves. Check the player, not just the browser name. |
| A video editor | SRT if it is a supported caption import; VTT where the editor explicitly accepts it | Use the subtitle or caption importer. Import support does not guarantee that positioning and styling will survive. |
| A publishing platform | The format its caption uploader documents | YouTube accepts both, with different formatting limits. Preview the processed captions before publishing. |
| A readable transcript without timed captions | TXT or DOCX | Keep paragraph breaks and useful speaker labels. You do not need subtitle timestamps for a document. |
If you need the initial transcript, DIY AI Studio’s speech-to-text tool provides TXT, SRT and VTT exports. Below, a matching three-cue example shows the syntax differences, followed by our conversion and import results. There is also an export-editing limitation to check before using a Studio subtitle download.
The same caption passage in SRT and VTT
A cue is one timed caption block. These examples contain the same three cues, including accented characters, a pound sign and deliberate line breaks. They are a synthetic format test, so the wording and timings are known in advance.
SRT example
1
00:00:01,234 --> 00:00:03,678
Élise: Meet me at the café.
2
00:00:04,010 --> 00:00:07,890
The budget is £25.
Keep this on a second line.
3
00:00:08,001 --> 00:00:11,500
[Music fades]
That's the final cue.
VTT example
WEBVTT
1
00:00:01.234 --> 00:00:03.678
Élise: Meet me at the café.
2
00:00:04.010 --> 00:00:07.890
The budget is £25.
Keep this on a second line.
3
00:00:08.001 --> 00:00:11.500
[Music fades]
That's the final cue.
The SRT file uses numbered blocks and a comma before the three millisecond digits. WebVTT adds the WEBVTT header and uses a decimal point. The numbers in our VTT example are optional cue identifiers; keeping them is valid.
VTT also allows timestamps such as 00:01.234 when the hours are zero. That still means 1.234 seconds. Neither format uses the final three digits as a video frame number.
Save both files as UTF-8. An ordinary newline inside a cue separates its text lines; an empty line separates cues. Preserving that newline doesn’t guarantee identical wrapping on a phone and a desktop player, because available width also affects the layout.
What survived our conversion and import checks
We checked these files on 18 October 2026 using a silent, 12-second test video. The SRT loaded in Subtitle Edit online and displayed in its browser player. We converted both formats with FFmpeg 6.1.1-3ubuntu5, imported each into an MP4 subtitle track, then extracted the captions again for comparison.
The MP4 step converts the subtitles to mov_text; it does not embed an unchanged SRT or VTT file. Comparing the extracted cues checks whether that extra hand-off altered the text or timing. This was a file-handling test, not a speech-recognition accuracy test.
Our data library includes a separate speech-to-text tools dataset for provider comparisons. The format results here come from the supplied subtitle files.
| Check | Observed result | Practical consequence |
|---|---|---|
| Plain SRT and VTT conversion | All three cues and all six timestamp values survived exactly. | A basic format change did not require retiming this sample. |
| MP4 subtitle import and extraction | Both inputs returned the same caption text, timestamps and explicit line breaks. | Check the result of an import as well as the original sidecar file. |
| Non-ASCII characters | Élise, café and £25 survived both plain-file paths. | Changing formats does not inherently require removing accents or currency symbols. |
| A positioned VTT with italic text | Italic markup survived conversion to SRT; positioning and the VTT voice annotation did not. | Text preservation and presentation preservation are separate checks. |
A VTT with an embedded CSS STYLE block | This FFmpeg build returned success but produced an empty SRT. Removing only that block from a copy restored all three cues. | Check the output contents and cue count even when a command reports success. |
These results apply to the supplied samples and the named tools. Direct VTT browser playback and a YouTube upload were not verified in this test. The platform guidance below comes from its documentation.
Convert a copy, then compare the actual cues
With FFmpeg installed, run these commands from the folder containing the sample files. Each writes a new file and leaves its source intact:
ffmpeg -i captions-example.srt converted-from-srt.vtt
ffmpeg -i captions-example.vtt converted-from-vtt.srt
For plain captions, the conversion changes the file structure and timestamp notation while retaining the words and time values. Our SRT-to-VTT output used shorter MM:SS.mmm timestamps and omitted the cue numbers. Those were valid syntax changes, not missing timings.
Renaming the extension is insufficient. An SRT renamed to .vtt still lacks the WebVTT header and still has SRT timestamp punctuation. A global comma-to-dot replacement is also a poor shortcut: it can change punctuation inside the caption text.
Converting VTT to SRT needs more care when the source includes cue settings, comments, CSS or speaker metadata. A converter must interpret those structures. It may preserve some information, discard it or reject the input.
If an organisation restricts uploading interview or training transcripts to third-party services, use an approved local converter. Subtitle files contain the spoken content even when you do not upload the accompanying video.
After conversion, compare the cue count, first and last timestamps, names, symbols and line breaks. Format conversion also does not automatically remove repeated text from rolling automatic captions, correct recognition mistakes or repair existing synchronisation problems.
Positioning can disappear while the words remain correct
WebVTT can put settings after a cue’s end timestamp. This version of our first cue requests a position near the top of the picture and marks one word as italic:
00:00:01.234 --> 00:00:03.678 line:10% position:50% align:center size:80%
Élise: Meet me at the <i>café</i>.
Our converted SRT retained <i>café</i> but lost those positioning settings. Converting that SRT back to VTT did not restore them. The original placement information was already gone.
SRT is not universally incapable of styling: some implementations recognise tags such as italics. The difficulty is carrying that appearance reliably between destinations. Keep the richer original if it contains deliberate placement around names, slides or other on-screen text.
Speaker metadata needs similar care. A VTT voice annotation such as <v Élise> does not itself print a speaker label. Our visible Élise: survived because it was ordinary caption text. Include a literal label when readers need the attribution after conversion.
See more of our reporting in Google Top Stories, AI Overviews and AI Mode.
YouTube accepts both formats but applies different rules
YouTube’s supported subtitle file documentation describes these implementation limits:
- SRT: basic files in plain UTF-8 are supported, but styling markup is not recognised.
- VTT: positioning is supported, while styling is limited to bold, italic and underline tags:
<b>,<i>and<u>.
For straightforward YouTube captions, SRT is a sensible starting point. Consider VTT if you need its documented positioning or basic emphasis, then check the processed result. Do not expect a custom CSS colour or class to transfer simply because the upload accepts a VTT file.
If the final design requires captions to look identical wherever the video is played, burned-in captions are a separate delivery option. They become part of the picture and cannot be switched off. Keep an editable subtitle source for corrections and other destinations.
Check Studio’s timed download after editing the transcript
Studio’s current TXT download includes edits made in the transcript box. Its SRT and VTT downloads use the original timed segments. We rechecked both the public product guidance and the export code for this article.
That means correcting a name in the transcript box does not update the name in the timed subtitle download. A manual line break added there does not transfer either. Open and correct the subtitle file separately before converting it or uploading it to a player.
To generate initial timestamps and correct cue timing, follow our guide to creating an SRT file from audio. If you are choosing the application that will produce those captions, our video transcription software comparison covers that decision.
If you only need readable notes, use a text export instead. Our guide to transcribing an MP3 to text explains that workflow without making timed captions the end product.
Make the final decision in the destination player
Before publishing, check the imported file against the final video cut. Start with a caption containing a name or symbol, inspect a two-line cue, and seek to the final caption. Check any positioning or emphasis that carries meaning, then view the result at a smaller player width.
Choose a format your destination handles predictably, and preserve the original file before converting. SRT is a useful plain-caption interchange option. VTT gives a compatible web player more control. Neither format makes an unchecked transcript accurate or repairs timing on its own.


