How to add subtitles to an MP4 video

On this page

To add subtitles to an MP4, you need a subtitle file (usually .srt) and a tool to combine them. Burn them in (always visible) with HandBrake's "Burn In" option or FFmpeg's subtitles filter, or add a soft track that viewers can switch on and off with FFmpeg. If you don't have an SRT yet, generate one from the audio first.

Step 1: get a subtitle file

If you don't have an .srt file, make one:

  • YouTube Studio: upload the video (it can stay private), let YouTube auto-caption it, fix the text under Subtitles, then download the .srt.
  • An editor like CapCut: generate auto captions, then export captions as SRT where available.
  • Type it yourself in any text editor. An SRT is plain text: a number, a time range, and the line.

1 00:00:01,000 --> 00:00:03,500 The biggest mistake is never starting.

Step 2a: burn subtitles in with HandBrake

Burned-in subtitles are part of the picture, so they show everywhere, including social media.

  1. Open the MP4 in HandBrake.
  2. Go to the Subtitles tab and choose Import Subtitle (or Import SRT), then pick your file.
  3. Tick Burn In for that track.
  4. Pick a preset, choose where to save, and click Start Encode.

HandBrake re-encodes the video, so it takes a while on long files.

Step 2b: burn subtitles in with FFmpeg

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

To style them (font size, outline), convert to .ass and use -vf ass=subs.ass.

Step 2c: add a soft subtitle track

Soft subtitles stay a separate track inside the MP4. Players like VLC let viewers switch them on and off. No re-encoding, so it's instant:

bash ffmpeg -i input.mp4 -i subs.srt -c copy -c:s mov_text output.mp4

Social platforms generally ignore soft tracks inside the file. For YouTube, upload the .srt separately in YouTube Studio instead.

Which should you use?

Goal Method
Posting to TikTok, Reels, Shorts Burn in
Sharing a file people play in VLC or QuickTime Soft track
Long YouTube video Upload the SRT to YouTube Studio
Accessibility on your own site A separate VTT file with the HTML video player

See closed captions vs subtitles for the difference.

Skip the SRT entirely for short clips

If the goal is captioned Shorts or Reels from a long video, ClipFlame cuts the clips and burns in word-by-word animated captions in one step, in 9 languages. See the AI caption generator.

Common questions

Can I add subtitles to an MP4 without re-encoding?

Yes, as a soft track with FFmpeg's -c copy -c:s mov_text. Burning them in always re-encodes.

Why don't my subtitles show on Instagram?

Instagram ignores subtitle tracks inside the file. Burn them in, or use Instagram's own captions.

What's the difference between SRT and VTT?

Both are timed text formats. VTT is used by web players and supports some styling; SRT is the most widely supported.

Your next viral clip is already recorded.

Upload it and let ClipFlame find it. Your first 10 minutes of video are free, no card needed.

Find your viral moments free