Some files that have been stored on a network drive, external hard disk, or back-up storage, no longer work. (Or files that once copied to another disk, no longer work.)
Those files used to work, and nothing weird happened with the storage device.
(Movies that have been corrupted by an incident during recording or storage failure, will not be repaired by the same technique.)
When trying to open them with QuickTime, you get an error: The movie could not be opened. The file is not a movie file.
Treasured says: Incomplete movie structure, QuickTime structure found.
Your file has been stored on a disk not supporting resource forks.
In older versions of Mac OS, it was common to store the data inside a file in two separate containers: resource fork and data fork.
Nowadays, usage of resource fork tends to disappear, as Mac OS X is not using it. Only some Mac specific file systems support it.
If you copy a file with a resource fork into such a file system, the resource fork will not be copied. No message will warn you.
But this file will no longer open in QuickTime.
The good news is that, as Treasured indicates, a "QuickTime structure" can be found. Probably everything is here. We just have to connect it together: The only thing to fix is usually the mdat atom, located at the beginning of the movie.
In such case, its length is no set (value = zero), so QuickTime doesn't know where to look for the moov atom.
Follow this process to repair it:
1. Open the damaged file with an Hex editor, like for example HexFiend or HexEdit (both free, but I recommend the first for speed).
2. Go to the end of the file and search backwards the ASCII word: moov
Here for example,
4ecaf5e0:0000 0000 0000 0000 0000 0000 0000 0000 ................ 4ecaf5f0:0000 0000 0000 0000 0000 0000 0000 0000 ................ 4ecaf600:0001 4eaa 6d6f 6f76 0000 006c 6d76 6864 ..N.moov...lmvhd 4ecaf610:0000 0000 7c26 c525 7c26 c5c2 0000 0bb5 ....|&.%|&...... 4ecaf620:0007 0544 0001 0000 00ff 0000 0000 0000 ...D............
3. Take note of the address where the word starts: 0x4ecaf604
4. Substract 12: 0x4ecaf5f8
5. Go the address 0x8, at the very beginning of the file, check that you're in overwrite mode, and write the number:
0000000: 0000 0008 7769 6465 4eca f5f8 6d64 6174 ....wide....mdat 0000010: 0303 8901 0000 0001 0000 0001 0000 0001 ................ 0000020: 0000 0001 0000 0001 0000 0001 0000 0001 ................
Note that we've filled the 00s between the words wide and mdat, with the exact number of bytes to jump to reach the moov atom.
6. Save the file. Open it to check it's fixed.
Case of files whose size is more than 4GB:
Lengths bigger than 4GB need more than 4 bytes to be written.
In this case, we use the extra space of the wide atom:
0000000: 0000 0008 7769 6465 0000 0000 6d64 6174 ....wide....mdat
... to write an mdat atom with length 1, followed by the length encoded in 64 bits:
(in this example, length calculated in 4. would be 0x14f084f4f)
0000000: 0000 0001 6d64 6174 0000 0001 4f08 4f4f ....mdat....o.oo