Fix it now
- Drop the file
- Repair runs locally
- Download the result
Almost every video player and converter is built on ffmpeg, so its errors surface everywhere — often as "[mov,mp4,m4a,3gp,3g2,mj2 @ ...] moov atom not found" followed by "Invalid data found when processing input". The message is generic on purpose: internally it is AVERROR_INVALIDDATA, meaning the demuxer hit bytes that do not fit the format it expected. Drop the file above and the tool reads the container structure in your browser, works out whether the video stream survived, and rebuilds a clean file the player can open — without the clip ever leaving your device.
Why the parser rejects a file whose footage is fine
An MP4 or MOV file is a tree of boxes (also called atoms). Each box starts with a 4-byte size and a 4-byte type: ftyp declares the brand, mdat holds the raw audio and video samples, and moov is the index — the sample tables that say where every frame lives, what codec decodes it, and at what timestamp. When ffmpeg opens the file it walks this tree. If it cannot find a coherent moov, or a box announces a size that runs off the end of the file, or the bytes where a box header should be are garbage, it stops and reports "Invalid data found when processing input."
Crucially, the heavy data — the mdat with your actual footage — can be completely intact while this happens. The parser fails on the index, not the pictures. That is why the same file that "has no valid data" can be full of perfectly good frames waiting for a container that describes them correctly. This overlaps heavily with the classic "moov atom not found" case: a recording interrupted before the camera wrote its moov leaves exactly this signature.
Rebuilding the container so it plays again
When the samples survived but the map is broken, the fix is to remux: scan the surviving stream data, reconstruct the sample tables the container needs, and write a fresh, well-formed MP4 around the same footage. No re-encoding is involved, so there is no quality loss — the frames are the original frames, just correctly indexed again. Where the moov is missing entirely, the tool rebuilds it from the structure of the media stream so the player has the frame map it was looking for.
The other frequent trigger is a mismatched extension or an interrupted transfer. A file named .mp4 that was actually saved as a different container, or a clip whose download stopped partway, both make ffmpeg choke on unexpected bytes. The tool checks what the file really is by its box signatures rather than its name, and salvages the portion that arrived. All of this runs in your browser — no ffmpeg install, no command line, and no server ever receives the video.
When it genuinely can't be fixed
Rebuilding the container only works when the container is the problem. If the underlying media data itself is destroyed or overwritten — a card that returned zeros, a file mangled by a failing drive, a recording looped over by the camera — there are no good frames to re-index, and no tool can rebuild footage that is not on the disk. Recover the raw bytes from the storage first, then repair.
The other honest non-starter is a file that is not really a video: a document, an image, or a truncated fragment that happens to carry a .mp4 extension. "Invalid data" is literally true there, and no remux can turn a non-media file into a playable clip. When the footage is present, though, the browser-only approach means sensitive recordings — evidence, personal video, unreleased work — are repaired without being copied anywhere. Open the Network tab and you can confirm 0 bytes of the clip are sent.
What this can and can't fix
Can fix
- MP4/MOV files whose moov index is missing or damaged while the mdat footage survived
- Recordings interrupted before the camera finalized the container (overlaps 'moov atom not found')
- Broken sample tables, wrong offsets and bad timestamps that stop the demuxer
- Clips with a mismatched extension whose real container the tool detects by signature
- The portion of an interrupted download/transfer that actually arrived
Can't fix
- Files where the media data itself was overwritten or returned as zeros — there are no frames to re-index
- Non-media files (documents, images, fragments) wearing a video extension
- Footage physically lost to a failing drive or card (recover the raw bytes first, then repair)
- Encrypted or DRM-protected streams without their keys
If a repair fails, we tell you why (missing data versus broken structure), and you are never charged for a failed repair.