改改bug
This commit is contained in:
parent
ce469dacf2
commit
92160b05ea
@ -69,6 +69,7 @@ def parse_video(source, task_params, template_info):
|
|||||||
def start_ffmpeg_task(ffmpeg_task):
|
def start_ffmpeg_task(ffmpeg_task):
|
||||||
for task in ffmpeg_task.analyze_input_render_tasks():
|
for task in ffmpeg_task.analyze_input_render_tasks():
|
||||||
start_ffmpeg_task(task)
|
start_ffmpeg_task(task)
|
||||||
|
ffmpeg_task.correct_task_type()
|
||||||
return ffmpeg.start_render(ffmpeg_task)
|
return ffmpeg.start_render(ffmpeg_task)
|
||||||
|
|
||||||
|
|
||||||
|
@ -124,11 +124,11 @@ class FfmpegTask(object):
|
|||||||
|
|
||||||
def get_ffmpeg_args(self):
|
def get_ffmpeg_args(self):
|
||||||
args = ['-y', '-hide_banner']
|
args = ['-y', '-hide_banner']
|
||||||
video_output_str = "[0:v]"
|
|
||||||
if self.task_type == 'encode':
|
if self.task_type == 'encode':
|
||||||
|
# args += ('-hwaccel', 'qsv', '-hwaccel_output_format', 'qsv')
|
||||||
input_args = []
|
input_args = []
|
||||||
filter_args = []
|
filter_args = []
|
||||||
output_args = ["-shortest", "-c:v", "h264_qsv"]
|
output_args = ["-shortest", "-c:v", "h264_qsv", "-global_quality", "28", "-look_ahead", "1"]
|
||||||
if self.annexb:
|
if self.annexb:
|
||||||
output_args.append("-bsf:v")
|
output_args.append("-bsf:v")
|
||||||
output_args.append("h264_mp4toannexb")
|
output_args.append("h264_mp4toannexb")
|
||||||
@ -192,12 +192,7 @@ class FfmpegTask(object):
|
|||||||
f.write("file '"+input_file+"'\n")
|
f.write("file '"+input_file+"'\n")
|
||||||
elif isinstance(input_file, FfmpegTask):
|
elif isinstance(input_file, FfmpegTask):
|
||||||
f.write("file '" + input_file.get_output_file() + "'\n")
|
f.write("file '" + input_file.get_output_file() + "'\n")
|
||||||
input_args.append("-f")
|
input_args += ("-f", "concat", "-safe", "0", "-i", _tmp_file)
|
||||||
input_args.append("concat")
|
|
||||||
input_args.append("-safe")
|
|
||||||
input_args.append("0")
|
|
||||||
input_args.append("-i")
|
|
||||||
input_args.append(_tmp_file)
|
|
||||||
output_args.append("-c:v")
|
output_args.append("-c:v")
|
||||||
output_args.append("copy")
|
output_args.append("copy")
|
||||||
if len(self.audios) > 0:
|
if len(self.audios) > 0:
|
||||||
@ -207,11 +202,9 @@ class FfmpegTask(object):
|
|||||||
output_args.append("copy")
|
output_args.append("copy")
|
||||||
output_args.append("-f")
|
output_args.append("-f")
|
||||||
output_args.append("mp4")
|
output_args.append("mp4")
|
||||||
|
output_args += ("-c:v", "h264_qsv", "-r", "25", "-global_quality", "28", "-look_ahead", "1")
|
||||||
return args + input_args + output_args + [self.get_output_file()]
|
return args + input_args + output_args + [self.get_output_file()]
|
||||||
output_args.append("-c:v")
|
output_args += ("-c:v", "h264_qsv", "-r", "25", "-global_quality", "28", "-look_ahead", "1")
|
||||||
output_args.append("h264_qsv")
|
|
||||||
output_args.append("-r")
|
|
||||||
output_args.append("25")
|
|
||||||
filter_args = []
|
filter_args = []
|
||||||
video_output_str = "[0:v]"
|
video_output_str = "[0:v]"
|
||||||
audio_output_str = "[0:a]"
|
audio_output_str = "[0:a]"
|
||||||
@ -266,7 +259,12 @@ class FfmpegTask(object):
|
|||||||
else:
|
else:
|
||||||
self.output_file = "rand_" + str(uuid.uuid4()) + ".mp4"
|
self.output_file = "rand_" + str(uuid.uuid4()) + ".mp4"
|
||||||
else:
|
else:
|
||||||
self.output_file = file
|
if isinstance(file, FfmpegTask):
|
||||||
|
if file == self:
|
||||||
|
return
|
||||||
|
self.output_file = file.get_output_file()
|
||||||
|
if type(file) is str:
|
||||||
|
self.output_file = file
|
||||||
|
|
||||||
def check_annexb(self):
|
def check_annexb(self):
|
||||||
for input_file in self.input_file:
|
for input_file in self.input_file:
|
||||||
|
@ -85,11 +85,12 @@ def download_template(template_id):
|
|||||||
if 'source' in _template:
|
if 'source' in _template:
|
||||||
if str(_template['source']).startswith("http"):
|
if str(_template['source']).startswith("http"):
|
||||||
_, _fn = os.path.split(_template['source'])
|
_, _fn = os.path.split(_template['source'])
|
||||||
oss.download_from_oss(_template['source'], os.path.join(template_info['local_path'], _fn))
|
new_fp = os.path.join(template_info['local_path'], _fn)
|
||||||
|
oss.download_from_oss(_template['source'], new_fp)
|
||||||
if _fn.endswith(".mp4"):
|
if _fn.endswith(".mp4"):
|
||||||
from util.ffmpeg import to_annexb
|
from util.ffmpeg import to_annexb
|
||||||
_fn = to_annexb(os.path.join(template_info['local_path'], _fn))
|
new_fp = to_annexb(new_fp)
|
||||||
_template['source'] = os.path.relpath(_fn, template_info['local_path'])
|
_template['source'] = os.path.relpath(new_fp, template_info['local_path'])
|
||||||
if 'overlays' in _template:
|
if 'overlays' in _template:
|
||||||
for i in range(len(_template['overlays'])):
|
for i in range(len(_template['overlays'])):
|
||||||
overlay = _template['overlays'][i]
|
overlay = _template['overlays'][i]
|
||||||
|
@ -139,6 +139,7 @@ def report_task_failed(task_info):
|
|||||||
|
|
||||||
|
|
||||||
def upload_task_file(task_info, ffmpeg_task):
|
def upload_task_file(task_info, ffmpeg_task):
|
||||||
|
logger.info("开始上传文件: %s", task_info.get("id"))
|
||||||
try:
|
try:
|
||||||
response = session.post('{0}/{1}/uploadUrl'.format(os.getenv('API_ENDPOINT'), task_info.get("id")), json={
|
response = session.post('{0}/{1}/uploadUrl'.format(os.getenv('API_ENDPOINT'), task_info.get("id")), json={
|
||||||
'accessKey': os.getenv('ACCESS_KEY'),
|
'accessKey': os.getenv('ACCESS_KEY'),
|
||||||
@ -149,10 +150,13 @@ def upload_task_file(task_info, ffmpeg_task):
|
|||||||
return False
|
return False
|
||||||
data = response.json()
|
data = response.json()
|
||||||
url = data.get('data', "")
|
url = data.get('data', "")
|
||||||
|
logger.info("开始上传文件: %s 至 %s", task_info.get("id"), url)
|
||||||
try:
|
try:
|
||||||
with open(ffmpeg_task.get_output_file(), 'rb') as f:
|
with open(ffmpeg_task.get_output_file(), 'rb') as f:
|
||||||
requests.put(url, data=f)
|
requests.put(url, data=f)
|
||||||
except requests.RequestException as e:
|
except requests.RequestException as e:
|
||||||
logger.error("上传失败!", e)
|
logger.error("上传失败!", e)
|
||||||
return False
|
return False
|
||||||
return True
|
finally:
|
||||||
|
logger.info("上传文件结束: %s", task_info.get("id"))
|
||||||
|
return True
|
||||||
|
@ -23,11 +23,11 @@ def to_annexb(file):
|
|||||||
|
|
||||||
def start_render(ffmpeg_task: FfmpegTask):
|
def start_render(ffmpeg_task: FfmpegTask):
|
||||||
logger.info(ffmpeg_task)
|
logger.info(ffmpeg_task)
|
||||||
logger.info(ffmpeg_task.get_ffmpeg_args())
|
|
||||||
if not ffmpeg_task.need_run():
|
if not ffmpeg_task.need_run():
|
||||||
ffmpeg_task.set_output_file(ffmpeg_task.input_file[0])
|
ffmpeg_task.set_output_file(ffmpeg_task.input_file[0])
|
||||||
return True
|
return True
|
||||||
ffmpeg_args = ffmpeg_task.get_ffmpeg_args()
|
ffmpeg_args = ffmpeg_task.get_ffmpeg_args()
|
||||||
|
logger.info(ffmpeg_args)
|
||||||
if len(ffmpeg_args) == 0:
|
if len(ffmpeg_args) == 0:
|
||||||
ffmpeg_task.set_output_file(ffmpeg_task.input_file[0])
|
ffmpeg_task.set_output_file(ffmpeg_task.input_file[0])
|
||||||
return True
|
return True
|
||||||
|
Loading…
x
Reference in New Issue
Block a user