Try every tool free for 14 days with 75 credits. No card needed. Start free
Product
AI video generatorText or an image to video with Veo, Kling, Seedance and more AI avatars & lip syncTalking presenters and lip-synced video from a script or audio UGC video adsAn AI creator presents your product on camera, in 9:16 Subtitles & translationTranscribe, edit, translate and download SRT or VTT AI dubbingDub a video into 32 languages, in the speaker's own voice AI voice & cloningNatural voiceovers and your own cloned voice
Company
Free tools Pricing Blog Contact

How to Add Subtitles to an MP4 Permanently

To add subtitles to an MP4 permanently, burn them into the picture. Here's how with HandBrake on Windows or Mac, FFmpeg, or an online tool, and how to add switchable subtitles instead.

How to Add Subtitles to an MP4 Permanently

To add subtitles to an MP4 permanently, burn (hardcode) them into the video: load the MP4 and an SRT file into a tool that draws the text onto every frame, such as the free HandBrake on Windows or Mac, FFmpeg from the command line, or an online captions tool, then export a new MP4. The subtitles then show in every player and on every platform, and can’t be turned off.

If you only want subtitles that viewers can switch on, you can add a soft subtitle track to the MP4 instead. This guide covers both, step by step, for Windows, Mac and the browser.

The short answer

To add subtitles to an MP4 permanently, get an SRT file that matches the video, then burn it in: in HandBrake, open the MP4, go to the Subtitles tab, add the SRT from Tracks, set it to burn in, and start the encode. In FFmpeg, use the subtitles filter. Online caption tools can transcribe, style and burn in one step.

Key takeaways

  • Permanent = burned in. The text becomes part of the picture in a new MP4.
  • You need a subtitle file first, usually SRT; make or check it before you burn.
  • HandBrake is free on Windows, Mac and Linux. FFmpeg is free and scriptable.
  • An MP4 can hold switchable (soft) subtitle tracks too, but not every player shows them.
  • Keep the original video. Burned subtitles can’t be edited, so a typo means a re-export.

Disclosure: we make QuickVeed and show how to do this in it, along with other ways. Details about other products come from their public pages, checked in October 2026 and linked at the end.

Permanent (burned-in) vs soft subtitles in an MP4

Burned in (permanent)Soft track inside the MP4
Shows in every playerYesOnly players that support it
Shows on social platformsYesNo, platforms ignore embedded tracks
Viewer can turn it offNoYes
Several languagesOne per video fileSeveral tracks in one file
Re-encodes the videoYes, takes timeNo, if you only add a track

If the MP4 is going to Instagram, TikTok, LinkedIn, WhatsApp or a presentation, burn the subtitles in. For a file someone will watch in VLC or another full player, a soft track is fine. For YouTube, upload the SRT separately; see how to add subtitles to a YouTube video.

Step 1: Get a subtitle file that matches the video

Every method needs a subtitle file, normally SRT, timed to this exact cut of the video.

Name the SRT exactly like the video (demo.mp4 and demo.srt) and keep them in the same folder. Many players then load it automatically, which makes checking quicker.

How to add subtitles to an MP4 permanently on Windows or Mac (HandBrake)

HandBrake is a free, open-source video converter for Windows, macOS and Linux. Its documentation calls burning in a hard burn: the subtitles are written onto the picture permanently.

  1. Open HandBrake and open your MP4 as the source.
  2. Pick a preset (for example Fast 1080p30) and check the Dimensions tab keeps your video’s size.
  3. Go to the Subtitles tab, click Tracks and choose the option to add an external subtitle file, then select your SRT.
  4. Check the character encoding setting (Char Code) matches your file; UTF-8 for most files. A wrong value can drop the subtitles.
  5. Tick Burn In on that track.
  6. Choose where to save the new file and click Start Encode.

HandBrake notes that an MP4 can carry only one burned-in subtitle track. Encoding takes a while because every frame is re-drawn; a 10-minute 1080p video typically takes a few minutes on a modern laptop. HandBrake uses a plain default style; if you want a particular font, colour or animated words, use a captions tool instead.

Burn subtitles into an MP4 with FFmpeg or online

FFmpeg (Windows, Mac, Linux)

FFmpeg is free and good for batches. Its subtitles filter draws an SRT onto the video using the libass library:

ffmpeg -i demo.mp4 -vf subtitles=demo.srt -c:a copy demo-subtitled.mp4

You can change the look with the filter’s force_style option, for example a larger font, and set the character encoding with charenc if the file isn’t UTF-8. FFmpeg’s documentation says complex scripts such as Arabic, Hebrew and Devanagari need libass built with HarfBuzz to render correctly.

Add a soft subtitle track with FFmpeg (not permanent)

ffmpeg -i demo.mp4 -i demo.srt -c copy -c:s mov_text demo-soft.mp4

This copies the video without re-encoding and adds a switchable subtitle track. Players such as VLC show it; social platforms don’t.

To burn in Arabic, Hebrew or Hindi with FFmpeg, add the shaping option and point it at a font folder that has a suitable font, and check your build includes HarfBuzz. A quick test on a ten-second clip saves re-encoding a long video.

Online, in QuickVeed

