< Blog Home
Speeding up Compressor
Is Compressor taking too long to encode? Here are some tips to speed it up.
Don't export directly to Compressor from Final Cut Pro
Although sending your timeline directly to Compressor may seem faster because it cuts out the step of exporting as a QuickTime movie, it is much slower overall because Compressor needs to request each frame one-by-one from Final Cut Pro instead of just reading the data out of the movie clip. It gets even slower if you're using Frame Controls or doing multi-pass encoding.
Just go to File > Export > QuickTime Movie
(not QuickTime Conversion) and make sure Setting is set to Current Settings
and Recompress All Frames
is switched off. This ensures that the movie will not be recompressed unnecessarily.
Here's a tip - if most of your timeline is already rendered, deselect Make Movie Self-Contained
. This creates a small reference movie that links to the render files on disk instead of writing the data into the file. This will be much quicker to export. If your timeline is not rendered, however, this setting is unlikely to offer any speed advantages over a self-contained movie.
Once the file is exported, drag it into Compressor and set up your batch as normal.
Only use Frame Controls where necessary
Frame Controls allow you to improve the quality of resizing, retiming and deinterlacing operations, however they should only be switched on when you are actually performing one of these operations.
In addition, you should use Better
quality instead of Best
, as Best
is usually reserved for extreme circumstances and in most situations gives you a massive performance hit with no benefit.
Perform heaving-lifting in a separate pass to the encoding
Using Frame Controls with a multi-pass or long-GOP encoder can really slow things down because the Frame Controls processing will need to be reapplied to every frame each time it is read. Even if you're not using Frame Controls, compressing from a processor-intensive codec such as HDV or H.264 can seriously slow things down.
It makes sense, therefore, to perform all these processor-intensive operations on an intermediate movie clip (ProRes would be a suitable codec for this) and then drag in the intermediate clip and encode it to the desired format.
But there is an easier way. Job chaining is a little-used yet very powerful feature of Compressor that allows you to plug the output of one job into the input of another for additional processing.
Here's how to do it:
1. Drag your movie clip into Compressor.
2. Drag either the ProRes 422 for Interlaced Material or ProRes 422 for Progressive Material (depending on your source media) setting onto the job in the batch window.
3. Go to Job > New Job with Target Output
. This will add a new job to the batch with a chain symbol to show it is linked to the job above it.
4. Drag your desired output setting onto the chained job and set up the destination as normal.
5. Submit the batch
Use a cluster
A cluster is a group of computers where each machine processes a portion of the movie simultaneously, potentially providing a massive speed boost. This service is provided by Qmaster and can be set up in the Qmaster section of System Preferences or the Apple Qadministrator utility.
You will need Qmaster set up on each computer in the cluster, and all computers should have the required codecs installed and have full access to the source media and cluster storage area.
If you have a multi-core computer, Qmaster can emulate the effects of a cluster by launching multiple copies of Compressor side-by-side to process the movie in a "virtual cluster". This can make a dramatic difference to encoding times. I wrote a tutorial
on this a while back.
Compressor is not the fastest encoder in the world but with these tricks you can make it a lot more bearable. One important trend to note is that the simplest method isn't always the fastest - with a little extra setup beforehand you can save a significant amount of time overall.