How to hardcode subtitles.
Hardcoding subtitles is the same as burning them in — captions become part of the video pixels permanently. Same trade-offs, same techniques. 'Open captions' is the broadcast term for the same thing.
Hardcoded, burned-in, and open captions all describe the same technique: subtitles rasterized permanently into the video file. The terminology varies by industry — 'hardcoded' in fansub circles, 'burned-in' in editor workflows, 'open captions' in broadcast and accessibility. The decision and the workflow are identical.
Step by step
- 01Choose: hardcode vs closed captionHardcode for short-form social (TikTok, Reels, Shorts, X), brand-controlled styling, or platforms that don't render uploaded caption tracks. Use closed captions for YouTube, Vimeo, courses, and anywhere accessibility toggling matters.
- 02Generate or bring your subtitlesAI transcription with SoCaptions (10–60 seconds), or import your existing SRT/VTT/ASS.
- 03Style with brand-controlled fontsHardcoded captions are your last chance to style. Pick fonts that survive platform compression (Inter Black, Anton, Montserrat Black) and add a 4–6px stroke or solid plate.
- 04Export the hardcoded MP4SoCaptions renders the burn-in pass in seconds for typical short-form. ffmpeg with the `subtitles` filter is the free CLI alternative.
- Universal compatibility — every player, every platform
- Brand-consistent styling that doesn't depend on viewer settings
- Required for X / Twitter and most LinkedIn feed video
- No second file to manage
- Permanent — viewers can't toggle off
- No multi-language switching
- Re-encoding step costs slight quality
- Doesn't satisfy WCAG closed-caption requirement alone
FAQ
What's the difference between hardcoded, burned-in, and open captions?+
Nothing — three names for the same technique. 'Hardcoded' is the fansub/anime term; 'burned-in' is the post-production term; 'open captions' is the broadcast term.
How do I hardcode subtitles using ffmpeg?+
`ffmpeg -i input.mp4 -vf subtitles=subs.srt -c:a copy output.mp4`. Add `force_style='FontName=Inter Black,FontSize=72,OutlineColour=&H000000&,Outline=4'` for styling control.
Are hardcoded captions WCAG compliant on their own?+
No. WCAG 1.2.2 requires toggleable closed captions. Pair hardcoded MP4s with a separate SRT/VTT track for compliance.
Can I hardcode ASS subtitles with kinetic typography?+
Yes — ffmpeg's `subtitles` filter renders ASS override codes correctly. SoCaptions supports ASS import/export so you can move between SoCaptions presets and hand-tuned ASS.
Burned-in (hardcoded) subtitles become part of the video pixels. They survive every cross-post and every download — at the cost of being un-toggleable. Here's when to use them and how to do it across SoCaptions, ffmpeg, Premiere, and CapCut.
Two cases: the video has soft subtitle tracks embedded, or the captions are burned into the pixels. Each needs a different tool.
AI translation is fast and free; human translation is slow and accurate. The right choice depends on your audience size, content type, and tolerance for cultural mistakes.