Compressor 4.1: A Tip to Increase Speed
A feature that has been in Compressor for many versions is the ability to create multiple instances of the application. What this does is, essentially, clone Compressor to run more than one iteration of itself at the same time.
In the past, this has been an effective way to speed compression of large media files by dividing them into smaller pieces and assign each piece to one of those iterations. This was especially true in the days before multi-threading.
NOTE: A single-threaded application, such as most of Final Cut Pro 7, could only use one processor at a time. A multi-threaded application can use multiple processors at the same time.
Instances were a way to get around the limitations imposed by being a single-threaded application, or compressing files using a single-threaded codec. And, for many years, they made video compression much faster. But, that is no longer necessarily the case.
NOTE: Compressor 4.1 was rewritten to support both single- and multi-threaded codecs. For example, if Compressor is transcoding media into ProRes, Compressor will spread the load across multiple processors, even if running in single-instance mode.
There are three things that determine whether adding multiple instances makes sense:
- The processor and cores available on your computer.
- Some codecs are multi-threaded, while others are only single-threaded.
- Whether you are running Compressor by itself, or in conjunction with Final Cut Pro X.
PICK YOUR PROCESSOR
Running multiple instances of Compressor requires either an i5 or i7 Sandy Bridge or Ivy Bridge processor; or the new Mac Pro with its Xeon processor, with a minimum of 4 cores. Apple recommends a minimum of eight cores before enabling multiple instances, with 2 GB of RAM for every additional instance you plan to run.
PICK YOUR CODEC
If you have a codec that is multi-threaded, such as ProRes, you won’t see much benefit in running multiple instances of Compressor, because the multi-threading does a better job of speeding compression than separating a file, compressing each segment, then stitching everything back together again.
So, while many modern codecs are multi-threaded and won’t benefit from running multiple instances, H.264 is not in this group.
As of this writing, H.264 is still single-threaded. However, I’ve noticed that when you compress shorter files, multiple instances is about 20% slower than single instances because of all the splitting apart and stitching together that multiple instances require. As the duration of your projects increases the benefits of multiple instances improve.
GREAT! I hear you say, time to turn on multiple instances! Well, um, not quite. There’s one more player to hear from…
ENTER FINAL CUT PRO X
With the release of Final Cut Pro X, Apple rewrote the application to support multi-threading. They also re-wrote Compressor to support multi-threading. What this means is that when you do something in Final Cut Pro, FCP fires up as many processors as it needs to accomplish the task.
That’s the benefit of multi-threading – applications can access all the resources they need to get the job done. Which is great… unless all those resource are also allocated to multiple instances of Compressor.
Suddenly, those poor processors are caught in the middle of a tug of war – FCP needs them for its work, while multiple versions of Compressor are using them for its work. And, instead of your system running at blinding speed, everything slows down while the processors try to figure out who’s in charge.
IN THIS INSTANCE
To turn on instances, open Compressor and go to Compressor > Preferences > Advanced.
Check the checkbox to turn on multiple instances.
In Compressor 4.1, Apple limited the number of additional instances that can be selected based upon the number of cores and available memory in your computer. This is to avoid creating a situation where there are so many instances running that everything slows down.
NOTE: Here’s a very helpful KnowledgeBase article from Apple that explains instances and cores in more detail.
When you select instances, you are NOT picking the number of cores to run Compressor on, you are picking the number of instances (copies) you are creating of Compressor. These are not the same thing. This number will vary depending upon your computer, processor and RAM.
So, here’s what I recommend:
- If you are compressing media using single-pass compression, turn off multiple instances. Hardware acceleration is far faster than multiple instances.
- If you are running Compressor by itself, and you are compressing media using the H.264 codec, and the duration of your media is fairly long, and you are using multi-pass compression, you will benefit from using multiple instances, provided your computer meets the minimum hardware requirements.
- Don’t enable the maximum number of instances. Add 1 or 2, then test compression performance with multiple instances on and off. There will be a sweet spot on your system where you get maximum performance; once you find it, don’t add any more instances.
- If you are running both Final Cut Pro X and Compressor, turn multiple instances off as the two applications will interfere with each other.
- If you are principally compressing ProRes, turn multiple instances off, as compression will slow down.
In the past, I’ve recommended enabling multiple instances. Today, though, I’m less inclined to recommend them. For most situations, disable multiple instances and run Compressor in single instance mode. You’ll find it faster and more stable when other applications are running. Which makes you more productive.