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
CopyBluray generated and inspected two copyright-free six-second MP4 fixtures:
- H.264 video with AAC audio and chapter metadata;
- H.265 video with an
hvc1tag and AC-3 audio.
ffprobe confirmed the expected streams and metadata. These fixtures prove that the local generation and inspection pipeline works. They do not prove playback on a phone, TV, browser, Plex client, Jellyfin client, or hardware decoder.
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 | Vendor claims only; advertised speed is not CopyBluray-tested |
| Leawo Blu-ray Ripper | MP4, MKV and other formats | Windows and macOS | Annual pricing and free download are advertised | Vendor claims only; trial and renewal terms need checkout review |
| 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
Sources and synthetic fixture hashes were checked on July 12, 2026. The next required review is October 12, 2026.