← Back to Complete Guide

Subtitles Explained: SRT vs VTT vs ASS (+ How to Burn Them In)

Three text formats, one image-format trap, and the burn-vs-softcode decision that determines whether anyone ever sees your captions. Formats compared, exact commands, and the fixes for sync, gibberish, and invisible subs.

By Hadi Karaki, maker of Formatif: media processing suiteSeptember 16, 202610 min read

SRT vs VTT vs ASS: the one table you need

SRTVTTASS/SSA
StylingNone (plain text)Position, color, chaptersFull: fonts, karaoke, effects
Plays onEverythingWeb + most playersVLC, MPV, anime players; patchy on TVs
Best forUniversal subs, Plex, uploadsHTML5 video, web playersFansubs, styled captions
Plex direct-playYesMostlyOften forces transcode

Default rule: author in SRT unless you need web chapters (VTT) or heavy styling (ASS) — SRT converts cleanly into both, while the reverse loses formatting. And remember the fourth category: image subs (PGS/VOBSUB) are pictures, not text — the Plex-buffering culprits from our Plex guide.

Burn in or keep soft? Decide by destination

Burn in (hardcode) when…

  • TikTok, Reels, Shorts — no player sub support to rely on
  • Client previews and screen recordings — zero failure modes
  • Styling must survive (ASS effects become pixels)

Keep soft when…

  • Plex/Jellyfin libraries — viewers toggle languages
  • YouTube uploads — platform renders and translates
  • Archival — restyle or re-time later without re-encoding

Quick Solution

Whole season to caption? Skip the per-file commands.

The commands below work — twelve episodes × three commands each is where evenings go. Formatif Pro ($8.95 one-time) batch-burns subtitle tracks across folders offline — file or embedded subs, adjustable font size, same recipe every file — and extracts embedded tracks to SRT/VTT/ASS when you need the text instead.

Burn-in commands (FFmpeg)

Burn SRT in, keep audio untouched

ffmpeg -i in.mp4 -vf subtitles=subs.srt -c:v libx264 -crf 20 -c:a copy out.mp4

Burn with styling

ffmpeg -i in.mp4 -vf "subtitles=subs.ass:force_style='FontName=Arial,FontSize=20,PrimaryColour=&HFFFFFF&,Outline=1'" -c:v libx264 -crf 20 -c:a copy out.mp4

Shift out-of-sync subs by +2.5s

ffmpeg -itsoffset 2.5 -i subs.srt -i in.mp4 -c copy -map 0:s -map 1:v -map 1:a out.mkv

Extract first sub track from MKV

ffmpeg -i movie.mkv -map 0:s:0 subs.srt

Two gotchas: burning re-encodes video (set CRF explicitly — filter-only commands silently pick defaults), and gibberish glyphs mean a legacy codepage file — re-save as UTF-8 before anything else. Growing drift (not constant offset) means a framerate-mismatched sub file: fix with Subtitle Edit's point-sync, not offset guessing.

Subtitle questions, answered

SRT vs VTT vs ASS?

SRT: universal plain text. VTT: web-native with styling/chapters. ASS: full karaoke-grade styling, patchier support. Default SRT.

Burn in or keep soft?

Burn for TikTok/Reels/previews (zero failure modes). Soft for Plex, YouTube, archives (toggleable, restyleable).

FFmpeg burn-in command?

-vf subtitles=subs.srt with explicit -c:v libx264 -crf 20 -c:a copy. Style via force_style; burns require re-encode.

Subs not showing on Plex/TV?

Usually PGS/VOBSUB image subs or font-less ASS. Convert/OCR to SRT — direct-plays almost everywhere.

Fix out-of-sync subs?

Constant offset: -itsoffset shift. Growing drift: framerate-mismatched file — point-sync in Subtitle Edit.

Gibberish characters in subs?

Legacy codepage read as UTF-8. Re-save the .srt as UTF-8. Author everything UTF-8 from the start.

Extract subs from MKV?

ffmpeg -i movie.mkv -map 0:s:0 subs.srt. List tracks first to pick the language; PGS extracts need OCR.

Keep learning

Every episode captioned, one run.

Formatif Pro ($8.95 one-time) and Formatif AI ($12.95 one-time) handle video, image, and audio conversion offline — with batch workflows, no file size limits, and a 3-day free trial.

The FFmpeg commands above are complete and free forever — pick whichever method fits your episode count.

HK

Written by

Hadi KarakiLinkedIn

Founder of Formatif, a local-first offline media processing suite for Windows and Linux. Hadi writes about video, image, and audio formats, compression, and privacy-first desktop workflows.