fix(worker): 改进FFmpeg错误信息可见性便于exit=8排查 #1879
@@ -221,17 +221,18 @@ class RenderAdapter:
|
||||
|
||||
except subprocess.CalledProcessError as exc:
|
||||
stderr_text = (exc.stderr or "").strip()
|
||||
stderr_tail = stderr_text[-5000:] if len(stderr_text) > 5000 else stderr_text
|
||||
logger.error(
|
||||
"[render-adapter] ffmpeg渲染失败: plan_id=%s job_id=%s exit_code=%d\nstderr:\n%s",
|
||||
plan_id,
|
||||
job_id,
|
||||
exc.returncode,
|
||||
stderr_text[-2000:] if len(stderr_text) > 2000 else stderr_text,
|
||||
stderr_tail,
|
||||
)
|
||||
return RenderAdapterResult(
|
||||
success=False,
|
||||
error_message=f"FFmpeg渲染失败(exit={exc.returncode}): {stderr_text[:200]}",
|
||||
error_detail=stderr_text[-2000:] if len(stderr_text) > 2000 else stderr_text,
|
||||
error_message=f"FFmpeg渲染失败(exit={exc.returncode}): {stderr_text[-500:]}",
|
||||
error_detail=stderr_tail,
|
||||
)
|
||||
except Exception as exc:
|
||||
logger.exception(
|
||||
@@ -721,16 +722,17 @@ class RenderAdapter:
|
||||
|
||||
except subprocess.CalledProcessError as exc:
|
||||
stderr_text = (exc.stderr or "").strip()
|
||||
stderr_tail = stderr_text[-5000:] if len(stderr_text) > 5000 else stderr_text
|
||||
logger.error(
|
||||
"[render-adapter] 内存模式渲染失败: plan_id=%s exit_code=%d\nstderr:\n%s",
|
||||
actual_plan_id,
|
||||
exc.returncode,
|
||||
stderr_text[-2000:] if len(stderr_text) > 2000 else stderr_text,
|
||||
stderr_tail,
|
||||
)
|
||||
return RenderAdapterResult(
|
||||
success=False,
|
||||
error_message=f"FFmpeg渲染失败(exit={exc.returncode}): {stderr_text[:200]}",
|
||||
error_detail=stderr_text[-2000:] if len(stderr_text) > 2000 else stderr_text,
|
||||
error_message=f"FFmpeg渲染失败(exit={exc.returncode}): {stderr_text[-500:]}",
|
||||
error_detail=stderr_tail,
|
||||
)
|
||||
except Exception as exc:
|
||||
logger.exception(
|
||||
|
||||
@@ -705,7 +705,8 @@ def _render_from_edit_plan(
|
||||
)
|
||||
|
||||
if not result.success:
|
||||
raise RuntimeError(f"渲染失败: {result.error_message}")
|
||||
detail_suffix = f"\n[detail] {result.error_detail}" if result.error_detail else ""
|
||||
raise RuntimeError(f"渲染失败: {result.error_message}{detail_suffix}")
|
||||
|
||||
render_elapsed = time.monotonic() - render_start
|
||||
logger.info(
|
||||
|
||||
Reference in New Issue
Block a user