Tooling

Subtitles & Captioning

Subtitle Edit, Aegisub, SRT / VTT / ASS formats, broadcast CEA-608 / 708, manual subtitle authoring and shaping.

The "type the words by hand, time them by ear, ship a .srt" side of captioning. For AI-driven auto-transcription see Auto Captions (Whisper). For NLE picks see Video NLE Editors. For player-side rendering of subtitles see Media Players. For live STT in apps see Speech & Transcription.

Manual subtitle editors

  • Subtitle Edit — GPL OSS, Windows-first (also runs on Mac/Linux via .NET). The best free subtitle editor in 2026: SRT/VTT/ASS/SSA/STL/MCC and 200+ formats, waveform, spell-check, OCR-from-image-subs, integrated Whisper, batch convert. Default for any subtitle workflow that isn't already in an NLE.
  • Aegisub — BSD OSS, cross-platform. The standard for .ass / .ssa typesetting (anime fansubs, karaoke, kinetic typography). Lua/MoonScript automation, video preview, audio waveform timing. Steeper than Subtitle Edit but unmatched for stylized subs.
  • Subtitle Workshop Classic — free closed Windows; long-running alternative; lighter than Subtitle Edit.
  • Jubler — GPL OSS Java cross-platform; older but works.
  • Gaupol — GPL OSS Linux/GTK.
  • Subtitle Composer (KDE) — GPL OSS; Linux-friendly Aegisub alternative.

In-NLE subtitle tools

  • DaVinci Resolve subtitle track — bundled free; auto-transcribe in Studio (paid); timeline-native.
  • Premiere Pro Captions panel — bundled; Adobe Sensei auto-transcribe (paid).
  • Final Cut Pro Captions — bundled; manual + plugin-based auto.
  • Kdenlive subtitle editor — GPL OSS; built-in; Whisper integration since 23.x.

Subtitle file formats

  • SRT (.srt) — the universal lingua franca; plain timecodes + text; no styling. Use this for delivery whenever possible.
  • WebVTT (.vtt) — HTML5 video standard; cue settings, basic styling, region anchors. Default for web playback.
  • ASS / SSA (.ass) — Aegisub's format; full styling, positioning, karaoke effects.
  • TTML / IMSC1 — XML-based; broadcast / Netflix delivery.
  • SCC / MCC — broadcast closed-caption raw streams (CEA-608 inside).
  • STL (EBU) — European broadcast.
  • DFXP — TTML variant for accessibility.
  • iTunes Timed Text (iTT) — Apple delivery.

Broadcast closed captions

  • CEA-608 — legacy NTSC line-21 captions; still required for many US broadcast deliverables.
  • CEA-708 — modern digital captions; styling, positioning, multi-language.
  • MacCaption (Telestream) — paid; the broadcast closed-caption editor.
  • CaptionMaker (Telestream) — paid alternative.
  • Subtitle Edit — also reads/writes SCC / MCC; the free path.

Format conversion / scripting

  • pysubs2 — Python lib; read/write SRT/ASS/VTT/SubRip/MicroDVD; the scripting default.
  • subtitle (npm) — JS parser/generator for VTT, SRT.
  • subler / SubtitleEdit CLI — batch operations.
  • ffmpeg subtitle filters — burn-in (-vf subtitles=in.srt), mux as soft subs (-c:s mov_text for MP4, -c:s srt for MKV), extract (-map 0:s).
  • MKVToolNix — see Encoding & Codecs; mux multiple subtitle tracks into .mkv losslessly.

OCR for image-based subs (Blu-ray PGS, DVD VobSub)

  • Subtitle Edit OCR — uses Tesseract or nOCR; rip image subs to text.
  • SubRip — classic Windows OCR for VobSub.
  • VobSubOCR — modern fork.
  • AVIDemux — extract image subs from DVD/Blu-ray to feed an OCR tool.

Translation & localization

  • DeepL — paid free tier; the highest-quality MT for European languages in 2026.
  • Google Translate / DeepL inside Subtitle Edit — built-in translate buttons, BYO API key.
  • OpenAI / Claude — LLM-translate via API; better tone preservation but slower and pricier per line.
  • Memsource / Phrase — paid TMS; for serial localization workflows.

Quality / shaping

  • CPS / WPM limits: 17 chars/sec is the Netflix max; aim for 12–15. Subtitle Edit shows live CPS.
  • Reading speed: target 160–180 wpm for adult viewers; lower for kids' content.
  • Two lines max, ~42 chars per line.
  • Subtitle Edit's "Fix common errors" — auto-fixes hyphens, dialog dashes, unbreakable spaces, doubles.

Player-side rendering

  • See Media Players: subtitlesOctopus for .ass rendering in browsers; <track> element for VTT; subtitle (npm) for runtime parsing.

Pick this if…

  • Default free subtitle editor: Subtitle Edit. No contest in 2026.
  • Stylized / typeset subs (anime, karaoke): Aegisub.
  • Already in your NLE: Resolve / Premiere / FCP captions panel.
  • Broadcast deliverable (CEA-608/708): Subtitle Edit (free) or MacCaption (paid pro).
  • Web delivery: export WebVTT, serve next to the video.
  • OCR image subs from a Blu-ray: Subtitle Edit's OCR.
  • Scripted batch conversion: pysubs2 + ffmpeg.

On this page