What is an MP4 box?
MP4 is based on the ISO Base Media File Format (ISO/IEC 14496-12). A file is a tree of boxes — also called atoms — each starting with a 4-byte size and a 4-character type. Container boxes such as moov and trak hold other boxes; leaf boxes such as mvhd or stsz hold fields.
| Box | Purpose |
|---|---|
| ftyp | File type: major brand and compatible brands (isom, mp42, qt …) |
| moov | Movie metadata — the index of tracks, codecs and sample tables |
| trak / mdia / stbl | Per-track media info and the sample tables (stts, stsz, stco, stss) |
| stsd | Sample description: codec (avc1, hvc1, mp4a …) and its configuration (avcC, hvcC, esds) |
| mdat | The compressed audio and video data itself |
| moof / mfra | Fragment headers and index in fragmented MP4 (used by HLS and DASH) |
| udta / meta / ilst | User data and iTunes-style tags such as ©too (encoder) and ©nam (title) |
What you can inspect
- Every box with its size and start / end byte offset
- Decoded fields: timestamps converted from the 1904 epoch, 16.16 fixed-point width and height, the transformation matrix, handler types
- iTunes metadata (encoder, title, artist, date …) and ftyp brands with raw hex
- Codec, resolution, frame rate, bitrate, sample rate and average GOP (keyframe interval)
- Diagnostics: truncation, faststart, iPhone/Safari compatibility and variable frame rate
Frequently asked questions
- Are my video files uploaded?
- No. MP4 and FLV files are read and parsed inside your browser tab with JavaScript and WebAssembly; the file never leaves your device. The only thing that goes through the VideoZ server is an HLS playlist URL, which is fetched by a small proxy because browsers block cross-origin playlist requests.
- Does it support fragmented MP4 (fMP4) and MOV?
- Yes. Fragmented MP4 shows its moof and mdat pairs, and QuickTime .mov files use the same box structure, so they open the same way.
- Is there a file size limit?
- The box tree and diagnostics are limited only by your browser’s memory. The FFmpeg-based media info panel is limited to 500 MB because FFmpeg WebAssembly copies the file into its own memory.
- Why does a box show raw data instead of fields?
- Some boxes are vendor-specific or not parsed by mp4box.js. VideoZ adds raw-byte parsing for common gaps such as iTunes ilst tags and hdlr reserved fields.