← all posts

How to burn subtitles into a video: VLC, HandBrake, FFmpeg, or your browser

Four ways to burn subtitles into a video: VLC, HandBrake, FFmpeg, or a browser tool with no install and no upload. Steps and gotchas for each.

Burning subtitles means re-encoding the whole video, frame by frame. On a slow machine that takes longer than the video itself, so a wrong setting costs you the full wait before you can even see the problem. The three classic answers (VLC, HandBrake, FFmpeg) all work, but each was built for a different job and each fails in its own way.

This guide covers four ways to burn subtitles into a video, including the one that needs no install at all, and tells you where each one bites.

What burning subtitles means (hard vs soft)

A subtitle file like an SRT or VTT is text with timestamps. Players show it as a separate layer you can turn on and off. Those are soft subtitles.

Burned-in (or hardcoded) subtitles are different: the text is rendered into the pixels of the video during an export. Nobody can turn them off, no platform can ignore them, and they look the same everywhere. That is why they are the standard for TikTok, Reels, and Shorts, and why platforms that do not accept sidecar files leave you no other option.

The cost is the re-encode. Changing pixels means writing a new video file, and that is where tool choice matters. For the soft-vs-burned tradeoff in more depth, see the no-watermark guide.

How to burn subtitles into a video with VLC

VLC is a player with a converter bolted on. It can burn subtitles, and since you probably have it installed, it is the path most people try first.

  1. Open VLC and go to Media → Convert / Save.
  2. Click Add and pick your video. Check Use a subtitle file and browse to your .srt.
  3. Click Convert / Save. Pick an MP4 profile (H.264 + AAC).
  4. Click the wrench icon next to the profile. In the Subtitles tab, check both Subtitles and Overlay subtitles on the video.
  5. Pick a destination file and press Start.

Where it bites: there is no preview, so you find sync or quality problems only after the full convert. Styling is whatever VLC’s renderer decides; you cannot pick a font size or color from the convert dialog. Sync drift on the burned output is a known complaint on some builds.

VLC is fine for a one-off where you do not care how the captions look.

Burning subtitles with HandBrake

HandBrake is a real transcoder, so the encode side is stronger than VLC’s. The subtitle side is narrow but reliable.

  1. Open HandBrake and load your video as the source.
  2. Go to the Subtitles tab and import your .srt file.
  3. Check Burn In on that track.
  4. Set the character encoding (UTF-8 covers most languages; wrong encoding garbles accents).
  5. Pick a preset and press Start Encode.

Where it bites: HandBrake imports SRT (newer versions also take SSA/ASS), so a VTT needs converting first, which adds a tool to the chain. Styling control is minimal: you get readable white text, not styled captions. And the encode time depends on the preset; slower presets look better and cost more minutes.

FFmpeg: the scriptable way

FFmpeg is the only desktop path you can automate. One command burns the subtitles:

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

The -c:a copy part keeps the audio untouched, so only the video re-encodes. To control quality, add -crf 18 -preset slow (lower CRF, better quality, bigger file). To style the captions, pass an ASS style string:

ffmpeg -i input.mp4 -vf "subtitles=subs.srt:force_style='FontName=Arial,FontSize=26'" -c:a copy output.mp4

Where it bites: the subtitles filter needs an FFmpeg build with libass (the common builds have it). Windows paths inside the filter need their colons escaped, which is a classic first-run failure. Fonts in force_style must be installed on the system, and you are styling blind: no preview, edit the string, run again, wait again.

If you burn subtitles in batches, or your videos are hours long, FFmpeg is the right tool and nothing else is close.

Burn subtitles in your browser (no install, no upload)

If you have the video and the SRT, there is a path with no install, no account, and no watermark: the add-SRT-to-video tool runs the whole burn in your browser.

  1. Drop your video (MP4, WebM, or MOV) and your .srt on the page.
  2. The editor opens with your cues loaded as styled captions. Pick a template, edit any line, retime any cue.
  3. Export. The captions are rendered into the pixels, in the tab, and the file downloads.

Nothing uploads. The video and the SRT are read locally and the export runs on your device, so this path also works for footage you cannot send to a third-party server. There is a VTT variant too, so the format conversion step disappears.

Where it bites: the export renders every frame in the browser, so speed depends on your hardware, and a desktop browser is the comfortable place to run it. For a feature-length movie you want FFmpeg instead; for clips, this is the shortest path from SRT to a styled, posted video.

No subtitle file yet? tscaps local transcribes on your device with Whisper, in the same browser flow. And if your audio is noisy or you are on a phone, the cloud lane transcribes server-side with word-level timings and styles the captions with AI; its free path adds a watermark to exports, the paid tiers lift it.

Which one should you use?

  • You have an SRT and want styled captions now: the browser tool. No install, no upload, no watermark.
  • You burn in batches or your video is hours long: FFmpeg, scripted, with -crf pinned.
  • You want a one-off on the desktop with predictable output: HandBrake.
  • You need it today with zero new software and you accept default styling: VLC.
  • You do not have a subtitle file: tscaps local on your device, or the cloud lane when the audio is rough.

FAQ

Does burning subtitles lose quality?

Any burn re-encodes the video, and any re-encode costs some quality. You keep the loss invisible by giving the encoder room: in FFmpeg that is a low CRF like 18, in HandBrake a slower preset. The subtitles themselves render sharp in every tool; it is the rest of the frame that pays for a rushed encode.

Can I burn subtitles permanently without re-encoding?

No. Burning changes pixels, and changed pixels mean a new encode. If you cannot afford a re-encode, the alternative is soft subtitles: mux the SRT into an MKV container, which repackages without touching the video. But then the captions are a toggle, not pixels, and platforms that ignore sidecar files will ignore yours.

How do I hardcode subtitles on a Mac?

All four paths work on macOS. VLC and HandBrake have native builds, FFmpeg installs with Homebrew, and the browser tool runs in a modern desktop browser with nothing to install.

Can I style the burned subtitles?

VLC: no. HandBrake: white text, take it or leave it. FFmpeg: yes, through force_style strings, with no preview. The browser editor is the only path of the four where styling is visual: you see the captions on the video while you change the template, colors, and timing per cue.

Ready to burn? Drop your video at tscaps.io.