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()