Fix generate_worker_subprocess in aerender_worker.py

This commit is contained in:
Brett Williams
2024-08-03 20:45:43 -05:00
parent 7986960b21
commit e6e2ff8e07
2 changed files with 17 additions and 55 deletions

View File

@@ -9,28 +9,16 @@ import time
from src.engines.core.base_worker import BaseRenderWorker, timecode_to_frames from src.engines.core.base_worker import BaseRenderWorker, timecode_to_frames
from src.engines.aerender.aerender_engine import AERender from src.engines.aerender.aerender_engine import AERender
logger = logging.getLogger()
def aerender_path():
paths = glob.glob('/Applications/*After Effects*/aerender')
if len(paths) > 1:
logging.warning('Multiple After Effects installations detected')
elif not paths:
logging.error('After Effects installation not found')
else:
return paths[0]
class AERenderWorker(BaseRenderWorker): class AERenderWorker(BaseRenderWorker):
engine = AERender engine = AERender
def __init__(self, input_path, output_path, args=None, parent=None, name=None): def __init__(self, input_path, output_path, engine_path, args=None, parent=None, name=None):
super(AERenderWorker, self).__init__(input_path=input_path, output_path=output_path, args=args, super(AERenderWorker, self).__init__(input_path=input_path, output_path=output_path, engine_path=engine_path,
parent=parent, name=name) args=args, parent=parent, name=name)
self.comp = args.get('comp', None)
self.render_settings = args.get('render_settings', None)
self.omsettings = args.get('omsettings', None)
self.progress = 0 self.progress = 0
self.progress_history = [] self.progress_history = []
@@ -38,42 +26,13 @@ class AERenderWorker(BaseRenderWorker):
def generate_worker_subprocess(self): def generate_worker_subprocess(self):
if os.path.exists('nexrender-cli-macos'): comp = self.args.get('comp', 'Comp 1')
logging.info('nexrender found') render_settings = self.args.get('render_settings', None)
# { omsettings = self.args.get('omsettings', None)
# "template": {
# "src": String, command = [self.renderer_path, '-project', self.input_path, '-comp', comp, '-RStemplate',
# "composition": String, render_settings, '-OMtemplate', omsettings, '-output', self.output_path]
# return command
# "frameStart": Number,
# "frameEnd": Number,
# "frameIncrement": Number,
#
# "continueOnMissing": Boolean,
# "settingsTemplate": String,
# "outputModule": String,
# "outputExt": String,
# },
# "assets": [],
# "actions": {
# "prerender": [],
# "postrender": [],
# },
# "onChange": Function,
# "onRenderProgress": Function
# }
job = {'template':
{
'src': 'file://' + self.input_path, 'composition': self.comp.replace('"', ''),
'settingsTemplate': self.render_settings.replace('"', ''),
'outputModule': self.omsettings.replace('"', ''), 'outputExt': 'mov'}
}
x = ['./nexrender-cli-macos', "'{}'".format(json.dumps(job))]
else:
logging.info('nexrender not found')
x = [aerender_path(), '-project', self.input_path, '-comp', self.comp, '-RStemplate', self.render_settings,
'-OMtemplate', self.omsettings, '-output', self.output_path]
return x
def _parse_stdout(self, line): def _parse_stdout(self, line):
@@ -127,8 +86,10 @@ class AERenderWorker(BaseRenderWorker):
if __name__ == '__main__': if __name__ == '__main__':
logging.basicConfig(format='%(asctime)s - %(message)s', datefmt='%d-%b-%y %H:%M:%S', level=logging.DEBUG) logging.basicConfig(format='%(asctime)s - %(message)s', datefmt='%d-%b-%y %H:%M:%S', level=logging.DEBUG)
r = AERenderWorker('/Users/brett/Desktop/Youtube_Vids/Film_Formats/Frame_Animations.aep', '"Film Pan"', r = AERenderWorker(input_path='/Users/brett/Desktop/tc_title.aep',
'"Draft Settings"', '"ProRes"', '/Users/brett/Desktop/test_render') output_path='/Users/brett/Desktop/testing_output/tc_title.mp4',
engine_path=AERenderWorker.engine.default_renderer_path())
r.start() r.start()
while r.is_running(): while r.is_running():
time.sleep(0.1) time.sleep(0.1)

View File

@@ -12,7 +12,8 @@ class BlenderRenderWorker(BaseRenderWorker):
engine = Blender engine = Blender
def __init__(self, input_path, output_path, engine_path, args=None, parent=None, name=None): def __init__(self, input_path, output_path, engine_path, args=None, parent=None, name=None):
super(BlenderRenderWorker, self).__init__(input_path=input_path, output_path=output_path, engine_path=engine_path, args=args, parent=parent, name=name) super(BlenderRenderWorker, self).__init__(input_path=input_path, output_path=output_path,
engine_path=engine_path, args=args, parent=parent, name=name)
# Stats # Stats
self.__frame_percent_complete = 0.0 self.__frame_percent_complete = 0.0