Skip to main content

MKV vs MP4

They are not codecs. They are boxes. Here is what you put inside them.

The Container Misconception

"My TV can't play MKV files." This is a common complaint, but it's technically inaccurate. MKV (Matroska) and MP4 (MPEG-4 Part 14) are containers. They hold video streams, audio streams, and subtitle tracks together in one file.

When a file fails to play, it's rarely the container's fault. It is almost always because the hardware does not support the specific video codec (like HEVC) or audio codec (like AC3) packed inside that container.

MP4: The Universal Standard

MP4 is the undisputed king of compatibility. Every browser, smartphone, and smart TV manufactured in the last 15 years supports MP4 natively.

  • Best for: Web streaming, uploading to social media, hardware playback on Apple devices.
  • Video limits: Primarily designed for H.264 and H.265 (HEVC).
  • Audio limits: Usually restricted to AAC or MP3 audio.
  • Subtitle limits: Poor support for embedded subtitles. Usually requires hardcoded text or external files.

MKV: The Archival Heavyweight

Matroska is an open-source container built for maximum flexibility. If you download a high-quality movie rip, it will be an MKV.

  • Best for: Local archiving, dual-audio (dub/sub) releases, high-bitrate 4K.
  • Flexibility: Can hold virtually any video codec (H.264, VP9, AV1, HEVC).
  • Audio: Supports lossless formats like FLAC, TrueHD, and DTS-MA.
  • Subtitles: Can embed multiple soft-sub subtitle tracks (SRT, ASS) directly inside the file without hardcoding them into the video.

Browser Playback Reality

Chrome, Edge, and Firefox support playing MKV files natively using HTML5 `<video>` tags, provided the codecs inside are supported (e.g., H.264 video + AAC audio). Safari, however, aggressively rejects the MKV container on macOS and iOS, requiring users to remux to MP4.

Pro tip: You can losslessly convert an MKV to an MP4 in seconds using ffmpeg if the codecs are compatible:
ffmpeg -i input.mkv -c copy output.mp4