Last updated
What the moov box is
An MP4 file is a sequence of boxes. The mdat box holds the compressed audio and video; the moov box describes it — the tracks, codecs and sample tables that say where every frame starts and how long it lasts. Without moov, a player has data but no way to decode it.
Many cameras and apps write moov last, after recording stops. If the device loses power, the app crashes or the card is removed early, the file ends inside mdat and moov is never written.
Common causes
- Recording interrupted: battery died, app crashed, storage filled up
- Incomplete download or copy
- File recovered from a deleted or formatted card
How to check your file
- Drop the file into the MP4 Boxes tool above.
- Open the Diagnostics card and read “File integrity”.
- If it reports that moov is missing and the last box declares more bytes than remain, the file was cut off before it was finalized.
How to recover it
If mdat is present, the audio and video are usually still there, just unindexed. untrunc rebuilds moov by analyzing a healthy reference file recorded on the same device with the same settings (resolution, frame rate, codec):
untrunc reference.mp4 broken.mp4
What will not fix it
ffmpeg -movflags +faststart only moves an existing moov to the front of the file; it cannot create one. If the recovered data is mostly zeros because the card was overwritten, no tool can restore the video.
Frequently asked questions
- Can ffmpeg fix “moov atom not found”?
- Not by itself. FFmpeg needs moov to read the file. Rebuild moov first with a tool such as untrunc and a reference file from the same camera, then use FFmpeg normally.
- The file is the right size — why is moov still missing?
- A recording can be full size but never finalized. The writer reserves space for mdat while recording and only writes moov when it stops cleanly.
- moov is present but the video still will not play. What next?
- Check the iPhone/Safari compatibility and faststart diagnostics: an unsupported codec tag, profile or moov placed at the end of the file are the next most common causes.
- 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.