Back to blog

How to Burn Subtitles Into a Video (Hardcode Captions the Right Way)

There are two ways to put captions on a video: as a separate file the player loads on top (soft subtitles), or baked directly into the pixels of the video itself (hardcoded, also called "burned-in" or "hardsubs"). Most tutorials skip the hardcoding part because it sounds technical — but for social media, it's often the only option that works.

This guide covers exactly how to burn subtitles into a video using free and paid tools, when you should hardcode versus keep a soft SRT file, and how to avoid the mistakes that make burned-in captions look amateur.


Soft vs. Hardcoded Subtitles: Which Do You Actually Need?

Before you burn anything, understand the tradeoff, because it's permanent.

Soft subtitles live in a separate .srt or .vtt file (or a subtitle track inside the video container). The viewer can toggle them on or off, the platform can auto-translate them, and search engines can read them. YouTube, Vimeo, and Wistia all support uploading a soft SRT alongside your video.

Hardcoded subtitles are painted permanently onto every frame. They can't be turned off, can't be translated, and can't be indexed as text. But they display identically everywhere — no player support required.

Here's the honest rule of thumb:

Use caseBest choice
YouTube, Vimeo, Wistia long-formSoft SRT (toggleable + SEO)
TikTok, Reels, Shorts, XHardcoded (autoplay-on-mute, no toggle)
LinkedIn / Facebook feed videoHardcoded (feeds strip SRT support)
Course videos / LMSDepends — soft if the LMS supports it
Archival master fileKeep soft; burn a copy for distribution

The short version: platforms where video autoplays silently in a feed reward burned-in captions, because 85% of feed video is watched on mute and there's no "CC" button to tap. For anywhere with a real player and a captions toggle, keep your captions soft. If you're weighing the two seriously, our breakdown of closed captions vs. subtitles goes deeper on the accessibility and discoverability side.

Key principle: never burn into your master. Always keep the original video plus the SRT, and export a burned copy for distribution. If you hardcode a typo into your only file, you're re-exporting from scratch.


Step 1: Get an Accurate SRT File First

Burning subtitles is the easy part. The hard part is having a clean, correctly-timed transcript — because whatever's in your subtitle file is what gets permanently welded to your video, misspellings and all.

You need an .srt file with accurate text and correct timestamps before you touch any burn-in tool. You have a few options:

  • Type it manually — free, but brutally slow (roughly 4–6× the video length).
  • YouTube auto-captions, then download — free but frequently wrong on names, jargon, and anything with background noise, which means heavy cleanup.
  • An AI transcription tool — the fastest path to a clean SRT.

This is where Tapescribe fits the workflow. You upload the video, and it returns a formatted transcript plus a ready-to-use SRT file with proper timestamps — for $1 per video, no subscription, with the first 5 videos free. Because the timestamps are already aligned to your audio, you can drop the SRT straight into any burn-in tool below without re-syncing. If you want the full walkthrough on generating the file, see how to create an SRT file from a video automatically.

Whatever you use, proofread the SRT before burning. Once it's in the pixels, editing means re-exporting the whole video.


Step 2: Burn the Subtitles In — 4 Methods

Method 1: FFmpeg (Free, Fastest, Command Line)

FFmpeg is the workhorse behind most video tools. If you're comfortable with a terminal, it's the fastest and highest-quality option — and it's completely free.

Basic burn-in from an SRT:

ffmpeg -i input.mp4 -vf "subtitles=captions.srt" -c:a copy output.mp4

To control the look — font size, color, outline so text stays readable over any background:

ffmpeg -i input.mp4 -vf "subtitles=captions.srt:force_style='FontName=Arial,FontSize=24,PrimaryColour=&HFFFFFF&,OutlineColour=&H000000&,Outline=2,Alignment=2'" -c:a copy output.mp4

Alignment=2 centers captions at the bottom. Outline=2 adds a black stroke so white text stays legible over bright footage — skip this and your captions vanish over snow, sky, or a white shirt. FFmpeg re-encodes the video, so expect it to take roughly as long as the clip's runtime on a normal laptop.

Method 2: HandBrake (Free, Graphical, No Command Line)

