Quick answer: start with H.264 video and AAC audio in MP4 when broad playback compatibility is the priority. Consider H.265 when smaller files matter and every target client supports it. Choose MKV instead when you need more flexible lossless audio and subtitle tracks. Test a short sample on the real target device before encoding the full title.
MP4, MKV, H.264, and H.265 are different choices
- MP4 and MKV are containers. They organize video, audio, subtitles, chapters, and metadata.
- H.264 and H.265 are video codecs. They determine how video is encoded and what hardware is needed to decode it.
- AAC, AC-3, E-AC-3, DTS, and TrueHD are audio choices. A device may support the video but reject or transcode the audio.
- A file extension is not a compatibility guarantee. Inspect the streams inside it.
Choose a starting profile
| Target | Conservative starting profile | Why | Check before committing |
|---|---|---|---|
| Phones, tablets, browsers | MP4, H.264, AAC | Broad software and hardware support | Resolution, subtitle behavior, battery use |
| Modern smart TV | MP4, H.264/AAC first; H.265 after testing | H.265 support varies by model and profile | Video profile, audio codec, HDR, subtitles |
| Plex or Jellyfin | Lossless MKV first, optional MP4 later | Keeps selected streams before compression | Direct Play, remux, transcode reason |
| Small portable file | MP4 with a device preset | Predictable compatibility target | Motion, dark scenes, audio channels, subtitles |
| Archive source | ISO, folder, or lossless MKV | Avoids making the compressed copy the only source | Integrity and second-copy status |
What this edition actually verified
On October 11, 2026, we re-inspected the two existing synthetic MP4 samples with ffprobe:
| Sample | Video | Audio | Chapter entries | Bytes |
|---|---|---|---|---|
| H.264/AAC | H.264, avc1, 1920×1080 |
One mono AAC tone track | 2, starting at 0 and 3 seconds | 4,298,773 |
| H.265/AC-3 | HEVC, hvc1, 1280×720 |
One mono AC-3 tone track | 0 | 1,616,918 |
Both files’ sizes and SHA-256 values still match their August 29 manifest. Only the H.264/AAC sample contains chapter metadata; ffprobe classifies its text-tagged stream as data, not as a subtitle stream. Neither sample contains a subtitle stream.
These approximately six-second clips confirm file identity, codecs, audio-track counts and the presence or absence of chapter metadata. They do not demonstrate chapter navigation, surround audio, HDR, or playback on a phone, TV, browser, Plex/Jellyfin client or hardware decoder. Different resolutions and settings mean the two file sizes are not a compression-efficiency comparison.
Compatibility-first workflow
- Identify the actual playback client. Record the TV model, app, browser, phone, tablet, or media-server client.
- Create or select a verified source title. Confirm runtime, opening scene, audio languages and subtitle tracks before compression.
- Choose a conservative starting profile. H.264/AAC MP4 is the default comparison profile.
- Encode a short representative sample. Include motion, a dark scene, dialogue, surround audio and a subtitle moment when possible.
- Play the sample on the weakest target client. Do not validate only on the encoding computer.
- Check video. Look for stutter, block artifacts, banding, incorrect aspect ratio and HDR problems.
- Check audio. Confirm language, channel count, lip sync and whether the client transcodes it.
- Check subtitles. Test normal and forced subtitles separately.
- Check chapters. Verify at least two chapter jumps if chapters are required.
- Encode the complete title only after the sample passes. Keep the original disc or a verified archive as the source.
H.264 or H.265?
H.264 is the safer default for mixed or older clients. H.265 can reduce storage needs at a comparable visual target, but actual size depends on content, quality settings, encoder, runtime and audio choices. It also requires compatible decoding hardware and software.
Do not publish or trust a universal compression percentage. Run one representative title with recorded settings before estimating a collection.
AAC or AC-3?
AAC is a conservative stereo or general-compatibility choice. AC-3 can be useful for surround compatibility on home-theater devices, but browser and client support varies. A media server may preserve the video while transcoding only the audio.
Record the exact reason shown by Plex or Jellyfin instead of assuming that an MKV or MP4 container caused the transcode.
Subtitles and forced subtitles
Subtitle support depends on the container, subtitle format and client. A client may Direct Play the same video with subtitles off but transcode it when image-based subtitles are enabled.
Before a full encode:
- list all source subtitle tracks;
- identify forced or foreign-language-only tracks;
- create a sample that includes a known subtitle event;
- test selectable and burned-in behavior separately;
- record the target client and whether subtitles changed playback mode.
Current software choices from official documentation
| Product | Officially published file outputs | Platforms currently claimed | Price or trial status | Evidence boundary |
|---|---|---|---|---|
| DVDFab Blu-ray Ripper | MP4, MKV and other video/audio profiles | Windows and macOS | Official page shows a current price and free download | Based on official product information; advertised speed was not independently tested |
| Leawo Blu-ray Ripper | MP4, MKV and other formats | Windows and macOS | Annual pricing and free download are advertised | Based on official product information; confirm trial and renewal terms at checkout |
| MakeMKV | Lossless MKV-oriented output | Windows, macOS, Linux | Beta availability is documented | Useful source workflow, not an MP4 encoder |
| HandBrake | MP4 and MKV encoding presets | Windows, macOS, Linux | Free open-source tool | Requires a readable source; does not replace source acquisition |
No product receives a performance ranking until the same input, output profile, computer and verification checklist have been recorded.
Verification checklist
| Check | What to record |
|---|---|
| Video | Codec, profile, level, resolution, frame rate, HDR status |
| Audio | Codec, language, channels, passthrough or transcode |
| Subtitles | Format, language, forced flag, selectable or burned in |
| Chapters | Count and successful jumps |
| Size | Source bytes, output bytes, exact quality settings |
| Time | Software version, CPU/GPU path, elapsed time |
| Playback | Client, Direct Play/remux/transcode, visible or audible problems |
| Integrity | File opens, duration is plausible, checksum stored |
Common playback failures
The file will not play or has no sound
Inspect container, video codec, audio codec and channel layout separately. Continue with MP4 or MKV will not play.
Subtitles or audio tracks are missing
Compare the source and output track lists and verify what was selected. Continue with Subtitles or audio tracks are missing.
Plex or Jellyfin unexpectedly transcodes
Read the server’s transcode reason, then compare playback with subtitles disabled and a different audio track. Continue with Plex or Jellyfin unexpectedly transcodes.
The wrong movie or episode was encoded
Verify playlist, runtime and opening scene before starting a batch. Continue with Wrong title or TV episode order.
Evidence sources
- HandBrake container documentation
- HandBrake official presets
- Plex supported media formats
- Jellyfin client codec support
- DVDFab Blu-ray Ripper official page
- Leawo Blu-ray Ripper official page
The original source review is dated July 12, 2026; individual evidence records carry later checks where applicable. Only the synthetic-file checks above were repeated on October 11, 2026. Purchase terms and client compatibility were not reverified.