Ich bin nicht glücklich, wenn ich rendere, es sei denn, ich kann tatsächlich brennendes Plastik riechen. Nichts ist frustrierender als AE, das Ihnen sagt, dass Ihr Rendern erst nach dem Hitzetod des Universums abgeschlossen wird, während gleichzeitig Ihre CPU kaum ausgelastet ist ins Schwitzen kommen. Sie können jedoch etwas dagegen tun.
After Effects wird mit einem Befehlszeilen-Renderer namens aerender.exe ( einfacher alter Aerender auf dem Mac) geliefert . Es befindet sich im AE-Programmordner. Die Verwendung ist für Leute, die nicht an die - = awesome - = Leistung der Befehlszeile gewöhnt sind, eine Herausforderung , aber es lohnt sich auf jeden Fall, wenn Sie in After Effects viel heben und in der Lage sein möchten, alle Funktionen zu nutzen Leistung Ihrer Maschine.
Das Schöne daran ist, dass Sie so viele Instanzen ausführen können, wie Sie möchten. Normalerweise füge ich so lange Instanzen hinzu, bis mir der Arbeitsspeicher ausgeht. Ich habe eine Maschine mit 40 physischen Kernen und es braucht viel Zeit, um die CPU zu maximieren, aber hier ist ein Screenshot, in dem ich es endlich geschafft habe. Jedes dieser Fenster ist eine neue Instanz der AE-Render-Engine:
In diesem Beispiel hat sich die Geschwindigkeit pro Frame jedes Renderers im Vergleich zu einer einzelnen Instanz kaum verringert, sodass ich eine Geschwindigkeitssteigerung von ungefähr 4000% erzielt habe. YMMV, abhängig davon, wie viele Kerne und wie viel RAM Ihre Maschine hat. Ich habe mich bemüht, weil ich ein Projekt mit sehr langen und einigermaßen komplexen Kompositionen hatte. Das Projekt wäre ohne diese Technik einfach nicht zustande gekommen, oder ich hätte es auf eine kommerzielle Renderfarm bringen müssen.
Natürlich hat die Beschleunigung ihren Preis, was eine leichte Erhöhung der Komplexität Ihres Workflows bedeutet. Sie müssen Ihre Comps so einstellen, dass sie als Bildsequenzen gerendert werden, und die Einstellungen für mehrere Computer verwenden, damit jeder Renderer nach dem nächsten nicht gerenderten Frame sucht. Wenn Sie am Ende eine Filmdatei benötigen, müssen Sie einen Komprimierungsdurchlauf durchführen, aber in meinem Fall beherrsche ich normalerweise eine PNG- oder TIFF-Sequenz und führe dann h.264-codierte Kopien für Clients vom Master aus.
Und Sie müssen ein wenig über die Befehlszeile wissen. Hör auf, so bedrückt auszusehen - das ist eine gute Sache, das ist eine gute Sache.
Windows
Die Powershell-Befehlszeile, die ich in diesem Szenario verwendet habe, war:
for ($i = 0 ; $i -lt 40; $i++ ){
Start-Process 'C:\Program Files\Adobe\Adobe After Effects <<version>>\Support Files\aerender.exe'-ArgumentList '-project', '"c:\path\to\project.aep"'
sleep 5;
}
Dies wird in einem Powershell-Fenster ausgeführt (geben Sie Powershell.exe ein WindowsRund geben Sie dann ein ). Dies ist eine Shell-Skriptsprache, die in moderne Windows-Versionen integriert ist und für alle Arten von Dingen verwendet werden kann.
Mac
Mit Bash Version> 3 (Standard-Shell in aktuellen OSX-Versionen) oder mit cooleren Shells wie zsh können Sie dieses Skript verwenden:
for i in {1..40}; do
/Applications/Adobe\ After\ Effects\ CC\ 2017/aerender -project ~/Path/to/myproject.aep &
sleep 5
done
Das Skript funktioniert folgendermaßen:
- Startet eine Schleife, die 40 Wiederholungen umfasst. Sie können die 40 in einen für Sie vernünftigen Betrag ändern.
- Dann wird aerender als neuer Prozess entweder mit dem
start-process
Befehl in PS oder mit &
in bash gestartet. Ändern Sie natürlich den Pfad zu aerender.exe / aerender und Ihr Projekt zu dem, was sich auf Ihrem Computer befindet. Eine schnelle und genaue Möglichkeit, Pfade mit der Befehlszeile auszufüllen, besteht darin, Dateien und Ordner hineinzuziehen. Auch das tabautomatische Ausfüllen der Pfade spart viel Tipp- und Tippfehler.
- Schließlich schläft es 5 Sekunden lang - ich fand, dass das zu schnelle Öffnen zu vieler Instanzen von aerender ein zuverlässiger Weg war, um Bluescreen- / Kernel-Panik auf meinem Computer auszulösen.
Wenn Sie mehrere Comps haben, können Sie diese als Filme rendern, aber für jeden einen neuen Renderer starten. Wenn Sie aerender.exe wie folgt aufrufen
aerender.exe -project "c:\path\to\proj.aep" -rqindex 3
Es wird die dritte Komposition in der Renderwarteschlange gerendert. Wenn Sie es in ein Skript einfügen, können Sie Folgendes tun:
Windows
$numcomps = 12
$projpath= "C:\path\to\project.aep"
for($i=1; $i -lt ($numcomps+1); $i++){
Start-Process 'C:\Program Files\Adobe\Adobe After Effects <<version>>\Support Files\aerender.exe' -ArgumentList '-project', '$projpath', '-rqindex', '$i'
sleep 5;
}
Mac
for i in {1..12}; do
/Applications/Adobe\ After\ Effects\ CC\ 2017/aerender -project ~/Path/to/myproject.aep -rqindex $i &
sleep 5
done
Dadurch wird für jede Komposition eine neue Aerender-Instanz gestartet. Ändern Sie die 12 erneut in die Anzahl der Kompositionen in der Warteschlange. Beachten Sie, dass diese Technik zu Problemen führen kann, wenn Sie viele Comps in Ihrer Warteschlange haben. Wenn Sie all Ihren physischen Speicher verwenden, werden die Dinge ziemlich schnell zum Erliegen kommen. Um die Anzahl der Instanzen gering zu halten, müssen Sie überprüfen, wie viele Aerender-Prozesse ausgeführt werden, und erst dann einen neuen starten, wenn ein laufender abgeschlossen ist. Eine einfachere Problemumgehung besteht darin, so viele Kopien Ihres Projekts zu erstellen, wie Sie möchten, dass Instanzen vorhanden sind, wobei die Renderwarteschlange zwischen ihnen aufgeteilt wird, und sie dann alle gleichzeitig zu rendern. Rendering-Thread 1 würde also Comps 1,2,3 rendern, Rendering-Thread 2 würde 3,4,5 ausführen und so weiter.
Mehr Details hier (mein Blog).