The Best Compressor Feature You Don’t Use

The greatest thing I’ve ever stumbled across: job-chaining in Compressor. It’s perhaps the least known about yet useful thing in any Pro App. I’ve posted twice about job-chaining on my blog, but after some confirmations at NAB, I wanted to make one last revision on my thoughts.So if you’re one of the dozen people who might have stumbled across those posts, I apologize for the re-hashing. If you just want the steps without my backstory, skip to the bold text.

I first found job-chaining about a year ago when I was trying to figure out a way to make my encoding time shorter. In my day job, we have a media player with dynamic bandwidth switching playback. That is, it sees what’s up with your viewer’s connection, and picks a version of the video based on what they their connection can handle. This works really well for our demographic especially, where we have a lot of people out in the middle of nowhere on dial-up, a ton of people on phones, and then people who pay for a broadband connection. I usually have to encode three different videos of varying sizes and bitrates (and originally we even reduced the frame rate.)

I have a ProRes master that I keep as my archival file, and I use it to encode every asset I ever need. And I found that the conversion from ProRes to H.264 took an unbearably long time. Between the Frame Controls AND the bitrate crunching, Compressor was getting tripped up. It’s too much to effectively process at once, so it just slows way down.

Enter job-chaining! What does it do? Basically, you can set the output of a Compressor job as the source of a new job, all within one batch. So for example, in my situation, I did all the resizing in one job, and all the actual compressing in another job. The two tasks are split up so Compressor can handle them better.

Let me explain with pictures how to set this up.

How to Job Chain in Compressor:

First, have a new batch open. Drop in your master file that you’re making all your great outputs from. In my case, I dropped in my master ProRes.

Now, stick all the settings you want on that file. For me, I dropped another ProRes 422 preset on it, and changed the frame size and frame rate to what I need my outputs to be. This way, the codec stays the same, so there should be no complexities in switching things around – it should (mostly) just change the size.

Ok, now click on this job, and go up to Job, and choose New Job with Target Output.

You’ll see another job pop up in your batch with a little chain icon.

Compressor is going to do what you asked of it in your first job – for me, resizing a ProRes file. Then it’ll take that output, stick it into that second job, and do whatever you ask of it on there.

So now you can drop on whatever settings you need on job #2. In my case, I need three different outputs for my dynamic switching, and I have presets ready for that. No resizing, no frame rate adjustments – simply changing to H.264 and crunching the bitrate.

When you click submit, you’ll see Compressor run through the whole batch as expected. For me, the time it took to complete an encode dropped from close to an hour to maybe 10 minutes.

It’s worth noting that the intermediate file created by job #1 isn’t a temp file – it’s actually created, so you’ll have that file whether you need it or not.

So there ya go, job-chaining. It’ll change your life, one way or another.

It’s a great tool to have at your disposal. It’s also not an instant band-aid to your compression woes – it’s a potentially valuable step in a compression strategy. And yes, it’s possible to do the steps separately, but you risk messing things up if you do it yourself, and it’s not completely autonomous. And we love autonomy in post, right? Well, at least for the boring stuff.

When I originally posted on this subject, I wasn’t quite sure what I had stumbled upon, or if I was doing things right. And then last time I updated this post, I still wasn’t sure if it was acceptable. Everything looked fine and worked great for me, but I was almost waiting for someone to reply and call me a moron for losing valuable bits somewhere along the way. But then this was brought up at NAB during Post Production World, and my entire thought process was validated for once. Is there quality loss? Well, I’m sure there is somehow, you always lose something with every transcode. But it’s not big loss by any means. Well worth it for the time saved in many instances.

If you have another use case for job-chaining, please share. I’m curious about how others utilize this lesser known feature.