An online captions tool skips the SRT step and lets you pick a style. In QuickVeed’s Captions & subtitles:

  1. Open Captions & subtitles and upload the video (up to 3 hours), or pick one from your library. The upload keeps going if you switch to another page.
  2. Pick a caption style (11 to choose from, such as Bold yellow, Karaoke fill or Classic subtitles) and a position: bottom, middle or top. Leave “Make the captioned video when it’s ready” ticked if you want the burned-in copy made automatically.
  3. Press Transcribe. The app estimates about a minute of processing per 10 minutes of video.
  4. On the Edit tab, correct any line, click a time to jump to it in the player, and press Save changes.
  5. On the Translate tab, tick up to 5 of 32 languages at a time. Each line keeps its timing.
  6. On the Download tab, get an SRT, VTT or TXT file for each language. On the Burn in tab, make a captioned copy per language; it is saved to your library.
Video lengthTranscriptOne burned-in copyTotal, one language
1 minute2 credits3 credits (minimum)5 credits
3 minutes5 credits3 credits8 credits
10 minutes15 credits10 credits25 credits
30 minutes45 credits30 credits75 credits
60 minutes90 creditsNot available (burn-in is up to 30 minutes)90 credits (files only)

The transcript costs 1.5 credits a minute, rounded up. Each burned-in copy is 1 credit a minute (3 minimum, videos up to 30 minutes), and translation is billed by AI use, usually a credit or two per language. New accounts get a 14-day trial with 75 credits, no card needed. The captioned MP4 is saved to your library to download. QuickVeed transcribes the video itself; it doesn’t import an existing SRT, so use HandBrake or FFmpeg if your subtitle file is already final.

Style, placement and troubleshooting

Burned-in subtitles can’t be adjusted later, so get the look right before the final export.

  • Size: text should be readable on a phone. On a 1080p video, that is noticeably larger than most default subtitle styles.
  • Contrast: white text with a dark outline or a semi-transparent box reads over any footage.
  • Position: bottom centre for landscape videos; middle for vertical social videos, where the app’s buttons cover the bottom.
  • Line length: two lines at most, about 42 characters each, so the text doesn’t cover faces.
ProblemLikely causeFix
New MP4 has no subtitlesBurn In not ticked, or wrong character encodingTick Burn In on the track; set the encoding to UTF-8
Accents or non-Latin letters show as symbolsFile isn’t UTF-8Re-save the SRT as UTF-8, or set the encoding in the tool
Arabic or Hindi letters break apartNo complex-script shaping in the rendererUse a tool with shaping support and a suitable font; see Arabic subtitles
Subtitles early or late throughoutSRT made for a different cutShift it with the time shifter, then burn again
Text too smallDefault style made for TVIncrease font size (FFmpeg force_style, or a captions tool’s style)
Output much larger or blurrier than the sourcePreset bitrate or resolution differsMatch the source resolution and pick a bitrate with the bitrate calculator

A worked example

A 6-minute 1080p training video with an existing English SRT. In HandBrake: open the MP4, add the SRT on the Subtitles tab, tick Burn In, keep the Fast 1080p30 preset, encode. Total: about ten minutes including the encode, and free. Without an SRT, in QuickVeed: 9 credits to transcribe and 6 to burn in, with a few minutes of proofreading in between.

Which method should you use?

You wantUse
Free, one video, already have an SRTHandBrake
Many videos, or a repeatable scriptFFmpeg
No subtitle file yet, styled captions, or several languagesAn online captions tool
Switchable subtitles in a file for a media playerA soft track (FFmpeg or an MKV container)
Subtitles on YouTubeUpload the SRT in YouTube Studio, don’t burn in

Before burning in, check the subtitles one last time: names, numbers, line length and timing. Fixing a typo afterwards means exporting the whole video again. Our general guide to burning subtitles into a video covers styling and placement.

Frequently asked questions

How do I permanently add subtitles to an MP4?

Burn them in: open the MP4 in HandBrake, add the SRT on the Subtitles tab, tick Burn In and encode. Or use FFmpeg’s subtitles filter, or an online captions tool that exports a captioned MP4.

How do I merge an SRT file with an MP4?

To make the subtitles permanent, burn the SRT in with HandBrake or FFmpeg. To keep them switchable, add the SRT as a soft track (FFmpeg with -c:s mov_text) without re-encoding.

Why don’t my embedded subtitles show on Instagram or WhatsApp?

Social apps and messengers ignore soft subtitle tracks inside an MP4. Burn the subtitles into the picture instead.

Can I add subtitles to an MP4 on a Mac for free?

Yes. HandBrake and FFmpeg both run on macOS and are free.

Does burning in subtitles reduce video quality?

The video is re-encoded, which can lose a little quality. Use a good-quality preset or a similar bitrate to the original; our video bitrate calculator helps you pick one.

Try it with your own video

Transcribe, style and burn subtitles into an MP4 without making an SRT first. Upload an MP4, pick a caption style, and judge the captioned video for yourself. QuickVeed plans start at $18/month, and new accounts get a 14-day trial with 75 credits, no card needed. Sign up or see pricing.

Sources

Competitor details in this post were checked against these public pages in October 2026. Products and prices change, so confirm with each vendor before you decide.

Share this article
Ijharul Islam
Written by

Ijharul Islam

Founder, QuickVeed

Ijharul Islam is the founder of QuickVeed, the AI video studio for business. He writes hands-on comparisons and guides on AI video generation, presenters, UGC-style ads and subtitles, so marketing and sales teams can publish more video without a production crew.

Chat with the founder