← How-to guides

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

  1. 01
    Choose: hardcode vs closed caption
    Hardcode 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.
  2. 02
    Generate or bring your subtitles
    AI transcription with SoCaptions (10–60 seconds), or import your existing SRT/VTT/ASS.
  3. 03
    Style with brand-controlled fonts
    Hardcoded 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.
  4. 04
    Export the hardcoded MP4
    SoCaptions renders the burn-in pass in seconds for typical short-form. ffmpeg with the `subtitles` filter is the free CLI alternative.
Pros
  • 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
Cons
  • 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.

More guides
Try SoCaptions free.
5 minutes free, no card required.
Open editor