渲染后再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("-f")
|
||||
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()]
|
||||
output_args += ("-c:v", "h264_qsv", "-r", "25", "-global_quality", "28", "-look_ahead", "1")
|
||||
filter_args = []
|
||||
|
@ -88,8 +88,8 @@ def download_template(template_id):
|
||||
new_fp = os.path.join(template_info['local_path'], _fn)
|
||||
oss.download_from_oss(_template['source'], new_fp)
|
||||
if _fn.endswith(".mp4"):
|
||||
from util.ffmpeg import to_annexb
|
||||
new_fp = to_annexb(new_fp)
|
||||
from util.ffmpeg import re_encode_and_annexb
|
||||
new_fp = re_encode_and_annexb(new_fp)
|
||||
_template['source'] = os.path.relpath(new_fp, template_info['local_path'])
|
||||
if 'overlays' in _template:
|
||||
for i in range(len(_template['overlays'])):
|
||||
|
@ -21,6 +21,19 @@ def to_annexb(file):
|
||||
else:
|
||||
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):
|
||||
logger.info(ffmpeg_task)
|
||||
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):
|
||||
# 获取宽度和高度
|
||||
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],
|
||||
stderr=subprocess.STDOUT,
|
||||
**subprocess_args(True)
|
||||
|
Loading…
x
Reference in New Issue
Block a user