Skip to content

Render And System Call

Fabian Morón Zirfas edited this page Jun 13, 2025 · 2 revisions

On stackoverflow someone asked: "is there a way to programmatically run a shell command after a render has completed in Adobe After effects?"
source

var comp = app.project.items.addComp("test", 100, 100, 1, 1, 12); // create a comp
comp.layers.addSolid([0.5, 0.5, 0.5], "solid", 100, 100, 1, 1); // add a solid
var rq_item = app.project.renderQueue.items.add(comp); // add the comp to the render queue
rq_item.outputModule(1).file = File("~/Desktop/out.mov"); // set the output path
rq_item.render = true; // set it to enabled (is the default)
// now add a function to the onStatusChange property of the render queue item
rq_item.onStatusChanged = function () {
	// as long as we have the RENDERING status
	while (rq_item.status === RQItemStatus.RENDERING) {
		$.writeln("Rendering");
	}
	// if it changes to Done
	// wired thing is it gets called 2 times
	// needs more investigation
	if (rq_item.status === RQItemStatus.DONE) {
		$.writeln("Done rendering");
		// now the system call
		// the call happens in a background process
		// there is no terminal window that opens
		var res = system.callSystem('echo "Hello World"');
		$.writeln(res); // show the result
	}
};
// start the render
app.project.renderQueue.render();
// handle possible app errors
app.onError = function (err) {
	$.writeln("ERROR " + err);
};

Home

Clone this wiki locally