fix(worker): 改进FFmpeg错误信息可见性便于exit=8排查 #1879

Merged
xiaoxia merged 1 commits from fix/ffmpeg-error-visibility-0913 into develop 2026-09-13 23:30:09 +08:00
2 changed files with 10 additions and 7 deletions
@@ -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(
+2 -1
View File
@@ -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(