Source code for cgl.plugins.unreal.tools.render.media_encoder_cli

import sys
import subprocess

# -m cgl.plugins.unreal.tools.storyboard_tools.cli {AdditionalLocalArgs} {VideoInputs} {AudioInputs} "{OutputPath}"

# python -m cgl.plugins.unreal.tools.storyboard_tools.cli

# -f concat -safe 0 -i "{InputFile}" -r {FrameRate}
# -f concat -safe 0 -i "{InputFile}"


[docs] def setup_cli_encoder_project_settings(): import unreal settings = unreal.get_default_object(unreal.MoviePipelineCommandLineEncoderSettings) settings.executable_path = "python" settings.video_codec = "null" settings.audio_codec = "null" settings.output_file_extension = "mov" settings.command_line_format = ( f"{__file__}" + ' {AdditionalLocalArgs} {VideoInputs} {AudioInputs} "{OutputPath}"' ) settings.video_input_string_format = '--framerate {FrameRate} --video "{InputFile}"' settings.audio_input_string_format = '--audio "{InputFile}"' return settings
[docs] def run(): return args = media_encoder.parse_media_encoder_args() # unreal goes out of its way to hide a window launched by render process # so we have to go out of our way to show one :( cmd = ["python", f"{media_encoder.__file__}"] cmd.extend(sys.argv[1:]) # print(subprocess.list2cmdline(cmd)) subprocess.check_call(cmd)
# p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) # stdout, stderr = p.communicate() # if p.returncode != 0: # print(stderr) # raise RuntimeError("media encoding error") if __name__ == "__main__": run()