noted.do
The Tech Guy

Why Won't This Video Play

You download a video, double-click it, and get either an error, a black screen with sound, or sound-less moving pictures. The file isn't broken. Your player just doesn't speak its language. To understand why, you need two words that get mixed up constantly: container and codec.

The container is the file format, the thing the extension tells you about. MP4, MKV, MOV, WebM. Think of it as a box. Inside the box are separate streams: usually one video track, one or more audio tracks, maybe some subtitles, plus information about how to keep them in sync.

The codec is how each of those streams is actually compressed. Raw video is enormous, so it's always squeezed down with some compression scheme, and the player needs to know that exact scheme to unsqueeze it. Common video codecs are H.264 (also called AVC), H.265 (HEVC), VP9 and AV1. Common audio codecs are AAC, Opus, MP3, and AC-3 or E-AC-3 (Dolby Digital) in movie files.

So "it's an MP4" tells you about the box, not what's in it. Two MP4 files can contain completely different codecs. That's why one plays fine and another, with the exact same extension, doesn't.

The failure modes map onto this pretty neatly. Black picture but audio works? Your player handles the audio codec but not the video one. Picture but no sound? The reverse, and very often the culprit is a surround-sound track in a format your device or browser doesn't decode. Won't open at all? It might not understand the container, or the video codec, or both.

A quick tour of the video codecs you're most likely to bump into:

H.264 is the one that plays almost everywhere. Phones, TVs, browsers, ancient laptops. If you want a file that just works, an MP4 with H.264 video and AAC audio is still the safest choice.

H.265 / HEVC gets similar quality in noticeably smaller files, and iPhones use it for recording by default in many configurations. But support is patchier, partly due to patent licensing, so a file that plays fine on your phone might stumble on an older PC or in some browsers.

VP9 came from Google and is royalty-free. It's widely used for web video and well supported in browsers.

AV1 is the newer royalty-free codec, with better compression still. The catch is that decoding it in software is heavy, so older devices without hardware support for it can struggle, stutter, or drain the battery fast.

That hardware point matters more than people realize. Phones and computers have dedicated chips for decoding specific codecs efficiently. If your device has hardware support for a codec, playback is smooth and cool. If it doesn't, the CPU has to do it all, and high-resolution video can turn into a slideshow even on a fairly decent machine.

What to actually do about it:

  • Try VLC or mpv first. Both bring their own decoders for nearly everything, so they'll play files your system's built-in player chokes on. This solves the problem most of the time.
  • Check what's inside. MediaInfo is a free tool that shows exactly which container and codecs a file uses, which turns guessing into knowing.
  • Remux if only the box is the problem. If the codecs are fine but a device dislikes the container (say, MKV on a TV that wants MP4), you can rewrap it without re-encoding, which is fast and loses no quality. With FFmpeg: ffmpeg -i input.mkv -c copy output.mp4 (this only works if the codecs inside are ones MP4 can hold).
  • Re-encode when the codec is the problem. HandBrake is the friendly option. Pick a preset aimed at your device and let it run. This takes a while and loses a little quality each time, so keep the original.

Once the container/codec split makes sense, most "this video won't play" problems stop being mysterious. It's almost always just a box your player can open, holding something it can't read.

Comments

Be kind. See the rules.