SRT vs VTT vs SBV: Which Subtitle Format to Use (2026)
The real differences between SRT, WebVTT and SBV — what each supports, which platforms accept them, and how to convert between them on a Mac.

Use SRT unless you have a specific reason not to. It's the most widely supported subtitle format anywhere, and every platform that accepts subtitles accepts it. Use WebVTT when you're building an HTML5 player or need styling and positioning inside the subtitle file. SBV only exists because YouTube exports it — convert it to SRT and move on.
The actual differences, and when they matter.
Quick Comparison
| SRT | WebVTT (.vtt) | SBV (.sbv) | |
|---|---|---|---|
| Full name | SubRip Subtitle | Web Video Text Tracks | SubViewer / YouTube |
| Timecode separator | Comma , | Period . | Period . |
| Timecode format | 00:00:01,000 | 00:00:01.000 | 0:00:01.000 |
| Requires header | No | Yes — WEBVTT | No |
| Cue numbering | Required | Optional | None |
| Styling in file | Minimal (some players honour basic tags) | Yes — CSS-like | No |
| Positioning in file | No | Yes | No |
| Metadata / chapters | No | Yes | No |
HTML5 <track> support | No | Yes — the only one | No |
| Universal platform support | Yes | Widely, not universally | YouTube mainly |
SRT — The Default
1
00:00:01,000 --> 00:00:04,120
This is a caption.
2
00:00:04,400 --> 00:00:07,000
And this is the next one.
Structure: a sequential number, a timecode line with a comma before milliseconds, the text, then a blank line.
Supported by: YouTube, Vimeo, Facebook, LinkedIn, Instagram (via upload tools), Premiere, Final Cut, Resolve, VLC, Plex, virtually every broadcast and OTT system.
Use it for: everything, unless the exception below applies.
Limitations: no positioning, no reliable styling, no metadata. Some players honour basic HTML-ish tags like <i> and <b>, but it's inconsistent and not part of the spec — don't rely on it.
Full format rules: how to create an SRT file on Mac.
WebVTT — For the Web
WEBVTT
1
00:00:01.000 --> 00:00:04.120 line:80% align:center
This is a caption.
2
00:00:04.400 --> 00:00:07.000
<v Speaker>And this is the next one.</v>
Structure: must begin with the literal string WEBVTT. Timecodes use a period before milliseconds. Cue numbers are optional. Cue settings can follow the timecode on the same line.
What it adds over SRT:
- Positioning —
line,position,align,sizeon each cue - Styling — a
STYLEblock with CSS, or classes applied to cues - Speaker identification —
<v Name>voice spans - Chapters and metadata tracks, not just subtitles
- Regions for grouping cues
Supported by: all modern browsers via HTML5 <track>, YouTube, Vimeo, HLS streaming, most web players.
Use it for: a video on your own website, an HLS stream, or anywhere you need a caption in a specific place on screen. It is the only format the HTML5 <track> element accepts — a browser will not load an SRT.
SBV — YouTube's Legacy Export
0:00:01.000,0:00:04.120
This is a caption.
0:00:04.400,0:00:07.000
And this is the next one.
Structure: timecodes on one line separated by a comma, no cue numbers, no header. Hours are not zero-padded.
Supported by: YouTube, and not much else reliably.
Use it for: nothing, deliberately. You'll encounter it because YouTube Studio offers it as a download option for auto-generated captions. Convert it to SRT immediately.
Converting Between Them on a Mac
SRT → VTT
The minimum viable conversion is: add the WEBVTT header, and change timecode commas to periods.
With FFmpeg:
ffmpeg -i captions.srt captions.vtt
By hand in a text editor: add WEBVTT and a blank line at the top, then find-and-replace , with . within timecode lines only — a blind find-and-replace will destroy the commas in your caption text.
VTT → SRT
ffmpeg -i captions.vtt captions.srt
FFmpeg drops the positioning and styling, which is expected — SRT can't carry them.
SBV → SRT
FFmpeg doesn't handle SBV well. Easiest reliable route: re-download the captions from YouTube Studio as .srt instead, which Studio offers alongside .sbv. If you only have the SBV, the conversion is mechanical — add sequence numbers, split the timecode line at the comma into --> format, and pad the hours.
Any → Any
Re-exporting from the tool that made the captions is almost always cleaner than converting. If you have the source video and a transcription tool, regenerate rather than convert.
Which Platform Wants Which
| Platform | Accepts | Recommended |
|---|---|---|
| YouTube | SRT, VTT, SBV, and more | SRT |
| Vimeo | SRT, VTT | SRT |
| SRT only | SRT | |
| SRT (with locale in filename) | SRT | |
| Instagram / TikTok | No subtitle upload — burn in | Burned-in |
| Your own website | VTT via <track> | VTT |
| HLS / streaming | VTT | VTT |
| Premiere / Final Cut | SRT, VTT, ITT, others | SRT |
Note on Facebook: it requires the locale in the filename — myvideo.en_US.srt. Uploading myvideo.srt fails with an unhelpful error.
Note on social video: TikTok, Instagram Reels and Snapchat have no subtitle-file upload at all. Captions there are either the platform's own auto-captions or burned into the video. See how to burn subtitles into video on Mac.
Common Errors
Comma vs period. SRT uses a comma before milliseconds, VTT uses a period. Swapping them is the single most common cause of a file failing to load.
Missing WEBVTT header. A VTT without it is not a VTT and every parser will reject it.
Wrong encoding. Save as UTF-8. Accented characters appearing as é means the file was saved as Latin-1 or similar.
BOM at the start of the file. Some Windows editors add a byte-order mark that breaks strict parsers. Save as "UTF-8" not "UTF-8 with BOM".
Renaming instead of converting. Changing .srt to .vtt in Finder does nothing to the contents. The formats are genuinely different.
Overlapping timecodes. Valid in VTT with regions, broken in SRT. Most players show only one, unpredictably.
Frequently Asked Questions
What's the difference between SRT and VTT?
VTT adds a required header, uses periods instead of commas in timecodes, and supports styling, positioning, speaker labels and metadata. SRT has none of that and is more widely supported. Browsers accept only VTT; almost everything else prefers SRT.
Which subtitle format should I use for YouTube?
SRT. YouTube accepts several formats but SRT is the most reliable and the easiest to produce and edit.
Can I just rename a .vtt file to .srt?
No. The timecode syntax differs and VTT's header will break an SRT parser. Convert with FFmpeg or re-export.
What is an SBV file?
YouTube's legacy caption format, offered as a download option in YouTube Studio. It has no advantages over SRT — convert it and don't produce new ones.
Does LinkedIn accept VTT?
No. LinkedIn accepts SRT only, and it's strict about the format. See how to add captions to LinkedIn video.
Which format supports styling?
WebVTT. It supports CSS-like styling and cue positioning inside the file. SRT technically has no styling in its spec, though some players honour basic tags inconsistently.
One transcript, any format you need. BlitzCut AI transcribes on your Mac and exports clean subtitle files — or burns styled captions directly into the video for platforms that don't take a subtitle file at all.
Try BlitzCut AI free for 3 days
Related: How to Create an SRT File on Mac · How to Edit an SRT File · How to Burn Subtitles into Video on Mac · Auto-Translate Subtitles for Reels and TikTok · Best Subtitle Generator for Mac
Last Updated: August 23, 2026 Category: Subtitles & File Formats Topic: Subtitle Format Comparison
Post every day without spending hours editing
BlitzCut is a native App Store app for iPhone, iPad and on Mac. Get from raw footage to TikTok-ready in under 2 minutes, so editing is never the reason you didn't post.
Download BlitzCut on the App StoreRelated Articles
Keep Reading

What Font Does TikTok Use? (2026 Answer)
TikTok uses TikTok Sans, its own typeface, open-sourced in July 2025 and free to download. Before that it used Proxima Nova — which is what the app's Classic text option still is. Full history, license, and where to get it.

What Makes a Reel Hook Go Viral? (2026 Breakdown)
Viral Reel hooks aren't clever writing — they're a specific mechanism. What Instagram measures in the first three seconds, the four things every hook that travels has in common, and why most hook lists don't work for you.

YouTube Shorts Length Limits (2026): Maximum Length and What Counts as a Short
YouTube Shorts can be up to 3 minutes long in 2026. What qualifies as a Short, the aspect ratio rule, and why longer Shorts don't always perform better.