Container vs codec: why an MP4 can still refuse to play
An MP4 is a container: a box that holds one or more video, audio and subtitle streams. A codec is the method used to compress each of those streams. Your player has to understand both, so a perfectly valid MP4 can still refuse to play because the video inside it was compressed with a codec your Mac does not have a decoder for.
The box and what is inside it
The three or four letters after the dot tell you the container, not the contents. MP4, MOV, MKV, AVI and WEBM are all containers. Each one is a specification for how to interleave chunks of video and audio, store timestamps, and describe the streams in a header so a player knows what it is about to read.
Inside the box are the streams, and each stream was compressed with a codec (short for coder-decoder). For the video track that might be H.264, HEVC (also called H.265), VP9, AV1 or the older MPEG-4 Part 2. For the audio track it might be AAC, MP3, AC-3, Opus or uncompressed PCM.
Here is why this matters: the same container can hold many different codecs. One MP4 might contain H.264 video with AAC audio and play everywhere. Another MP4, from the same camera model with one setting changed, might contain HEVC video with AC-3 audio. It has the same extension and the same icon, and QuickTime may only manage the picture, or only the sound, or neither.
The reverse is true as well. H.264 video can live in an MP4, a MOV, an MKV or a TS file. The picture data is identical; only the wrapping changed. That is the basis of the fastest fix later in this post.
The codecs you will actually meet
You do not need to memorize a standards catalog. A handful of names cover almost every file that lands on a Mac:
- H.264 (AVC): the most widely supported video codec in existence. Every Mac, phone, browser and smart TV plays it.
- HEVC (H.265): roughly half the file size of H.264 at similar quality. iPhones record it by default. Macs play it natively, but many Windows machines, older Android phones and web browsers do not.
- VP9 and AV1: open codecs used heavily by streaming sites and screen recorders, usually inside a WEBM container. QuickTime has no decoder for VP9; AV1 support depends on your Mac’s chip and macOS version.
- MPEG-4 Part 2 (DivX and Xvid): the codec of early 2000s AVI files. Apple’s frameworks dropped it years ago.
- AAC and MP3: audio codecs that play on everything.
- AC-3 and DTS: surround-sound audio from camcorders, discs and downloads. QuickTime often plays the video from these files with no sound at all.
- Opus: modern audio codec, excellent quality, almost always paired with VP9 or AV1 inside WEBM.
If the file you are fighting contains only H.264 and AAC, the container is the problem. If it contains anything from the second half of that list, the codec is the problem.
How to see what is inside a file on a Mac
macOS will tell you, once you know where to look.
- In Finder, select the file and press Command-I to open Get Info.
- Expand the More Info section. For most video files it lists Dimensions, Duration and a Codecs line such as “H.264, AAC” or “HEVC, AC-3”.
- If Codecs is blank, open the file in QuickTime Player (if it will open at all) and choose Window > Show Movie Inspector. The Format line names each stream.
- If neither shows anything, macOS cannot parse the header at all. That points to an unusual container or a damaged file rather than a codec it merely lacks; see the last section.
A blank Codecs line on an MKV or WEBM is normal, because Finder only indexes the containers Apple’s frameworks understand natively.
Why “not compatible” does not mean “broken”
When QuickTime Player reports that a file is not compatible, it has read enough of the file to know what it is and decided it cannot decode at least one stream. That is a capability gap, not damage. The bytes are intact; your Mac just does not have the right decoder installed, and on modern macOS you cannot add one to QuickTime.
Two clues separate a codec gap from corruption:
- Video plays, audio is silent (or the reverse): almost always a codec gap in the silent stream, typically AC-3, DTS or an unusual audio format.
- The file opens and shows its correct duration but will not play: a codec gap. A corrupted file usually shows a wrong duration, 0 seconds, or refuses to open at all.
If the file opens with the wrong length, freezes at the same timestamp every time, or shows blocks of gray, you are looking at damage and the fix is repair, not conversion. How to check whether a video file is corrupted on a Mac walks through that diagnosis.
Fixing it: remux or re-encode
There are two ways to make an unplayable file playable, and it helps to know which one you are doing.
Remuxing moves the existing streams into a different container without touching the compressed data. It takes seconds, loses nothing, and only helps when the codecs are supported and the container is not. H.264 inside an MKV is the classic case: put the same H.264 in an MP4 and QuickTime is happy.
Re-encoding decodes the stream and compresses it again with a different codec. It takes minutes rather than seconds and involves a generation of quality loss, but it is the only option when the codec itself is unsupported. VP9 video in a WEBM has to be re-encoded to H.264 before a Mac without VP9 support will play it.
Manatee handles both cases through its Convert mode, which accepts 122 input types including MKV, WEBM, AVI, WMV, FLV and TS, and writes a new MP4 or MOV alongside the original. Drop the file onto the menu bar icon, pick the target, and the original is left untouched. Manatee cannot teach QuickTime a new codec, and it cannot make a stream playable on a device that does not support the output codec either; what it does is produce a new file in a format your Mac and most recipients already understand. If you want the step-by-step version, see MKV file won’t open on Mac: how to fix or convert it.
A third route is a player that bundles its own decoders. That gets you watching without producing a new file, but it does not help when you need to send the video to someone else, edit it, or import it into Photos.
When it really is corruption
If Get Info shows a Codecs line of “H.264, AAC” and the file still will not play, stop converting and start diagnosing. Common causes are an interrupted copy, a recording that ended with a dead battery, or a download that stopped short. Converting a damaged file mostly produces a damaged output. Manatee’s Repair mode rebuilds the container index and salvages what it can, reporting honestly whether the result is Fixed, Partial (say, the first eleven minutes of a twenty-minute clip) or Not fixable. Data that was never written to disk cannot be recovered by any tool.
Questions
Can I just rename .mkv to .mp4? No. Renaming changes the label on the box, not the box. QuickTime reads the header, sees an MKV structure, and refuses. You need a remux, which rewrites the container properly.
Why does the same MP4 play on my iPhone but not my Mac? Usually an older macOS. Both devices need an HEVC decoder, and iPhones got one before some Macs did. If your Mac is on macOS 12 or later it should manage HEVC; check the Codecs line for something rarer such as AC-3 audio. Why some videos play on iPhone but not on Mac covers the combinations.
Does converting to MP4 always lose quality? Only if the video stream is re-encoded. A remux from MKV to MP4 with the same H.264 inside is bit-for-bit identical. A re-encode from VP9 to H.264 is a new compression pass, though at a sensible bitrate the difference is hard to see.