MP4 is a video file that fully supports subtitles.
But should you use soft subtitles or hardcode them into the video? And how to implement them ?
In this guide, we’ll walk you through everything you need to know to add subtitle tracks to your MP4.
Yes, you absolutely can.
MP4 is one of the most flexible video formats out there. It supports both soft and hard subtitles, depending on how you want to use them.
Let’s break down what each one means for your MP4 video.
Soft subtitles are stored as a file track inside your MP4. Viewers can turn them on or off whenever they want.
You’ve probably seen this when watching YouTube or Netflix. You click the "CC" button to choose the subtitle language — that’s soft subtitles at work.
These subtitles don’t change your original video. They’re easy to edit, update, or translate into other languages. And they keep your video looking clean when not activated.
Hard subtitles are encoded into the picture of your MP4 file. They’re always visible because they’re part of the video image itself.
You can’t turn them off, and you can’t edit them once exported. But they guarantee your message is always on-screen — no matter where the video is watched.
To add soft subtitles, you’ll need two things:
.SRT
or .VTT
formatThese subtitle files contain the dialogue text, along with timecodes to sync with your video. You can write them by hand, or create them automatically with tools like Checksub.
If you're just looking to view your MP4 with soft subtitles locally, VLC makes it simple.
.SRT
or .VTT
file.This method doesn’t save the subtitles inside the MP4. It’s just for viewing. If you send the video to someone else, you’ll need to include the subtitle file too.
Want to actually store the subtitle track inside your MP4 (or MKV)? You’ll need a tool like MKVToolNix.
.SRT
file underneath as a new track.This process creates a new video file — typically an .MKV
— with the subtitle track included. Most modern players can read MKV just like MP4.
Want to stay in MP4 format? Use FFmpeg instead.
If you’re comfortable with command-line tools, FFmpeg is powerful and free.
Here’s the basic command to add soft subtitles:
css
CopierModifier
ffmpeg -i video.mp4 -i subs.srt -c copy -c:s mov_text output.mp4
This command takes your MP4 and .SRT
, then creates a new MP4 file with the soft subtitles embedded. The mov_text
codec is what makes it compatible with MP4.
Sometimes, you want your subtitles to always be visible. No toggling. No separate files.
That’s what burned-in subtitles do. They’re hardcoded into the video itself — like part of the image.
Here’s how you can add them to your MP4.
HandBrake is a free video encoder that lets you burn subtitles easily.
HandBrake will export a new MP4 with your subtitles permanently embedded.
It’s a great tool for quick, clean results — but limited if you need advanced styling.
If you want more control, FFmpeg is your best friend. It’s command-line based, but powerful.
To burn in subtitles:
lua
CopierModifier
ffmpeg -i video.mp4 -vf subtitles=subs.srt output.mp4
This command overlays your .SRT
file directly onto the video.
Want to customize the look? Convert your .SRT
to .ASS
format with styles (using a tool like Aegisub), then run:
lua
CopierModifier
ffmpeg -i video.mp4 -vf "ass=subs.ass" output.mp4
This lets you add fonts, colors, sizes, backgrounds, and more.
Checksub makes it easy to subtitle your MP4 automatically — from upload to export.
Here’s how it works:
Go to checksub.com and sign into your account. Don’t have one? Signing up is quick — and free to try.
Click “Upload Video”, and choose your MP4 file.
Select the original language of your video. If you want subtitles in other languages, Checksub offers automatic translation in over 267 languages.
Once uploaded, Checksub’s AI goes to work:
Inside the editor, you can:
You keep control — without doing everything yourself.
When you're done, choose how to use your subtitles:
You want to generate MP4 subtitles with AI ? Try Checksub for free now.