You've already forked FrameTour-RenderWorker
收集ffmpeg异常,流式上传
This commit is contained in:
@ -53,7 +53,7 @@ def start_render(ffmpeg_task: FfmpegTask):
|
||||
ffmpeg_task.set_output_file(ffmpeg_task.input_file[0])
|
||||
span.set_status(Status(StatusCode.OK))
|
||||
return True
|
||||
ffmpeg_process = subprocess.run(["ffmpeg", "-progress", "-", "-loglevel", "error", *ffmpeg_args], **subprocess_args(True))
|
||||
ffmpeg_process = subprocess.run(["ffmpeg", "-progress", "-", "-loglevel", "error", *ffmpeg_args], stderr=subprocess.PIPE, **subprocess_args(True))
|
||||
span.set_attribute("ffmpeg.args", json.dumps(ffmpeg_process.args))
|
||||
logger.info(" ".join(ffmpeg_process.args))
|
||||
ffmpeg_final_out = handle_ffmpeg_output(ffmpeg_process.stdout)
|
||||
@ -62,7 +62,8 @@ def start_render(ffmpeg_task: FfmpegTask):
|
||||
code = ffmpeg_process.returncode
|
||||
span.set_attribute("ffmpeg.code", code)
|
||||
if code != 0:
|
||||
span.set_status(Status(StatusCode.ERROR))
|
||||
span.set_attribute("ffmpeg.err", str(ffmpeg_process.stderr))
|
||||
span.set_status(Status(StatusCode.ERROR, "FFMPEG异常退出"))
|
||||
logger.error("FFMPEG ERROR: %s", ffmpeg_process.stderr)
|
||||
return False
|
||||
span.set_attribute("ffmpeg.out_file", ffmpeg_task.output_file)
|
||||
@ -70,12 +71,13 @@ def start_render(ffmpeg_task: FfmpegTask):
|
||||
file_size = os.path.getsize(ffmpeg_task.output_file)
|
||||
span.set_attribute("file.size", file_size)
|
||||
if file_size < 4096:
|
||||
span.set_status(Status(StatusCode.ERROR))
|
||||
span.set_status(Status(StatusCode.ERROR, "输出文件过小"))
|
||||
logger.error("FFMPEG ERROR: OUTPUT FILE IS TOO SMALL")
|
||||
return False
|
||||
except OSError:
|
||||
except OSError as e:
|
||||
span.set_attribute("file.size", 0)
|
||||
span.set_status(Status(StatusCode.ERROR))
|
||||
span.set_attribute("file.error", e.strerror)
|
||||
span.set_status(Status(StatusCode.ERROR, "输出文件不存在"))
|
||||
logger.error("FFMPEG ERROR: OUTPUT FILE NOT FOUND")
|
||||
return False
|
||||
span.set_status(Status(StatusCode.OK))
|
||||
|
Reference in New Issue
Block a user