From ea5e994a3b9757844d42a79cb3b56fca14394a9d Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Wed, 4 Dec 2024 18:17:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E7=89=B9=E6=95=88=E5=AD=97?= =?UTF-8?q?=E5=B9=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entity/ffmpeg.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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")