Skip to article
Video preparation

MP4 container vs codec: why an MP4 video may not play

An MP4 extension does not identify its video codec. Inspect the actual streams, separate playback problems from metadata cleanup, and test a compatible export.

The practical answer

MP4 names a container. Playback also depends on the video and audio codecs inside it and the receiving app. Inspect the actual file before changing exports or blaming metadata.

Three different parts of a video file

Two files ending in .mp4 can contain differently encoded video or audio. MP4 is the container that holds media streams and associated information. A codec describes how a stream is encoded and decoded. The filename extension does not tell you the complete playback requirements.

Three different parts of a video file
PartExampleQuestion it answers
ContainerMP4 or MOVHow are the streams packaged?
Video codecH.264 or HEVC/H.265How is the picture encoded?
Audio codecAACHow is the sound encoded?
MetadataA title or creation-date field, when presentWhat information describes the file or stream?

Source: MDN: media container formats

On a Mac, inspect the file in QuickTime Player

Open the video in QuickTime Player and choose Window → Show Movie Inspector, or press Command-I. Apple documents information including compression format, size, frame rate and video or audio details in this panel.

Write down the format information and the intended destination before making another export. A useful support note says which app failed and what happened: a rejected upload, a black picture, missing sound or a failure partway through playback. Those are more useful clues than ‘the MP4 is broken’.

Source: Apple: inspect a media file in QuickTime Player

Optional: read the container and streams with ffprobe

If you already use FFmpeg’s command-line tools, ffprobe can report the container and each stream without creating a converted output. In the folder containing your video, replace input.mp4 in this command with its filename:

Look at codec_type to distinguish the video and audio entries, then read each codec_name. Missing fields can simply be inapplicable to that stream. Keep the report with your troubleshooting note; it describes the file, but does not establish that a particular destination will accept it.

ffprobe -v error -show_entries format=format_name,duration:stream=codec_type,codec_name,width,height -of json "input.mp4"

Source: FFmpeg: official ffprobe documentation

Choose the export for the destination

MDN identifies MP4 containing H.264 video and AAC audio as a common compatibility choice for web delivery. That is a starting point, not a universal acceptance guarantee. The destination can also impose its own dimensions, duration, frame rate and size limits.

Use the destination’s current requirements to make one test export from the best source you have. Open the result in the actual receiving app or upload flow and check both picture and sound. If it works, record the settings for that workflow; avoid making several unrelated changes at once, which makes a failure harder to diagnose.

Source: MDN: video codecs and format recommendations

Would renaming the file or removing metadata fix it?

Changing a filename from .mov to .mp4 does not re-encode the streams. Likewise, deleting a descriptive tag is not an instruction to change the video codec. If compatibility is the problem, choose a conversion or export workflow that addresses the required format.

Spoofzy separates these jobs. Metadata Cleaner handles supported metadata fields. Video Studio offers MP4 or GIF output from supported video inputs. It does not promise to repair every damaged file or support every codec and container. Keep the original if a job fails, and check the reported input limits before retrying.

Source: Video Studio: supported workflows and limitations

A short review before sending the replacement

A successful export is only the start of the handoff. Review the specific file the recipient will download, then name it clearly enough that the failed and approved versions cannot be confused.

  • Play the beginning, middle and end; look for missing frames or an unexpected crop.
  • Listen to the audio and check whether speech remains in sync.
  • Read any captions or small text at the intended viewing size.
  • Confirm the destination accepts the file and record the approved filename.
Put it into practice

Start with one file worth preparing.

Choose the tool for the job, check its current limits and review the result in Telegram.

Open Video Studio in Telegram