MPEG4 is a type of media. The corresponding video encoding standard is called MPEG4 Part 2.
It should not be confused with .mp4 container format, or with MPEG4 Part 10, a different video encoding also referred as H264.
Therefore, the same MPEG4 file can give different result depending on the decoding library used (QuickTime X or QuickTime 7 or other) and on the codecs installed.
Repairability
MPEG4 is hard to repair. Difficulty depends mainly of the type of audio that goes with MPEG4.
AAC and MPEG4 form a very challenging combination.
muLaw (pronounced mu-law, sometimes written ulaw), ima4 and PCM 8 bits mono are also difficult to repair when present in a MPEG4 file.
To fix a corrupt movie containing MPEG4, it is often necessary, and always helpful, to have a good file similarly encoded. Even if the file contains only a few frames, the fact that it was encoded with the exact settings of the damaged file will provide useful information:
Repair Techniques have been developed and tested with MPEG4 Video codec by Apple that is installed by default on your Mac and with Perian. Other MPEG4 codecs, DivX, Xvid, 3ivx, have hardly been validated and it would be no surprise if the techniques described below fail to deliver good repair quality.
How to repair a corrupt MPEG4 movie
The easiest way is certainly to ask our Movie Repair Service to do it for you.
But for those who can program, here you have a few tips:
This family of video codecs uses a spatial and temporal compression with keyframes and inter-frames.
Each video frame starts with a 00 00 01 B6 pattern. There's no specific pattern to detect the end of a frame. This makes repair difficult if video is interleaved with audio that is also not easy to parse.
When it's not possible to determine whether some data belong to video or audio, it's often better to discard it, thus making both video and audio frames shorter. Some artifacts can appear, but less than if we take all the data.
The simple repair technique consists in separating audio and video, then add bootstrapping data in front of video data (a video header describing pixel size), then use mp4creator to make a video mp4 file.
Reindexing is the preferred method, but sometimes doesn't deliver enough quality due to parsing errors. In such cases, Decode-Validate is used.