You've already forked FrameTour-RenderWorker
允许跳过下载,并发下载,env和版本更新
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import json
|
||||
import os.path
|
||||
import time
|
||||
from concurrent.futures import ThreadPoolExecutor
|
||||
|
||||
from opentelemetry.trace import Status, StatusCode
|
||||
|
||||
@@ -21,8 +22,18 @@ def parse_ffmpeg_task(task_info, template_info):
|
||||
# 中间片段
|
||||
task_params_str = task_info.get("taskParams", "{}")
|
||||
span.set_attribute("task_params", task_params_str)
|
||||
task_params = json.loads(task_params_str)
|
||||
task_params: dict = json.loads(task_params_str)
|
||||
task_params_orig = json.loads(task_params_str)
|
||||
with tracer.start_as_current_span("parse_ffmpeg_task.download_all") as sub_span:
|
||||
with ThreadPoolExecutor(max_workers=8) as executor:
|
||||
param_list: list[dict]
|
||||
for param_list in task_params.values():
|
||||
for param in param_list:
|
||||
url = param.get("url")
|
||||
if url.startswith("http"):
|
||||
_, fn = os.path.split(url)
|
||||
executor.submit(oss.download_from_oss, url, fn, True)
|
||||
executor.shutdown(wait=True)
|
||||
for part in template_info.get("video_parts"):
|
||||
source, ext_data = parse_video(part.get('source'), task_params, template_info)
|
||||
if not source:
|
||||
@@ -54,10 +65,10 @@ def parse_ffmpeg_task(task_info, template_info):
|
||||
overall = template_info.get("overall_template")
|
||||
task.center_cut = template_info.get("crop_mode", None)
|
||||
task.frame_rate = template_info.get("frame_rate", 25)
|
||||
if overall.get('source', ''):
|
||||
source, ext_data = parse_video(overall.get('source'), task_params, template_info)
|
||||
task.add_inputs(source)
|
||||
task.ext_data = ext_data or {}
|
||||
# if overall.get('source', ''):
|
||||
# source, ext_data = parse_video(overall.get('source'), task_params, template_info)
|
||||
# task.add_inputs(source)
|
||||
# task.ext_data = ext_data or {}
|
||||
for effect in overall.get('effects', []):
|
||||
task.add_effect(effect)
|
||||
for lut in overall.get('filters', []):
|
||||
@@ -83,7 +94,7 @@ def parse_video(source, task_params, template_info):
|
||||
new_sources = _pick_source.get("url")
|
||||
if new_sources.startswith("http"):
|
||||
_, source_name = os.path.split(new_sources)
|
||||
oss.download_from_oss(new_sources, source_name)
|
||||
oss.download_from_oss(new_sources, source_name, True)
|
||||
return source_name, _pick_source
|
||||
return new_sources, _pick_source
|
||||
return os.path.join(template_info.get("local_path"), source), None
|
||||
|
Reference in New Issue
Block a user