支持特效字幕

This commit is contained in:
Jerry Yan 2024-12-04 18:17:25 +08:00
parent 679f61c18f
commit ea5e994a3b

View File

@ -56,7 +56,11 @@ class FfmpegTask(object):
self.input_file.extend(inputs) self.input_file.extend(inputs)
def add_overlay(self, *overlays): def add_overlay(self, *overlays):
self.overlays.extend(overlays) for overlay in overlays:
if str(overlay).endswith('.ass'):
self.subtitles.append(overlay)
else:
self.overlays.append(overlay)
self.correct_task_type() self.correct_task_type()
def add_audios(self, *audios): def add_audios(self, *audios):
@ -139,6 +143,9 @@ class FfmpegTask(object):
filter_args.append(f"{video_output_str}[{input_index}:v]scale=rw:rh[v]") filter_args.append(f"{video_output_str}[{input_index}:v]scale=rw:rh[v]")
filter_args.append(f"[v][{input_index}:v]overlay=1:eof_action=endall[v]") filter_args.append(f"[v][{input_index}:v]overlay=1:eof_action=endall[v]")
video_output_str = "[v]" video_output_str = "[v]"
for subtitle in self.subtitles:
filter_args.append(f"{video_output_str}ass={subtitle}[v]")
video_output_str = "[v]"
output_args.append("-map") output_args.append("-map")
output_args.append(video_output_str) output_args.append(video_output_str)
output_args.append("-r") output_args.append("-r")