You've already forked FrameTour-RenderWorker
refactor(biz): 重构 FFmpeg 任务处理逻辑
-将主要处理逻辑迁移到新的 TaskService 架构中 -保持 FfmpegTask 类的接口
This commit is contained in:
@@ -14,46 +14,7 @@ from telemetry import get_tracer
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
def _convert_ffmpeg_task_to_render_task(ffmpeg_task):
|
||||
"""将旧的FfmpegTask转换为新的RenderTask"""
|
||||
from entity.render_task import RenderTask, TaskType
|
||||
|
||||
# 获取输入文件
|
||||
input_files = []
|
||||
for inp in ffmpeg_task.input_file:
|
||||
if hasattr(inp, 'get_output_file'):
|
||||
input_files.append(inp.get_output_file())
|
||||
else:
|
||||
input_files.append(str(inp))
|
||||
|
||||
# 确定任务类型
|
||||
task_type = TaskType.COPY
|
||||
if ffmpeg_task.task_type == 'concat':
|
||||
task_type = TaskType.CONCAT
|
||||
elif ffmpeg_task.task_type == 'encode':
|
||||
task_type = TaskType.ENCODE
|
||||
|
||||
# 创建新任务
|
||||
render_task = RenderTask(
|
||||
input_files=input_files,
|
||||
output_file=ffmpeg_task.output_file,
|
||||
task_type=task_type,
|
||||
resolution=ffmpeg_task.resolution,
|
||||
frame_rate=ffmpeg_task.frame_rate,
|
||||
annexb=ffmpeg_task.annexb,
|
||||
center_cut=ffmpeg_task.center_cut,
|
||||
zoom_cut=ffmpeg_task.zoom_cut,
|
||||
ext_data=getattr(ffmpeg_task, 'ext_data', {})
|
||||
)
|
||||
|
||||
# 复制各种资源
|
||||
render_task.effects = getattr(ffmpeg_task, 'effects', [])
|
||||
render_task.luts = getattr(ffmpeg_task, 'luts', [])
|
||||
render_task.audios = getattr(ffmpeg_task, 'audios', [])
|
||||
render_task.overlays = getattr(ffmpeg_task, 'overlays', [])
|
||||
render_task.subtitles = getattr(ffmpeg_task, 'subtitles', [])
|
||||
|
||||
return render_task
|
||||
# 向后兼容层 - 处理旧的FfmpegTask对象
|
||||
|
||||
class RenderService(ABC):
|
||||
"""渲染服务抽象接口"""
|
||||
|
||||
Reference in New Issue
Block a user