Reduce render times with Aerender
Overview
Aerender is a program that comes with Adobe After Effects. It utilizes the After Effects render engine and is a command line utility, accessible through the OSX Terminal or Windows command prompt.
Aerender allows you to batch render After Effects projects and comps simultaneously, while taking full advantage of your available computer power.
Useful when multiple projects or compositions need to be rendered at the same time and fast. Alternatives like Media Encoder are subject to Adobe's memory allocation management that limits memory usage and most importantly cannot render items simultaneously.
Note: Render Garden and BG Renderer are the next step in AE rendering performance, although come at a price. As of April 2020, Render Garden offers a free license until the Coronavirus pandemic eases.
Jump Right In
Here is a quickstart guide to Aerender:
Note: Aerender default locations, based on your version number:
- MAC:
/Applications/Adobe\ After\ Effects\ CC\ 2019/aerender
- WIN:
"C:\Program Files\Adobe\Adobe After Effects CC 2019\Support Files\aerender.exe"
- Have an After Effects project ready with at least one comp setup in your render queue. Make sure it's saved.
- Open the Terminal App on Mac OS, or Command Prompt on Windows.
- Locate the
aerender
program by navigating to the folder where your After Effects is installed in Finder/Explorer.* - Drag and drop the aerender program in your Terminal/Command Prompt window.
- Insert a space and type
-project
- Insert another space, then drag and drop you ae project file to your Terminal/Command Prompt window.
- Final command should look like this:
path/to/aerender -project path/to/project.aep
- Hit Enter. Aerender should launch an instance of After Effects without the interface - known as headless mode, and start rendering each item in your render queue in the background! You can launch After Effects and work on other projects...
Code Snippets
Here are some Aerender commands ready to use. For a step by step explanation jump to the next section...
Note: Drag and drop the Aerender program into the Terminal/Command Prompt window to quickly retrieve it's full path. This works with any file or folder.
Note: Make sure to specify your own version of After Effects. Those examples use CC 2019.
Note: To terminate the current running process at any time, you can cancel it using Ctrl + c
.
# Render sequentially all checked items in project render queue, using current settings
path/to/aerender -project path/to/project.aep
# Render specified composition
# If the specified comp is not in the render queue it will be added to the render queue and rendered with the default settings and output
path/to/aerender -project path/to/project.aep -comp "My comp name"
# Render specified composition, into specified folder
path/to/aerender -project path/to/project.aep -comp "My comp name" -output path/to/output.ext
# Full example of a custom render command
# Specifies project, composition, render settings, output module
path/to/aerender -project path/to/project.aep -comp "My comp name" -RStemplate "Best Settings" -OMtemplate "Lossless" -output path/to/output.ext
Troubleshoots
- If a path gives an error try wrapping it with double quotes
"path/to/file.ext"
. - If a command throws an error, check your syntax and spelling.
- Check the Command Reference using the
-help
flag for instructions on how to useaerender
.
Command Reference
To see a list of all arguments (e.g: -project
, -comp
...) that can be specified use:
path/to/aerender -help
Step by Step Example
Let's say you have 3 compositions in your project that need rendering.
Select them and send them to the render queue. Then set them up as if you were rendering from After Effects, specifying the path, output settings, etc...
Make sure to Save the project.
Next open Terminal on Mac OS or Command Prompt on Windows so we can write our render command.
Sequential Render
First we need to locate the Aerender program and specify its full path. This is located in your After Effects version install folder. Following is an example for version CC 2019:
- MAC:
/Applications/Adobe\ After\ Effects\ CC\ 2019/aerender
- WIN:
"C:\Program Files\Adobe\Adobe After Effects CC 2019\Support Files\aerender.exe"
Note: To get the path of any file or folder, just locate it in Finder/Explorer and drag & drop it to the Terminal/Command Prompt.
Note: You may want to create a shortcut for your After Effects install location by dragging the folder to your Finder/Explorer sidebar.
Drag & drop the Aerender program into the Terminal/Command Prompt window to get it's full path - this is the first part of our command.
Now that we have specified the program to run, we can add additional arguments that will tell the program how to run.
Note: From here onwards the examples will only show the command aerender
without the full path for legibility, but remember to always include the full path or the command will not run since it will not be found.
The first argument we'll add is -project
, used to specify the project file. After -project
leave a space, then drag and drop your AE project file in the Terminal/Command Prompt window and it should automatically display it's full path.
aerender -project path/to/project.aep
Done! If you hit enter now, Aerender will launch a headless instance of After Effects (i.e. without a GUI) and start rendering the items specified in your render queue one by one.
But why do this when you can already do it in After Effects, or even better in Media Encoder so you can continue working in AE? The power comes when you start launching multiple instances that render simultaneously.
Simultaneous Render: Option 1
One way of tackling this is by opening two new Terminal/Command Prompt windows by hitting Cmd + n
/ Ctrl + n
. Following our example, where we have 3 render items, we can specify one item in each:
# Window 1:
aerender -project path/to/project.aep -comp "Comp 1"
# Window 2:
aerender -project path/to/project.aep -comp "Comp 2"
# Window 3:
aerender -project path/to/project.aep -comp "Comp 3"
This launches three instances of Aerender that will simultaneously render all three specified comps.
Simultaneous Render: Option 2 (MAC only)
Note: Windows users can have a look at this: https://blob.pureandapplied.com.au/finally-managed-to-peg-my-cpu/
We can automate this process so we don't have to open a separate window to type each command and comp name manually by using a For Loop. It will iterate over a specified range and run the command one after the other.
This simple command takes a range of numbers e.g: {1..3}
and runs the command specified (after do
) 3
times, starting at 1
and going up to 3
. If we had {2..4}
instead it would start at 2
but still run 3
times, until 4
.
The i
can be called anything and is known as a variable. In this case it holds the value of the current step in the loop. So the first time the loop runs: i
= 1
. The second time: i
= 2
, and the third time: i
= 3
.
In our example we have 3
comps to render simultaneously so we need to launch 3
instances of the Aerender program but we need to specify which ones. We can do that by referencing their index (position) in the project render queue and aerender
offers an argument for just that: -rqindex
(render queue index). So if we were to specify -rqindex 1
we are referring to Comp 1
in our AE project render queue - not because it's named Comp 1, but because it's at the top of the render queue (position 1).
With that in mind, i
essentially becomes a counter, and we can pass the value of i
to -rqindex
by using the reserved $
sign to reference the variable.
for i in {1..3}; do aerender -project path/to/project.aep -rqindex $i; done
# Runs:
# aerender -project path/to/project.aep -rqindex 1
# aerender -project path/to/project.aep -rqindex 2
# aerender -project path/to/project.aep -rqindex 3
To prevent issues with running commands too fast one after the other we can introduce a slight delay.
The sleep
command introduces a delay in the command execution. It requires an argument that specifies how much time we want the interval to be. In our example we specified a 2
second interval that should be enough to pace the execution of each process.
for i in {1..3}; do aerender -project path/to/project.aep -rqindex $i & sleep 2; done
Note that there is a single ampersand &
, followed by the sleep
command. The ampersand tells the program to run the next command (in this case sleep
) asap without waiting for the first command aerender
to complete. The first command in fact gets sent to the background - becomes a background process.
Hit Enter and the command will launch 3 instances of Aerender with a 2 second delay between each one.
Additional Resources
Official Documentation with explanation of arguments, and examples:
Rendering managers for AE:
Render Garden: https://www.mekajiki.com/rendergarden