2 Commits

Author SHA1 Message Date
357c0afb3b feat(util): 添加FFmpeg通用参数环境变量支持
- 通过FFMPEG_COMMON_ARGS环境变量传入通用FFmpeg参数
- 在执行FFmpeg命令时合并环境变量中的通用参数
- 保持原有FFmpeg参数传递机制不变
2026-01-10 22:51:48 +08:00
8de0564fef feat(biz): 更新FFmpeg任务启动功能以支持环境变量配置最大工作线程数
- 修改start_ffmpeg_task函数参数max_workers默认值为None
- 添加环境变量FFMPEG_MAX_WORKERS读取逻辑
- 当max_workers为None时从环境变量获取默认值,否则使用传入值
- 保持原有tracer和任务分析功能不变
2026-01-10 18:28:00 +08:00
2 changed files with 6 additions and 2 deletions

View File

@@ -129,7 +129,9 @@ def check_placeholder_exist_with_count(placeholder_id, task_params, required_cou
return False return False
def start_ffmpeg_task(ffmpeg_task, max_workers=4): def start_ffmpeg_task(ffmpeg_task, max_workers=None):
if max_workers is None:
max_workers = int(os.environ.get("FFMPEG_MAX_WORKERS", 4))
tracer = get_tracer(__name__) tracer = get_tracer(__name__)
with tracer.start_as_current_span("start_ffmpeg_task") as span: with tracer.start_as_current_span("start_ffmpeg_task") as span:
sub_tasks = list(ffmpeg_task.analyze_input_render_tasks()) sub_tasks = list(ffmpeg_task.analyze_input_render_tasks())

View File

@@ -64,7 +64,9 @@ def start_render(ffmpeg_task: FfmpegTask):
ffmpeg_task.set_output_file(ffmpeg_task.input_file[0]) ffmpeg_task.set_output_file(ffmpeg_task.input_file[0])
span.set_status(Status(StatusCode.OK)) span.set_status(Status(StatusCode.OK))
return True return True
ffmpeg_process = subprocess.run(["ffmpeg", "-progress", "-", "-loglevel", "error", *ffmpeg_args], stderr=subprocess.PIPE, **subprocess_args(True)) # 通过环境变量传入通用FFmpeg参数
common_args = os.getenv("FFMPEG_COMMON_ARGS", "").split() if os.getenv("FFMPEG_COMMON_ARGS") else []
ffmpeg_process = subprocess.run(["ffmpeg", "-progress", "-", "-loglevel", "error", *common_args, *ffmpeg_args], stderr=subprocess.PIPE, **subprocess_args(True))
span.set_attribute("ffmpeg.args", json.dumps(ffmpeg_process.args)) span.set_attribute("ffmpeg.args", json.dumps(ffmpeg_process.args))
logger.info(" ".join(ffmpeg_process.args)) logger.info(" ".join(ffmpeg_process.args))
ffmpeg_final_out = handle_ffmpeg_output(ffmpeg_process.stdout) ffmpeg_final_out = handle_ffmpeg_output(ffmpeg_process.stdout)