Blitzcut logoBlitzcut
SRT7 min read

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.

BT
BlitzCut Team
SRT vs VTT vs SBV: Which Subtitle Format to Use (2026)

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

SRTWebVTT (.vtt)SBV (.sbv)
Full nameSubRip SubtitleWeb Video Text TracksSubViewer / YouTube
Timecode separatorComma ,Period .Period .
Timecode format00:00:01,00000:00:01.0000:00:01.000
Requires headerNoYes — WEBVTTNo
Cue numberingRequiredOptionalNone
Styling in fileMinimal (some players honour basic tags)Yes — CSS-likeNo
Positioning in fileNoYesNo
Metadata / chaptersNoYesNo
HTML5 <track> supportNoYes — the only oneNo
Universal platform supportYesWidely, not universallyYouTube 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:

  • Positioningline, position, align, size on each cue
  • Styling — a STYLE block 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

PlatformAcceptsRecommended
YouTubeSRT, VTT, SBV, and moreSRT
VimeoSRT, VTTSRT
LinkedInSRT onlySRT
FacebookSRT (with locale in filename)SRT
Instagram / TikTokNo subtitle upload — burn inBurned-in
Your own websiteVTT via <track>VTT
HLS / streamingVTTVTT
Premiere / Final CutSRT, VTT, ITT, othersSRT

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 Store
Tags:SRTVTTSBVsubtitlescaptionsfile formats2026

Related Articles