Container versus codec

Think of a container as a package and codecs as the encoding methods used for tracks inside it. An MP4 may contain H.264 video with AAC audio, while an MKV may contain HEVC video, Opus audio and multiple subtitle tracks. Two files with the same extension can therefore need different decoder capabilities.

When troubleshooting, identify the video codec, audio codec, profile, resolution, frame rate and bit depth—not just the extension. Vidorec categorizes supported and limited playback using information reported by the device and playback engine.

Common video codecs

H.264 AVC remains widely compatible. HEVC H.265 can reduce file size at comparable visual quality but support varies by profile, hardware and licensing path. VP9 is common in WebM and online media. AV1 is newer and efficient, but hardware decode availability is much stronger on recent devices than on older phones.

Android's platform table provides version-level baselines, but manufacturers may add formats and still differ in maximum resolution, profile, HDR and performance. A platform version is evidence of an API baseline, not a promise that every file shape works on every phone.

Audio and subtitles are separate tracks

A video may render correctly while its audio codec is unsupported, or audio may play when video decoding fails. Multi-audio files need a track selector. Embedded subtitles travel inside the container; external SRT or WebVTT files are separate and need correct timing and text encoding.

If subtitles drift, use timing offset rather than re-encoding the entire video. If they show wrong characters, verify the subtitle file's text encoding. If no embedded track appears, add the matching external file explicitly.

What to do when a file does not play

Read the specific error first. Try another audio track, disable an optional effect, copy a remote file locally or test a lower-resolution sample from the same source. Convert only when the device clearly lacks the required decoder. H.264 video with AAC audio in MP4 is a practical compatibility target, but conversion can take time and may reduce quality.

  • Container unsupported: remux or convert to a supported package.
  • Video codec unsupported: transcode the video track.
  • Audio codec unsupported: choose or convert the audio track.
  • Performance problem: reduce resolution, frame rate or bitrate.
  • HDR/display mismatch: use a compatible SDR version when necessary.