This commit is contained in:
2025-09-24 10:50:34 +08:00
parent c055a68592
commit ec1705769c
18 changed files with 348 additions and 330 deletions

View File

@@ -2,12 +2,13 @@ import subprocess
import os
import logging
from abc import ABC, abstractmethod
from typing import Optional, Union
from typing import Union
from opentelemetry.trace import Status, StatusCode
from entity.render_task import RenderTask
from entity.ffmpeg_command_builder import FFmpegCommandBuilder
from entity.ffmpeg import FfmpegTask
from util.exceptions import RenderError, FFmpegError
from util.ffmpeg import (
probe_video_info,
@@ -26,7 +27,7 @@ class RenderService(ABC):
"""渲染服务抽象接口"""
@abstractmethod
def render(self, task: Union[RenderTask, "FfmpegTask"]) -> bool:
def render(self, task: Union[RenderTask, FfmpegTask]) -> bool:
"""
执行渲染任务
@@ -72,7 +73,7 @@ class RenderService(ABC):
class DefaultRenderService(RenderService):
"""默认渲染服务实现"""
def render(self, task: Union[RenderTask, "FfmpegTask"]) -> bool:
def render(self, task: Union[RenderTask, FfmpegTask]) -> bool:
"""执行渲染任务"""
# 兼容旧的FfmpegTask
if hasattr(task, "get_ffmpeg_args"): # 这是FfmpegTask
@@ -146,7 +147,7 @@ class DefaultRenderService(RenderService):
error_msg,
)
raise FFmpegError(
f"FFmpeg execution failed",
"FFmpeg execution failed",
command=args,
return_code=process.returncode,
stderr=error_msg,