diff --git a/entity/ffmpeg.py b/entity/ffmpeg.py index 9419a3b..62234f5 100644 --- a/entity/ffmpeg.py +++ b/entity/ffmpeg.py @@ -56,7 +56,11 @@ class FfmpegTask(object): self.input_file.extend(inputs) 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() 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"[v][{input_index}:v]overlay=1:eof_action=endall[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(video_output_str) output_args.append("-r")