HandBrake can burn exactly one subtitle track into an MP4 — and that is a documented hard limit, not a UI quirk. This walkthrough takes you from a source video plus a subtitle track to an MP4 with the text permanently baked into the picture, and it front-loads the three constraints that make most first attempts go sideways.
You need two things: a file HandBrake can open, and a subtitle track it can read. Both have official conditions attached.
Before you start
"Burn" has a precise meaning here. HandBrake's subtitles documentation lists two output methods and describes them in one line each. Hard Burn: "This means the subtitles are written on top of the image permanently. They cannot be turned on or off like on the DVD." Soft Subtitles: "This means the subtitles will appear as separate selectable tracks in your output file. With the correct playback software, you'll be able to enable / disable these subtitles as required."
That first sentence is the whole decision. Burning is one-way: once the encode finishes, the text is pixels in the frame and no player setting takes it back off.
Check that your subtitle source is one HandBrake reads. The documentation names the sources explicitly: "From DVD's – Either embedded VOBSUB or CC tracks", "From Bluray - PGS Subtitles", "User supplied SRT files", and "Embedded SSA/SRT/CC within files (such as mkv or mp4)".
WebVTT is not on that list, and HandBrake's documentation does not address .vtt import either way. If that is what you have, convert it to SRT first — VTT to SRT does it in your browser, and the reverse direction lives at SRT to VTT. The two formats are less interchangeable than they look, which SRT vs VTT gets into.
Check the video side too. HandBrake "uses FFmpeg libavformat and libavcodec libraries under the hood and generally can open whatever FFmpeg will," with one blunt exception: it "does not work with video files employing Digital Rights Management (DRM)." And project files are not video files — videos "made using consumer video editing software such as iMovie and Shotcut must first be exported to a common video format for compatibility with HandBrake."
The three MP4 limits nobody mentions
These come straight from HandBrake's subtitles page, and they explain almost every "it didn't work" report.
1. One burned track. That's the ceiling. For Blu-ray PGS subtitles, the documentation says: "With MP4, you can burn ONLY 1 subtitle track into the video." The DVD VOBSUB section repeats the same sentence word for word. And switching containers does not buy you more — for MKV, the docs say you can pass through multiple tracks, but "you can only burn 1 subtitle track into the file. The rest must be passed through."
So English and Japanese both burned into the same picture is not something HandBrake does in one pass, in either container.
2. PGS cannot ride along in an MP4 at all. The documentation is explicit: "You can not pass-through PGS into MP4 as this file format does not support it."
3. SSA styling survives; SSA animation does not. For styled SSA subtitles — the kind most anime MKVs carry — the docs say: "When burned into the video, all styling (e.g. fonts, colors, etc) is preserved." Good news, until the next line: "Animated effects (e.g. fade in/out, karaoke) are not currently supported. (Only the middle frame of the animation will be used.)"
Step by step
Step 1 — Open the source. Point HandBrake at the video file. If it refuses, the DRM and project-file conditions above are the first two things to rule out.
Step 2 — Pick a preset, and know what it changes. HandBrake's General Presets "use the MP4 container and are intended to be broadly compatible across a wide range of software and devices," and the Web presets use MP4 as well. The default is Fast 1080p30, which the docs call "a good choice if you're just getting started."
Presets also reshape the picture, and burned subtitles end up inside that picture. With a preset selected, "higher resolution video will be downscaled to a maximum resolution, and higher frame rates will be peak limited to a maximum frame rate." Note the direction — downscale and peak-limit only; a 480p source under a 720p30 preset "will not be scaled or peak limited." Settle your output resolution here, because you cannot re-render the text later at a different size.
Step 3 — Add the subtitle track. On the Subtitles tab, select an embedded track from the source, or import an external file. For SRT the docs note it "Can be read from your source file or imported through the 'Subtitles tab' if you have separate files(s)."
Step 4 — Set that one track to hard burn. HandBrake's documentation describes the two output methods without naming the individual controls in the interface, so if your build's Subtitles tab is laid out differently from a tutorial screenshot, check the official documentation rather than guessing at a similar-looking checkbox.
Step 5 — Set the character encoding before anything else. This is the highest-consequence dropdown on the tab. The docs: "You should make sure the correct character code is selected from the 'Char Code' dropdown. Selecting the wrong code, will result in your output file having no subtitle track, and can cause the player to crash when playing that track."
A silently empty result and a possible player crash, from one dropdown. If your burned subtitles came out missing entirely, start here.
Step 6 — Fix timing with the offset, if needed. "You can set an offset (measured in milliseconds) to change the start time that the first and subsequent SRT subtitles will appear." The official method for finding the value is not clever: "Use trial and error encoding a single chapter to obtain the correct offset." Do that before committing to a full-length encode.
Step 7 — Leave quality on constant quality. HandBrake's guidance is direct: "Always use constant quality unless you have a specific reason not to." For the x264 and x265 encoders the recommended values are "RF 19-23 for 720p High Definition" and "RF 20-24 for 1080p Full High Definition." Those apply to x264 and x265 only — SVT-AV1 has its own separate range, and RF values are not comparable across encoders.
Step 8 — Encode, then check the file extension before you go looking for a bug (see Common mistakes below).
If you would rather not install anything, the same job runs in a browser tab:
Try it right here
Runs in your browser. Your file is not uploaded anywhere.
Your video and subtitle file are read from disk and processed locally; nothing is uploaded. The rest of the browser-side toolkit is at all Clapr tools, and more walkthroughs live in the how-to section.
Common mistakes
Expecting two burned languages in one file. The one-track ceiling is documented for both MP4 and MKV. Two languages means two encodes, or a dual-language subtitle file prepared before HandBrake sees it.
Ignoring Char Code until the output is empty. It is the documented cause of an output with no subtitle track, and it fails quietly during the encode.
Being surprised by a .m4v output. HandBrake's container documentation, which the project itself marks as a draft, says: "For MP4 files, HandBrake will automatically use the extension M4V when you pass-through audio (AC3), use SRT subtitles or have chapter markers enabled." Three triggers, and using SRT subtitles is one of them. The same page adds: "They are the exact same file, the only difference is the extension." You can rename it, and the automatic switch can be turned off in HandBrake's preferences.
Working from a tutorial's old preset names. The Web preset names changed more than once — see where HandBrake's Discord preset went.
FAQ
Can HandBrake burn two subtitle tracks into one MP4? No. The documentation states "With MP4, you can burn ONLY 1 subtitle track into the video," and the MKV guidance likewise caps burning at one track with the rest passed through.
Why did my MP4 come out as .m4v? HandBrake switches the extension automatically when you pass through AC3 audio, use SRT subtitles, or enable chapter markers. The file itself is identical — the docs say the only difference is the extension — so renaming it is safe, and the automatic switch can be disabled in preferences.
Can I burn Blu-ray PGS subtitles into an MP4? Yes, one track. What you cannot do is keep them as a selectable track: "You can not pass-through PGS into MP4 as this file format does not support it."
My subtitles are missing from the finished file. What happened? Check the Char Code dropdown first. HandBrake documents that selecting the wrong character code results in an output file with no subtitle track, and can crash the player on that track.
Can I remove subtitles after burning them in? No. They are "written on top of the image permanently" and cannot be turned on or off. Keep your original file until you have checked the result.
Does HandBrake accept .vtt subtitle files? HandBrake's documented subtitle sources are DVD VOBSUB and CC tracks, Blu-ray PGS, user-supplied SRT files, and embedded SSA/SRT/CC. WebVTT is not on that list, and the documentation does not state whether it works. Converting to SRT first removes the question.
All quoted behaviour is from HandBrake's official documentation, checked 16 September 2026. HandBrake marks its containers page as a draft — verify there before relying on those details.