优化裁切参数获取,避免同机位多素材出问题
This commit is contained in:
parent
399c3d2dc6
commit
04ce423811
@ -24,7 +24,7 @@ def parse_ffmpeg_task(task_info, template_info):
|
||||
task_params = json.loads(task_params_str)
|
||||
task_params_orig = json.loads(task_params_str)
|
||||
for part in template_info.get("video_parts"):
|
||||
source = parse_video(part.get('source'), task_params, template_info)
|
||||
source, ext_data = parse_video(part.get('source'), task_params, template_info)
|
||||
if not source:
|
||||
logger.warning("no video found for part: " + str(part))
|
||||
continue
|
||||
@ -36,7 +36,7 @@ def parse_ffmpeg_task(task_info, template_info):
|
||||
sub_ffmpeg_task = FfmpegTask(source)
|
||||
sub_ffmpeg_task.resolution = template_info.get("video_size", "")
|
||||
sub_ffmpeg_task.annexb = True
|
||||
sub_ffmpeg_task.ext_data = find_placeholder_params(part.get('source'), task_params_orig) or {}
|
||||
sub_ffmpeg_task.ext_data = ext_data or {}
|
||||
sub_ffmpeg_task.frame_rate = template_info.get("frame_rate", 25)
|
||||
sub_ffmpeg_task.center_cut = part.get("crop_mode", None)
|
||||
for effect in part.get('effects', []):
|
||||
@ -55,8 +55,9 @@ def parse_ffmpeg_task(task_info, template_info):
|
||||
task.center_cut = template_info.get("crop_mode", None)
|
||||
task.frame_rate = template_info.get("frame_rate", 25)
|
||||
if overall.get('source', ''):
|
||||
source = parse_video(overall.get('source'), task_params, template_info)
|
||||
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', []):
|
||||
@ -68,37 +69,24 @@ def parse_ffmpeg_task(task_info, template_info):
|
||||
return task
|
||||
|
||||
|
||||
def find_placeholder_params(source, task_params):
|
||||
if source.startswith('PLACEHOLDER_'):
|
||||
placeholder_id = source.replace('PLACEHOLDER_', '')
|
||||
new_sources = task_params.get(placeholder_id, [])
|
||||
if type(new_sources) is list:
|
||||
if len(new_sources) == 0:
|
||||
logger.debug("no video found for placeholder: " + placeholder_id)
|
||||
return {}
|
||||
else:
|
||||
return new_sources[0]
|
||||
return {}
|
||||
|
||||
|
||||
def parse_video(source, task_params, template_info):
|
||||
print(source)
|
||||
if source.startswith('PLACEHOLDER_'):
|
||||
placeholder_id = source.replace('PLACEHOLDER_', '')
|
||||
new_sources = task_params.get(placeholder_id, [])
|
||||
_pick_source = {}
|
||||
if type(new_sources) is list:
|
||||
if len(new_sources) == 0:
|
||||
logger.debug("no video found for placeholder: " + placeholder_id)
|
||||
return None
|
||||
return None, _pick_source
|
||||
else:
|
||||
_pick_source = new_sources.pop(0)
|
||||
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)
|
||||
return source_name
|
||||
return new_sources
|
||||
return os.path.join(template_info.get("local_path"), source)
|
||||
return source_name, _pick_source
|
||||
return new_sources, _pick_source
|
||||
return os.path.join(template_info.get("local_path"), source), None
|
||||
|
||||
|
||||
def check_placeholder_exist(placeholder_id, task_params):
|
||||
|
Loading…
x
Reference in New Issue
Block a user