If the terminal isn't your thing, HandBrake is a free, open-source app for Windows, Mac, and Linux.

  1. Open HandBrake and load your video.
  2. Go to the Subtitles tab → Import SRT → select your file.
  3. Check "Burn In" next to the imported track (this is the critical step — without it, HandBrake muxes a soft track instead).
  4. Set your output format to MP4 and click Start Encode.

HandBrake's styling controls are more limited than FFmpeg's, but for standard bottom-center captions it's the easiest free option.

Method 3: CapCut / Video Editors (Easiest for Social Clips)

CapCut, Premiere Pro, Final Cut, and DaVinci Resolve can all import an SRT as a caption track and export it burned in. This is the best route when you want styled captions — big bold word-by-word "TikTok style" text, animations, brand colors, or emoji.

In CapCut: Text → Import captions → upload SRT, then restyle. Because you already have an accurate SRT from Step 1, you skip CapCut's own auto-caption pass (which is often less accurate and caps out on longer videos). Export, and the captions are baked in.

This is the standard workflow for short-form. For platform-specific sizing and placement tips, see our guide on adding captions to TikTok and Instagram Reels.

Method 4: Online Burn-In Tools (No Install)

If you can't install software, browser tools like Kapwing, Veed, and Clideo let you upload a video + SRT and download a hardcoded version. The tradeoffs: file-size upload limits, watermarks on free tiers, slower processing, and privacy considerations for sensitive footage. Fine for a one-off; frustrating at volume.


Step 3: Get the Styling Right

Burned-in captions are unforgiving because you can't fix them after export. A few rules that separate professional hardsubs from amateur ones:

  • Always use an outline or background box. White text alone disappears over light footage. A 2px black outline or a semi-transparent box guarantees legibility everywhere.
  • Keep lines short. 1–2 lines, ~32 characters per line max. Walls of text get cut off on mobile.
  • Mind the safe zone. On TikTok and Reels, the bottom ~15% of the frame is covered by the UI (username, caption, buttons). Raise your captions or they'll be hidden behind interface elements.
  • Match reading speed to speech. Captions should linger long enough to read — this is exactly why accurate timestamps from Step 1 matter. A tool that returns properly-timed segments saves you manual nudging.
  • Pick one legible font. Sans-serif, bold, high contrast. Save the decorative fonts for titles, not captions.

The Fastest End-to-End Workflow

Putting it all together, here's the workflow that scales — especially if you're captioning videos regularly:

  1. Transcribe the video to a clean, timestamped SRT (Tapescribe returns this in a couple of minutes per video).
  2. Proofread the SRT — fix names, brand terms, and jargon while it's still editable text.
  3. Burn in with FFmpeg for speed, HandBrake for a free GUI, or CapCut when you want styled social captions.
  4. Keep the master + SRT archived, and also upload the soft SRT to any platform that supports it (YouTube, Vimeo) for the SEO and accessibility win.

That last point is worth repeating: hardcoding for social doesn't mean abandoning soft subtitles everywhere. On platforms with a real player, a toggleable SRT gives you both accessibility and searchable text that helps the video rank. If you're batch-processing a backlog, generating the SRTs is the bottleneck — and automating subtitle generation is where you'll actually save hours, not in the burn-in step.


FAQ

Can I remove burned-in subtitles later? No — that's the entire point of hardcoding. They're part of the image. This is why you never burn into your master file; always export a distribution copy.

Does burning subtitles reduce video quality? Slightly, because the video is re-encoded. Use a high bitrate (or FFmpeg's -crf 18 for near-lossless) to minimize it. The captions themselves add negligible file size.

Why not just use a platform's auto-captions? Auto-captions are soft, toggleable, and often inaccurate on names and jargon. Burned-in captions guarantee they display — but only if your source SRT is clean. Garbage in, permanent garbage out.

What's the difference between hardsubs and hardcoded subtitles? Nothing — "hardsubs," "hardcoded subtitles," and "burned-in subtitles" all mean the same thing: captions permanently rendered into the video frames.


Bottom Line

Burning subtitles into a video is a two-part job: generate an accurate, well-timed SRT, then bake it in with FFmpeg, HandBrake, or a video editor. The burn-in tools are all free and take minutes. The part that actually determines quality is the transcript — because whatever's in that SRT becomes permanent.

Start with a clean, timestamped SRT from Tapescribe ($1 per video, first 5 free), proofread it, then burn away — and keep the soft copy for every platform that'll take it.