渲染后再to annexb,使用新逻辑拼接
This commit is contained in:
parent
4c05846986
commit
29bb80f3b9
@ -202,7 +202,6 @@ 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 += ("-c:v", "h264_qsv", "-r", "25", "-global_quality", "28", "-look_ahead", "1")
|
output_args += ("-c:v", "h264_qsv", "-r", "25", "-global_quality", "28", "-look_ahead", "1")
|
||||||
filter_args = []
|
filter_args = []
|
||||||
|
@ -88,8 +88,8 @@ def download_template(template_id):
|
|||||||
new_fp = 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)
|
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 re_encode_and_annexb
|
||||||
new_fp = to_annexb(new_fp)
|
new_fp = re_encode_and_annexb(new_fp)
|
||||||
_template['source'] = os.path.relpath(new_fp, 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'])):
|
||||||
|
@ -21,6 +21,19 @@ def to_annexb(file):
|
|||||||
else:
|
else:
|
||||||
return file
|
return file
|
||||||
|
|
||||||
|
def re_encode_and_annexb(file):
|
||||||
|
if not os.path.exists(file):
|
||||||
|
return file
|
||||||
|
logger.info("ReEncodeAndAnnexb: %s", file)
|
||||||
|
ffmpeg_process = subprocess.run(["ffmpeg", "-y", "-hide_banner", "-i", file, "-c:v", "h264_qsv", "-global_quality", "28", "-look_ahead", "1", "-bsf:v", "h264_mp4toannexb",
|
||||||
|
"-f", "mpegts", file+".ts"])
|
||||||
|
logger.info("ReEncodeAndAnnexb: %s, returned: %s", file, ffmpeg_process.returncode)
|
||||||
|
if ffmpeg_process.returncode == 0:
|
||||||
|
os.remove(file)
|
||||||
|
return file+".ts"
|
||||||
|
else:
|
||||||
|
return file
|
||||||
|
|
||||||
def start_render(ffmpeg_task: FfmpegTask):
|
def start_render(ffmpeg_task: FfmpegTask):
|
||||||
logger.info(ffmpeg_task)
|
logger.info(ffmpeg_task)
|
||||||
if not ffmpeg_task.need_run():
|
if not ffmpeg_task.need_run():
|
||||||
@ -64,7 +77,7 @@ def duration_str_to_float(duration_str: str) -> float:
|
|||||||
def probe_video_info(video_file):
|
def probe_video_info(video_file):
|
||||||
# 获取宽度和高度
|
# 获取宽度和高度
|
||||||
result = subprocess.run(
|
result = subprocess.run(
|
||||||
["ffprobe.exe", '-v', 'error', '-select_streams', 'v:0', '-show_entries', 'stream=width,height:format=duration', '-of',
|
["ffprobe", '-v', 'error', '-select_streams', 'v:0', '-show_entries', 'stream=width,height:format=duration', '-of',
|
||||||
'csv=s=x:p=0', video_file],
|
'csv=s=x:p=0', video_file],
|
||||||
stderr=subprocess.STDOUT,
|
stderr=subprocess.STDOUT,
|
||||||
**subprocess_args(True)
|
**subprocess_args(True)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user