Add an SRT to an MP4, burned into the picture

To add an SRT to an MP4, OpenSubs draws the subtitles into the frames and saves a new MP4. They are burned in (hardcoded): they always show and cannot be switched off. It does not add a soft subtitle track.

Free. No account, no watermark, no upload.

How to add an SRT to an MP4

No speech recognition here: your subtitles are used as they are. This is the same free subtitle generator as on the home page, with the generating step skipped.

  1. Load the MP4 on opensubs.app. MOV, WebM and MKV work too.
  2. Open the .srt (or a .vtt) with Open an .srt or .vtt. If the characters come out garbled, choose the file's text encoding and it is read again.
  3. Pick a style. Twelve presets in the Style tab, previewed over your own video. Word-by-word highlighting works on an imported .srt too, because it runs off the timings.
  4. Burn. In the Export tab press Burn subtitles into the video. The new file is named after yours: talk.mp4 becomes talk.subbed.mp4, and the original is left as it was.

What the new MP4 contains

The subtitles, in the picture

Drawn by libass, the renderer the preview uses, so you get what you previewed. The file has no subtitle track: the words are pixels now.

Your audio, untouched

The audio is copied across, not re-encoded. Only the picture is encoded again, as H.264, at the source's size unless you change it under Clip & size.

Nothing else

No watermark, and no upload: the encode runs in your browser with WebCodecs. Where a browser has no H.264 encoder you get a WebM instead, and it tells you before you burn.

If you want subtitles viewers can switch off

Many people who search for adding an SRT to an MP4 want a soft subtitle track: one the player can turn on and off. OpenSubs does not write one. Your options:

  • On YouTube or Vimeo, upload the .srt beside the video. That is their soft subtitle track.
  • For a desktop player, keep the .srt next to the MP4 with the same name (talk.mp4, talk.srt). Most players pick it up.
  • To put the track inside the MP4, mux it with ffmpeg on the command line: ffmpeg -i talk.mp4 -i talk.srt -c copy -c:s mov_text talk.soft.mp4. Nothing is re-encoded.

Burn in when the platform takes no subtitle file, as with Instagram, TikTok and Reels, or when you want the words to look the same in every player. More on the trade-off: burn subtitles into video. If you do not have an .srt yet, start from add subtitles to video, which writes one from the speech.

What it will not do

  • Fix an .srt that is out of sync. Timings cannot be shifted here; the subtitles are burned exactly when the file says.
  • Open .ass or .ssa files. It opens .srt and .vtt.
  • Save back to MKV. An MKV goes in; an MP4 (or WebM) comes out.
  • Keep HDR colour. An HDR video is flagged, and the desktop app (macOS, Windows, Linux) or the command line handles it properly.

Questions

How do I add an SRT file to an MP4?

Load the MP4 on opensubs.app, open the .srt, pick a style, then press Burn subtitles into the video in the Export tab. You get a new MP4 with the subtitles in the picture.

Can viewers turn the subtitles off?

No. OpenSubs burns them into the picture (hardcoded). For subtitles viewers can switch off, upload the .srt beside the video, keep it next to the file with the same name, or mux it into the MP4 with ffmpeg.

Is my video uploaded?

No. The video and the .srt are read from your disk and the MP4 is encoded in your browser.

My SRT is out of sync. Can I fix it here?

No. OpenSubs can change what a subtitle says but not when it appears, so fix the timings in another tool first.

Does it lower the quality?

The picture is re-encoded, because the words are now part of it; the audio is copied across untouched.