2010-02-08

DSLR Sync Drift in Final Cut Pro

This post is a follow-up to my earlier post about the 99.9% speed problem that some people encounter with Final Cut Pro. I have learned a few things since then so now I can explain better what is going on. I have also simplified the procedure for avoiding the problem. Thanks go to Philip Bloom and Robin Charters for illuminating discussions about this unfortunately complex topic.

Symptom: My sound drifts out of sync!

You carefully synchronized your audio track with your video. (I hope you used PluralEyes :). It lines up nicely at one point in the timeline, but the farther away you get from that point the more out of sync the audio and video get.

There are a couple of different reasons why this can happen. Perhaps the clock in your audio recorder is not very accurate. (The Zoom H4 and M-Audio Microtrack are not very good in this regard. The Zoom H4n however is excellent and is highly recommended.) Another possibility is that some frames were dropped while capturing.

But if you are working in Final Cut Pro, a far more likely explanation is that it has not been set up exactly right. More specifically if you sometimes work with NTSC frame rates (like 23.98 or 29.97) and sometimes with non-NTSC frame rates (like 25 for PAL or 30 for the Canon 5D), then you have to take some care.

This problem is not specific to video from DSLRs but their rise in popularity and the accompanying increase in the use of dual-system audio techniques has resulted in the problem showing up more often.

A not-recommended solution

Some people solve the problem by changing the speed of the audio clips to 99.9% or 100.1% depending on which version of the problem is happening. I don't recommend this approach because it causes the audio to get resampled twice for no reason, which extracts a performance and quality penalty, and because it can cause issues in downstream processing. Better to set up FCP properly in the first place.

The recommended solution

In this section I'll just tell you what to do so you can get back to editing. But if you want to know why, you can read more about that farther down.

The key points to avoid the problem are these:
1. Don't mix NTSC and non-NTSC material in one sequence. (Instead, use Compressor to conform everything to a common frame rate.)
2. Use an Easy Setup that matches your clips, especially with respect to the NTSC properties of the frame rate.

How to avoid the problem in the first place

1. In FCP, close all open projects. Update: It wouldn't hurt to also turn off the option to automatically re-open the last project in FCP. (Uncheck the box Final Cut Pro > User Preferences... > Open last project on application launch.)
2. From the FCP menu choose an Easy Setup that matches the frame rate of your video clips. If you can't find an exact match, pick one with the same NTSC properties as your video. For example, if you are working with 30.00 fps material from a Canon 5D, then choose an Easy Setup with a 25 fps frame rate.
3. Quit and re-start FCP.
4. Create a new project and import your clips.
5. Add your video clips to the timeline first so that Final Cut will auto-conform the sequence if that's needed.

How to fix a broken sequence

The following procedure is not foolproof but it has worked for people, and it's pretty quick to try. I just wouldn't rely on it.

Maybe you've already done a lot of work on your project and can't bear the thought of starting over again from scratch. The following procedure will let you solve the problem for an existing sequence, but it may have to be re-done if you add more audio clips later. Because of this fragility it is not our preferred procedure.

1. Select the problem sequence in the FCP browser, right-click it and choose Export > XML.
2. Open that XML file in a text editor.
3. Look for the tags <ntsc>. If they all say
<ntsc>TRUE</ntsc>
or if they all say
<ntsc>FALSE</ntsc>
then you don't have a problem. But if there is a mix of TRUE and FALSE values, you need to change them so they are all the same. What value should you pick? The one that matches the NTSC-ness of your video clips.

Once you have fixed the XML, you must go through the procedure to establish a new Easy Setup as above or the NTSC changes won't stick.

Why does this work?

When you add a video clip to a sequence, FCP knows what frame rate to use: it just looks at the video clip properties. Audio doesn't have a frame rate like video, but FCP needs to assign it one because many editing operations are tied to the video frame rate. So when you add an audio clip to a sequence, FCP has to pick a frame rate for it.

That choice is apparently made based on the sequence presets (which are set by the Easy Setup), and can depend on what settings are in the cache, not just those that are currently selected. You have to go through all the re-start, etc. steps to ensure that the cache is cleared. FCP seems to be able to adapt to whatever frames-per-second are chosen, but it needs some help to get the NTSC property right.

But you don't need to understand those subtleties. You'll be safe if you always follow these steps: (1) choose an appropriate Easy Setup, (2) restart FCP, (3) create a new project.

2010-02-03

PluralEyes on the Digital Convergence Podcast

I was interviewed today by the very nice Carl Olson for the latest episode of his Digital Convergence podcast. We talked mainly about PluralEyes but managed to fit in some thoughts on left-brain/right-brain duality and making 3D movies too. Digital Convergence is a new podcast about all matters to do with making video with the new breeds of hybrid DSLR cameras. Carl has put his finger on a hot topic and it's good to see a well-produced podcast on the subject.