mirror of
https://github.com/blw1138/Zordon.git
synced 2026-02-05 21:56:10 +00:00
Ffmpeg versioning issues (#68)
* FFMPEG version cleanup * Make sure attempts don't go on forever * Use latest version when version not defined. Add latest to UI
This commit is contained in:
@@ -13,7 +13,7 @@ class BaseRenderEngine(object):
|
||||
|
||||
def __init__(self, custom_path=None):
|
||||
self.custom_renderer_path = custom_path
|
||||
if not self.renderer_path():
|
||||
if not self.renderer_path() or not os.path.exists(self.renderer_path()):
|
||||
raise FileNotFoundError(f"Cannot find path to renderer for {self.name()} instance")
|
||||
|
||||
def renderer_path(self):
|
||||
|
||||
@@ -72,6 +72,7 @@ class BaseRenderWorker(Base):
|
||||
self.parent = parent
|
||||
self.children = {}
|
||||
self.name = name or os.path.basename(input_path)
|
||||
self.maximum_attempts = 3
|
||||
|
||||
# Frame Ranges
|
||||
self.project_length = -1
|
||||
@@ -193,8 +194,15 @@ class BaseRenderWorker(Base):
|
||||
while True:
|
||||
# Log attempt #
|
||||
if attempt_number:
|
||||
f.write(f'\n{"=" * 80} Attempt #{attempt_number} {"=" * 30}\n\n')
|
||||
logger.warning(f"Restarting render - Attempt #{attempt_number}")
|
||||
if attempt_number >= self.maximum_attempts:
|
||||
err_msg = f"Maximum attempts exceeded ({attempt_number})"
|
||||
logger.error(err_msg)
|
||||
self.status = RenderStatus.ERROR
|
||||
self.errors.append(err_msg)
|
||||
return
|
||||
else:
|
||||
f.write(f'\n{"=" * 80} Attempt #{attempt_number} {"=" * 30}\n\n')
|
||||
logger.warning(f"Restarting render - Attempt #{attempt_number}")
|
||||
attempt_number += 1
|
||||
|
||||
# Start process and get updates
|
||||
|
||||
@@ -211,8 +211,8 @@ class EngineManager:
|
||||
raise FileNotFoundError(f"Cannot find any installed {renderer} engines")
|
||||
|
||||
# Find the path to the requested engine version or use default
|
||||
engine_path = None if engine_version else all_versions[0]['path']
|
||||
if engine_version:
|
||||
engine_path = None
|
||||
if engine_version and engine_version != 'latest':
|
||||
for ver in all_versions:
|
||||
if ver['version'] == engine_version:
|
||||
engine_path = ver['path']
|
||||
@@ -225,6 +225,9 @@ class EngineManager:
|
||||
raise FileNotFoundError(f"Cannot download requested version: {renderer} {engine_version}")
|
||||
engine_path = download_result['path']
|
||||
logger.info("Engine downloaded. Creating worker.")
|
||||
else:
|
||||
logger.debug(f"Using latest engine version ({all_versions[0]['version']})")
|
||||
engine_path = all_versions[0]['path']
|
||||
|
||||
if not engine_path:
|
||||
raise FileNotFoundError(f"Cannot find requested engine version {engine_version}")
|
||||
|
||||
@@ -17,7 +17,7 @@ class FFMPEGRenderWorker(BaseRenderWorker):
|
||||
|
||||
def generate_worker_subprocess(self):
|
||||
|
||||
cmd = [self.engine.default_renderer_path(), '-y', '-stats', '-i', self.input_path]
|
||||
cmd = [self.renderer_path, '-y', '-stats', '-i', self.input_path]
|
||||
|
||||
# Resize frame
|
||||
if self.args.get('x_resolution', None) and self.args.get('y_resolution', None):
|
||||
@@ -29,7 +29,7 @@ class FFMPEGRenderWorker(BaseRenderWorker):
|
||||
cmd.extend(raw_args.split(' '))
|
||||
|
||||
# Close with output path
|
||||
cmd.append(self.output_path)
|
||||
cmd.extend(['-max_muxing_queue_size', '1024', self.output_path])
|
||||
return cmd
|
||||
|
||||
def percent_complete(self):
|
||||
|
||||
Reference in New Issue
Block a user