<span aria-hidden="true" id="what-is-an-mp4-file-everything-you-need-to-know-about-the-mp4-format"></span>

# 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.

<span aria-hidden="true" id="how-does-mp4-work"></span>

## 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.

<span aria-hidden="true" id="benefits-of-mp4"></span>

## 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.

<span aria-hidden="true" id="limitations-of-mp4"></span>

## 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.

<span aria-hidden="true" id="mp4-compared-with-webm-and-mov"></span>

## 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|

<span aria-hidden="true" id="how-to-encode-mp4-with-transloadit"></span>

## 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.

Want to test the workflow before writing integration code? Open the[live WebM-to-MP4 demo](/demos/video-encoding/webm-to-mp4.md) to upload a sample, inspect the Assembly Instructions, and copy them into a Template. You can also[create a free account](/c/signup/) and paste the example above into the Template Editor.

<span aria-hidden="true" id="mp4-faq"></span>

## MP4 FAQ

<span aria-hidden="true" id="is-mp4-the-same-as-h264"></span>

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

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

<span aria-hidden="true" id="why-does-an-mp4-fail-to-play-on-a-device"></span>

### 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.

<span aria-hidden="true" id="is-mp4-suitable-for-streaming"></span>

### 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.

<span aria-hidden="true" id="related-demos"></span>

## Related demos

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

For a broader overview of presets, codecs, and delivery workflows, see our[video encoding service](/services/video-encoding.md).
