No estoy contento cuando renderizo a menos que realmente pueda oler plástico quemado, nada es más frustrante que AE diciéndote que tu renderizado no se completará hasta la muerte por calor del universo, mientras que al mismo tiempo tu CPU apenas es levantando un sudor Sin embargo, hay algo que puede hacer al respecto.
After Effects viene con un procesador de línea de comandos llamado aerender.exe simple ol ' aerender en mac). Está en la carpeta del programa AE. Usarlo es un poco desafiante para las personas que no están acostumbradas al poder de la línea de comando - = impresionante - = , pero definitivamente vale la pena hacerlo si estás haciendo un poco de trabajo pesado en After Effects, y quieres poder aprovechar todo el potencia de su máquina
Lo bueno de esto es que puede ejecutar tantas instancias como desee. Lo que normalmente hago es seguir agregando instancias hasta que empiezo a tener poca memoria. Tengo una máquina de 40 núcleos físicos y se necesita mucho para maximizar la CPU, pero aquí hay una captura de pantalla donde finalmente lo logré. Cada una de esas ventanas es una nueva instancia del motor de renderizado AE:
En ese ejemplo, la velocidad por cuadro de cada renderizador apenas disminuyó en comparación con una sola instancia, por lo que logré un aumento de velocidad de aproximadamente 4000%. YMMV, dependiendo de cuántos núcleos y cuánta ram tiene su máquina. Me esforcé porque tenía un proyecto que involucraba composiciones muy largas y razonablemente complejas. El proyecto simplemente no habría terminado sin esta técnica, o habría tenido que cultivarlo en una granja de render comercial.
Por supuesto, la aceleración tiene un precio, que es un ligero aumento en la complejidad de su flujo de trabajo. Debe configurar sus composiciones para renderizar como secuencias de imágenes, y utilizar la configuración de varias máquinas para que cada renderizador busque el siguiente fotograma sin renderizar. Al final, si necesita un archivo de película, tendrá que hacer un pase de compresión, pero en mi caso generalmente masterizo a una secuencia png o tiff, y luego ejecuto copias codificadas h.264 para clientes desde el maestro.
Y necesita saber un poco sobre la línea de comando. Deja de parecer tan triste, eso es BUENO, eso es BUENO.
Ventanas
La línea de comando de PowerShell que utilicé en ese escenario fue:
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;
}
Esto se ejecuta en una ventana de PowerShell (escriba WindowsRy luego escriba Powershell.exe ). Este es un lenguaje de script de shell integrado en versiones modernas de Windows que se puede utilizar para todo tipo de cosas.
Mac
Usando la versión Bash> 3 (shell predeterminado en las versiones actuales de OSX), o incluso con shells más geniales como zsh, puede usar este script:
for i in {1..40}; do
/Applications/Adobe\ After\ Effects\ CC\ 2017/aerender -project ~/Path/to/myproject.aep &
sleep 5
done
El guión funciona así:
- comienza un ciclo que dura 40 repeticiones, puedes cambiar los 40 a lo que creas que es una cantidad razonable.
- Luego comienza aerender como un nuevo proceso, ya sea con el
start-process
comando en PS o con &
in bash, obviamente cambie la ruta a aerender.exe / aerender y su proyecto a lo que sea que esté en su máquina. Una forma rápida y precisa de rellenar rutas con la línea de comando es arrastrar archivos y carpetas a ella. Además, usar las tabrutas para autocompletar ahorra muchos tipeos y errores tipográficos.
- Finalmente, duerme durante 5 segundos: descubrí que abrir demasiadas instancias de rendición demasiado rápido era una forma confiable de pantalla azul / kernel panic mi computadora.
Si tiene varias composiciones, puede renderizarlas como películas pero comenzar un nuevo renderizador para cada una. Si invocas aerender.exe como este
aerender.exe -project "c:\path\to\proj.aep" -rqindex 3
renderizará la tercera compilación en la cola de renderizado. Poniéndolo en un script que puedes hacer:
Ventanas
$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
Eso iniciará una nueva instancia de entrega para cada compilación; una vez más, cambie el 12 a la cantidad de compilaciones que haya en la cola. Tenga en cuenta que esta técnica puede tener problemas si tiene muchas compilaciones en su cola; si usa toda su memoria física, las cosas se detendrán rápidamente. Para mantener baja la cantidad de instancias, debe verificar cuántos procesos de procesamiento se están ejecutando y solo iniciar uno nuevo cuando finalice uno en ejecución. Una solución más simple es hacer tantas copias de su proyecto como desee que haya instancias, con la cola de representación dividida entre ellas, y luego representarlas todas al mismo tiempo. Entonces, el hilo de renderizado uno estaría renderizando comps 1,2,3, el hilo de renderizado dos estaría haciendo 3,4,5, y así sucesivamente.
Más detalles aquí (mi blog).