You AirDrop an MKV to your iPhone. It arrives instantly, sits in Files, and refuses to open. Photos won't import it. QuickTime says the format isn't supported. The clip that played fine on your laptop is now an unreadable rectangle on your phone.

The instinct is to blame the video. It's almost never the video. The picture and sound inside the MKV are, in the great majority of cases, exactly what an iPhone can play - H.264 or HEVC video with AAC audio, the same codecs the iPhone's own camera writes. What the iPhone refuses is the container: the outer wrapper the file uses to package its streams. (For the fuller comparison of what each container holds, see MP4 vs MKV.)

#Codecs vs containers, in one paragraph

A codec is how a stream of pixels or sound samples is compressed - H.264, HEVC, AAC, Opus. A container is a file format that wraps one or more of those streams together with an index and some metadata - MP4, MKV, MOV, WEBM. iPhones ship with hardware decoders for a specific short list of codecs and a specific short list of containers. When either doesn't match, playback fails, even if the other half would have been fine on its own.

Anatomy

iOS checks the envelope, not the letter

MKV the wrapper iOS refuses
VIDEOH.264
AUDIOAAC
SUBSSubRip

Your iPhone decodes both of these every time it opens its own camera roll.

Refused on the wrapper alone
MP4 the wrapper iOS opens
VIDEOH.264
AUDIOAAC
SUBStx3g

Byte-for-byte the same video and audio streams as the panel on the left.

Both files hold identical compressed video and audio. One opens, one doesn’t. The decision is made on the four bytes of the container’s type box, before iOS has looked at a single frame.

iOS supports these containers natively: MP4, M4V, MOV, and 3GP. That's it. Everything else - MKV, WEBM, AVI, WMV, FLV, OGV, TS, MTS, VOB - is ignored regardless of what's inside. The codec inside can be identical; the wrapper alone is enough to stop playback.

The guest list

Four containers get in. Everything else waits outside.

Opens on iOS Photos · Files · QuickTime · Safari
MP4 M4V MOV 3GP

All four are the same family - MP4, M4V and 3GP are variations on the ISO base media format, and MOV is the QuickTime original it grew out of.

Refused on sight no matter what is inside
MKV WEBM AVI WMV FLV OGV TS MTS VOB MXF DIVX DAV

Most of these hold H.264 or HEVC - codecs the phone in your hand has a dedicated hardware decoder for.

This is the shortest container list of any mainstream platform, and it has barely moved in a decade. It is also why “convert to MP4” is the single most searched-for video task there is.

#Why iOS keeps the list so short

Apple bakes container support into the operating system and, historically, into the hardware. Adding a new container means a firmware-adjacent code path - parsers for the file structure, hooks into the decoder pipeline, timing-model translations. Apple has consistently chosen the smaller list because a smaller attack surface means fewer bugs and fewer security patches. The trade-off is that anything outside the MPEG family of containers is your problem to convert.

Windows, Android, and desktop browsers each ship broader parser sets. VLC on any platform ships an even broader set. iPhones are the strictest common device, which is why "won't play on iPhone" is by far the most common reason people hit a converter site in the first place.

#The one-minute fix

When the streams inside are already MP4-compatible (H.264 or HEVC video with AAC audio - the case for the majority of MKV, MOV, and TS files you'll encounter), the fix is a remux: rewrite the container header without touching the video pixels or audio samples. The bytes on disk are almost the same. The picture and sound are identical. The wrapper says MP4 instead of MKV, and iOS plays the file.

A remux is fast because there's no re-encoding involved (see remux vs re-encode for the full mechanical story). A 500 MB MKV can be remuxed to a 500 MB MP4 in a few seconds on any modern laptop - the CPU is only reading and writing bytes, not decoding and re-encoding frames. Our own MKV to MP4 converter does exactly this in your browser: no upload, no server, no wait.

#When it's not just a remux

A minority of files inside your MKV-that-won't-play use a codec MP4 doesn't hold - most often VP9 video (common in YouTube downloads) or Opus audio. Those need a real re-encode, which is slower and introduces a small quality loss. WEBM files fall into this bucket by definition (VP9 + Opus is the WEBM standard); so do OGV files (Theora + Vorbis) and WMV files (Microsoft-specific codecs). A converter has to actually decode and re-encode, not just re-wrap.

You can tell which path your file is going to take before you start, just from its extension.

Know before you click

Which conversions are seconds, and which are minutes

Fast path · remux seconds · zero quality change

These normally carry H.264 or HEVC with AAC already. Only the header gets rewritten.

Slow path · re-encode minutes · small quality cost

Their codecs - VP9, Theora, WMV3, MPEG-2, DivX - have no home in MP4. Every frame has to be decoded and re-compressed.

Every chip links to the page for that conversion. If a converter quotes you a long wait on something from the left-hand column, it is doing work it did not need to do.

#What about AirDrop's "convert on send" option?

Recent iOS versions offer a "Most Compatible" AirDrop option that converts HEIF images and HEVC videos on send. It doesn't convert containers - an MKV going by AirDrop is still an MKV when it lands. The option only touches Apple's own codec families. Everything else is up to you.

#The takeaway

"Won't play on iPhone" is nine-tenths a container problem. If the file is an MKV, MOV, or TS with H.264 or HEVC inside - which is what the great majority of MKVs actually are - a container swap fixes it in seconds without touching the picture or sound. If it's a WEBM, WMV, or OGV, expect a real transcode and a small quality dip. Either way, it's not the codec you thought was wrong.