Formats & playback 6 min read
Video Will Not Play: A Troubleshooting Flow for Containers, Codecs and Decoders
"Will not play" has exactly three roots: the player rejects the container (TS, FLV, MKV variants), it cannot decode the codec (HEVC, VP9, AC3 audio), or the file is truncated/corrupt. Each has a distinct fingerprint once you probe the streams.
The probe-first flow
- Inspect the streams: video codec, audio codec, container. This single step splits all failures into their bins.
- If audio plays but video is black/green → video codec unsupported (typically HEVC).
- If video plays but audio is silent → audio codec unsupported (typically AC3/DTS).
- If nothing opens at all → container rejected or file truncated; check the file size matches the source.
- If seeking is broken but playback starts → missing index; a remux writes one.
Fixes mapped to causes
Container rejection → remux to MP4. Codec rejection → transcode video to H.264 / audio to AAC. Corruption → salvage what decodes; the tail is usually lost. No probe tool needed on your machine — all of this runs in the browser.