0

I’ve developed a system that cranks out thousands of short videos. Currently, I have AE and AME on the same computer. I use ExtendScript to:

  • create a comp from various components

  • pop that comp into the AE render queue : app.project.renderQueue.items.add(app.project.item(indexMain_Comp))

  • using BridgeTalk, AME is started if it isn’t already running

     if (!BridgeTalk.isRunning(mediaEncoderName)) {
     BridgeTalk.launch(mediaEncoderName);
     }
    
  • call on AME to render the comp: app.project.renderQueue.queueInAME(true);

This all works fine currently.

My Q: Can AME run on a separate server for my application? In the code above (where I'm using BridgeTalk to start AME), how would BridgeTalk know if AME is on a separate server?

(Note: watch folders will not work for me) Thanks!

rolando
  • 3
  • 1
  • 2

1 Answers1

0

I'd be investigating using the command line renderer aerender rather than AME. You could run it remotely using system.callSystem() in your script and the powershell invoke-command command.

So something like:

system.callSystem("pwsh -c 'Invoke-Command -ComputerName COMPUTER -ScriptBlock { `'aerender.exe -project \\network\path\to\your\project`' } -credential USERNAME'")

You might have to work out the escaping there because you're using three levels of quotes, I'm not sure if you want the windows shell escape character ` or the extendscript escape character \ or possibly both. good luck.

stib
  • 3,346
  • 2
  • 30
  • 38
  • Thanks for your answer stib; I had abandoned thoughts of using AErender early on in development because of the lack of scripting control directly. And so I completely dropped it. Now that I understand better how all of this works, I think that would be a very valid option! It;s also reasonably elegant and doesn't require any network hooks and tinkering. – rolando Mar 17 '21 at 13:26
  • Yep, sounds like it's exactly the use case for aerender. You can get as much control over the render queue as you do in the application, including setting output paths, render settings and output modules and so on. If you're rendering to image sequences you can also distribute the render on multiple machines. – stib Mar 18 '21 at 04:22
  • That's the elegant side! My system is made up of 3 modules, one of which is the JavaScript/ExtendScript-CEP/AE module. The 3 modules are controlled by a database table which, among other attributes, has the output path and file name I can pass on as you suggest. – rolando Mar 19 '21 at 01:33