What are 'Variable Frame Durations'?
Variable Frame Durations occur as a result of realtime capture on preemptive multitasking computers, such as your Mac.
In a nutshell, it isn't possible to guarantee an exact timing between frames. The first (topmost) image below shows frames landing perfectly on frame boundaries and represents an idealistic model. The lower image shows what actually happens in realtime capture, where you have frames occuring close to, but not exactly on frame boundaries. It also shows that it is possible to skip entire frames.
Most of the time, if the frame durations are "close enough" then visually we don't see this occuring. There is however one application that "throws a wobbly" when encountering variable frames, namely Final Cut Pro (not FCPX - which is quite happy to take in most any digital footage).
iShowU (both v1 and HD / HD Pro) produce video with variable frame durations. This is sometimes incompatible with Final Cut Pro. There are a ways to work around this issue, described below:
- Record normally, and then recompress the footage using either Stomp, Quicktime 7 (if you've purchased it) or any other tool that'll recompress video. Recompression always produces a video that has fixed frame durations.
iShowU HD & HD Pro
- Disable "Variable Frame Durations". You may need to reduce the load on the machine such that you get a reasonable real-time recording rate. Reduction of load takes many forms: Switching codecs to Apple Intermedia or JPEG (10.6/10.7 respectively), lowering the capture resolution, or using a faster machine.
- Record using your codec of choice, but re-encode the footage later (which can be done in iShowU HD Pro by right clicking the movie and choosing "Fix Frame Durations").
On Lion - number (2) occurs automatically if you disable variable frame durations. That is to say that when you record using Lion you are always recording using variable frame durations. After recording is complete, iShowU HD Pro will automatically run the "fix frames" process on the video.
Which solution you take is dependent upon your situation. If you have sufficient CPU resources you may be able to achieve reasonable rates using Option 1. In most cases however; you're better to choose Option 2 and re-encode later. In general Option 2, while it introduces another step in the workflow produces smoother captures.
In cases where you are using a slower machine (Core2Duo) or are recording CPU, Disk or OpenGL intensive applications, you will almost certainly have to choose Option 2.
Variable frame durations can sometimes cause undesirable effects. To date, we've experienced these "undesirables" almost 100% with Final Cut, and have seen video / audio sync issues, inability to import at all, or the famous 'General Error' message. In all cases, these have been resolved by re-encoding the video.