"Add subtitles to an MP4" means one of two quite different things, and picking the wrong one wastes an export.
- Keep them separate. The subtitles stay in their own
.srtfile next to the video. The player draws them, and the viewer can switch them off. - Burn them in. The text is drawn into the picture during an export. It's part of the image from then on — no switching off, no player support needed.
Here's how to decide, and how to do each.
Which one do you need?
Separate .srt | Burned in | |
|---|---|---|
| Viewer can turn them off | yes | no |
| Works on Instagram, TikTok, Reels | no | yes |
| Works on YouTube, Vimeo | yes, upload as a track | yes |
| Works in VLC and most desktop players | yes | yes |
| Survives re-uploads and downloads | often lost | always |
| You can fix a typo later | edit the text file | re-export the video |
| Quality cost | none | one more video encode |
Rule of thumb: social feeds need burned-in text; anywhere you can upload a subtitle track, keep it separate.
Option 1: keep the subtitles as a separate file
Put the .srt in the same folder as the video and give it the same name:
holiday.mp4
holiday.srt
Most desktop players pick that up on their own. If not, every player has a menu for loading a subtitle file manually. For YouTube or Vimeo, upload the video first, then attach the .srt as a subtitle track.
Two things go wrong often enough to name:
- The subtitles drift out of sync. The file was made for a different cut. Use your player's subtitle delay setting, or a file matching your exact version.
- Non-Latin text comes out as nonsense. The encoding doesn't match; re-save the file as UTF-8.
There's also a middle option: muxing the subtitle track inside the container, so one file carries both. MKV is the usual home for that; support for subtitle tracks inside MP4 varies from player to player, which is why the two practical options are the ones above.
Option 2: burn the subtitles into the picture
Burning re-encodes the video with the text drawn on top. That's what you want for Instagram, TikTok and Shorts, and for anything you send to people who shouldn't have to fiddle with settings.
In OpenSubs this is all in the browser:
- Open opensubs.app and drop in your MP4.
- Generate the subtitles from the audio, or open an
.srt/.vttyou already have. - Fix any lines that came out wrong, and pick a caption style.
- Under Clip & size, set a start and end if you only want part of the video, and choose the output resolution.
- Click Burn subtitles into the video and save the MP4.
The encoding happens on your machine — the video is never uploaded — and the result has no watermark. There's a longer walkthrough on burning subtitles into video.
If you'd rather do it on the command line, ffmpeg burns a subtitle file into a video with its subtitles filter; for styled output, export .ass first so the look travels with the file.
Doing both
Nothing stops you from shipping both: the burned-in MP4 for social, and the separate .srt for YouTube, for a client's editor, or for translation later. Export the subtitle file once and reuse it — the timings are the same either way.
FAQ
Will burning in reduce quality?
The video is encoded again, so in theory yes; at sensible settings the difference is hard to see. The subtitle text itself stays sharp.
Can I turn burned-in subtitles off later?
No. They're part of the picture. Keep the .srt so you can re-export if you need a clean version.
Why don't my subtitles show up on Instagram when I upload the .srt?
Instagram and TikTok don't accept subtitle files from you. Burn them in.
Can I add subtitles to an MP4 without re-encoding it?
Only by keeping them separate, or by putting them into an MKV. Drawing them into the picture always means an encode.
Do I need to install anything?
No. Both routes above work in a browser tab.