Sync-Hole allows you to get the audio and video of QuickTime movies in sync with each other.
Where Sync-Hole excels is with movies that drift in and out of sync, for example if it is in sync at the beginning and end, but not in the middle. Sync-Hole can stretch parts of the video track to realign with the audio, while keeping other parts of the movie exactly where they were.
Sync-Hole can also do the simple manipulations that are available from other programs, such as stretch the video track as a whole, or simply slide the audio track back and forth ("offset").
Sync-Hole cannot access any movies that QuickTime cannot. For example, if a movie can't be opened in QuickTime, it can't be opened in Sync-Hole either, and if it can't be edited in QuickTime Pro, it can't be edited by Sync-Hole either (this mainly applies to MPEG-1 and MPEG-2 movies).
This program attempts to sync your quicktime movies by changing the framerate of sections of the video track(s), or changing the offset of the audio track. Every time you change the framerate, it (probably) makes the movie a little harder to play back for Quicktime, so try to make as few changes as possible to sync your movie. To clarify, the Anchors and the Edits are different. Entering a number to change the movie is an Edit. Adding anchors has no effect on the final movie (so add as many as you like). Also, removing all anchors does not make the movie snap back to the way it started (what it does is make the next Edit affect the entire movie instead of just the time between anchors, which you've removed). Clear enough? :)
I offer no warranty whatsoever, so use at your own risk.
Source Code (Obj-C, Xcode, 168 KB)
Please email me with any bugs you find and I will fix them toute suite. If you would like to contribute that is also welcome, just email me any changed source files and I will add your name to the credits (for the first person I guess I'll have to make some credits). If you steal the code, shame on you, but at least make into a good useful program, and find out why it crashes when you scan to a point with audio and no video.