qsv、对接

This commit is contained in:
2024-12-07 18:00:57 +08:00
parent fb51d144c0
commit 8d6159d302
3 changed files with 21 additions and 12 deletions

View File

@ -1,9 +1,11 @@
import json
import os.path
import time
from entity.ffmpeg import FfmpegTask
import logging
from util import ffmpeg
from util import ffmpeg, oss
logger = logging.getLogger('biz/ffmpeg')
@ -11,8 +13,10 @@ logger = logging.getLogger('biz/ffmpeg')
def parse_ffmpeg_task(task_info, template_info):
tasks = []
# 中间片段
task_params_str = task_info.get("taskParams", "{}")
task_params = json.loads(task_params_str)
for part in template_info.get("video_parts"):
source = select_video_if_needed(part.get('source'), task_info, template_info)
source = parse_video(part.get('source'), task_params, template_info)
if not source:
logger.warning("no video found for part: " + str(part))
continue
@ -37,17 +41,22 @@ def parse_ffmpeg_task(task_info, template_info):
return task
def select_video_if_needed(source, task_info, template_info):
def parse_video(source, task_params, template_info):
print(source)
if source.startswith('PLACEHOLDER_'):
placeholder_id = source.replace('PLACEHOLDER_', '')
new_sources = task_info.get('user_videos', {}).get(placeholder_id, [])
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 None
else:
# TODO: Random Pick / Policy Pick
new_sources = new_sources[0]
new_sources = new_sources[0].get("url")
if new_sources.startswith("http"):
_, source_name = os.path.split(new_sources)
oss.download_from_oss(new_sources, source)
return source_name
return new_sources
return os.path.join(template_info.get("local_path"), source)