# What is an MP4 file? Everything you need to know about the MP4 format

An **MP4 file** is a multimedia container defined by the MPEG-4 family of standards. It can combine video, audio, subtitles, chapters, still images, and metadata. MP4 is the most common general-purpose video delivery format because it works across browsers, phones, televisions, and media players.

MP4 is not itself a video codec. A typical web MP4 contains H.264/AVC video and AAC audio, but an MP4 can also carry HEVC, AV1, or other supported tracks.

## How does MP4 work?

MP4 stores its data in nested boxes. Metadata describes tracks, timing, codecs, and the location of media samples. For progressive web playback, the metadata box can be moved to the beginning of the file so playback starts before the entire download finishes. This arrangement is commonly called**fast start**.

A device must support the container, video codec, audio codec, profile, level, pixel format, and other encoding choices. “MP4 support” alone does not guarantee that every MP4 will play.

## Benefits of MP4

* **Broad compatibility:** supported across modern browsers and consumer devices.
* **Efficient delivery:** works with established codecs such as H.264 and AAC.
* **Multiple tracks:** can contain audio, subtitles, chapters, and metadata.
* **Progressive playback:** fast-start files can begin playing during download.
* **Streaming ecosystem:** MP4 segments are widely used in HLS and MPEG-DASH workflows.

## Limitations of MP4

MP4 is a delivery container, not a complete compatibility decision. HEVC or AV1 inside MP4 may not play everywhere H.264 does. A single large MP4 is also less adaptive than HLS or MPEG-DASH, which can switch quality as network conditions change.

## MP4 compared with WebM and MOV

|Format|Best fit|Common codecs|Main tradeoff|
|-|-|-|-|
|MP4|Broad web and device delivery|H.264, HEVC, AV1, AAC|Codec choices still affect support|
|WebM|Open web media|VP9, AV1, Opus|Less support in some production tools|
|MOV|Capture and editing|ProRes, H.264, HEVC, PCM|Can be large and less predictable on the web|

## How to encode MP4 with Transloadit

Use [🤖/video/encode](/docs/robots/video-encode.md) with a tested preset instead of assembling every FFmpeg option yourself:

```json
{
  "steps": {
    ":original": { "robot": "/upload/handle" },
    "mp4": {
      "use": ":original",
      "robot": "/video/encode",
      "preset": "web/mp4/1080p"
    }
  }
}

```

For changing network conditions, use [🤖/video/adaptive](/docs/robots/video-adaptive.md) to create an adaptive HLS or MPEG-DASH package.

## MP4 FAQ

### Is MP4 the same as H.264?

No. MP4 is a container; H.264 is a video codec commonly stored inside it.

### Why does an MP4 fail to play on a device?

The device may not support one of its codecs, profiles, levels, pixel formats, or audio settings. Transcode to a known delivery preset for predictable results.

### Is MP4 suitable for streaming?

Yes for progressive downloads and as segments in adaptive streaming. For long-form playback across variable networks, HLS or MPEG-DASH usually provides a better experience than one fixed MP4.

## Related demos

* [Implement MPEG-DASH streaming](/demos/video-encoding/implement-mpeg-dash/)
* [Extract a 15-second video preview](/demos/video-encoding/extract-a-15-second-video-preview/)
* [Add subtitles to a video](/demos/video-encoding/add-subtitle-to-video/)
