Why Add Subtitles?
- SEO: Video pages with subtitles rank higher on Google
- Accessibility: Helps viewers who are deaf or hard of hearing
- Engagement: 80%+ of social media videos are watched muted
- Reach: Captions help non-native speakers understand content
Step-by-Step: Generate Subtitles for Free
- Install Whisper CLI — Use the open-source Whisper model from OpenAI or community forks (whisper.cpp, whisperx)
- Transcribe your video — Whisper works directly on audio tracks extracted from video files
- Edit the SRT file — Minor timing adjustments in any text editor for perfect sync
- Burn subtitles into video — Use Shotcut MLT to embed the SRT as burned-in captions
Copy-Ready Commands
Step 1: Transcribe with Whisper
# Extract audio and transcribe
whisper "input.mp4" --task transcribe --model medium --output_format srt
# Output: input.srt
Step 2: Burn Subtitles into Video with Shotcut MLT
melt "input.mp4" in=0 out=360 \
-attach-track subtitle:"input.srt" \
-consumer avformat:"output_with_subs.mp4" vcodec=libx264 crf=23
Alternative: Extract only the subtitles (SRT file)
# Whisper outputs SRT — use for YouTube uploads, Vimeo subtitles, etc.
whisper "input.mp4" --task transcribe --model large-v3 --output_format vtt
Subtitle Format Quick Reference
| SRT | Universal subtitle format, plain text, works everywhere |
| VTT (WebVTT) | HTML5 video standard, supports styling |
| ASS/SSA | Advanced styled subtitles (anime-style effects) |
- YouTube Compression Guide: YouTube Compression Guide
- Trim clips before captioning: Video Trimming Guide
- Pick the right format for captions: Format Conversion Guide
- Optimize quality with CRF values: CRF Calculator
Want a faster workflow? Open Trimpx's caption preset to set up your Whisper/MLT command in seconds.