This one distinction explains most video problems people run into, and almost nothing on the web states it plainly.

The two things

A container is the wrapper. MP4, MOV, MKV, WEBM and AVI are containers. A container holds the video stream, the audio stream, subtitles, chapter markers and metadata, and describes how they line up in time. The file extension tells you the container and nothing else.

A codec is the compression algorithm. H.264, HEVC (H.265), VP9, AV1 and ProRes are codecs. The codec is what actually turned your camera’s raw output into a file small enough to store.

The analogy that works: the container is the box, the codec is the language the contents are written in. Knowing you received a box tells you nothing about whether you can read what is inside.

Why this matters in practice

A file ending in .mp4 can contain:

  • H.264 video — plays essentially everywhere
  • HEVC video — plays on newer devices, fails on older ones and in many editors
  • AV1 video — plays in recent browsers, fails widely elsewhere
  • MPEG-4 Part 2 — ancient, but still turns up in old exports

All four are valid MP4 files. Only the first plays reliably. So when a video “will not play despite being an MP4”, the container is almost never the problem — the codec inside it is.

How to diagnose it

Symptoms map fairly cleanly onto causes:

SymptomLikely cause
Audio plays, no pictureUnsupported video codec
Picture plays, no audioUnsupported audio codec, often AC-3 or DTS
Nothing plays at allUnsupported container, or a corrupt file
Plays but stutters badlyNo hardware decoding — usually HEVC or AV1 on older hardware
Plays in one app, not anotherCodec supported by one decoder and not the other

Remuxing versus re-encoding

Two very different operations, often confused:

Remuxing changes the container and leaves the streams untouched — moving H.264 video from an MKV into an MP4, for example. It takes seconds and loses nothing, because the compressed data is copied through unchanged. Our trim tool uses the same stream-copy mechanism.

Re-encoding decodes the video and compresses it again with a different codec. It is slow and lossy, but it is the only option when the codec itself is the problem. Our MP4 converter re-encodes to H.264.

The practical rule: if the container is wrong, remux. If the codec is wrong, re-encode. If you are not sure which, re-encoding to MP4 with H.264 fixes both at the cost of one lossy pass.

The compatibility ranking

If your only goal is a file that plays everywhere:

  1. H.264 in MP4 with AAC audio. The universal choice. Hardware decoding on effectively every device made since about 2010.
  2. VP9 in WEBM with Opus. Excellent in modern browsers, poor on TVs and older Safari.
  3. HEVC in MP4. Better compression, meaningfully worse compatibility.
  4. AV1. The most efficient and the least universally supported.

For anything you need to simply work, convert to MP4 and stop thinking about it.