diff --git a/entity/ffmpeg.py b/entity/ffmpeg.py index 3e864a0..7471be4 100644 --- a/entity/ffmpeg.py +++ b/entity/ffmpeg.py @@ -271,9 +271,10 @@ class FfmpegTask(object): if param == '': param = "1" if param != "1": - # 视频变速 + # 视频变速:通过改变帧率实现,避免PTS冲突 effect_index += 1 - filter_args.append(f"{video_output_str}setpts={param}*PTS[v_eff{effect_index}]") + new_fps = self.frame_rate / float(param) + filter_args.append(f"{video_output_str}fps={new_fps}[v_eff{effect_index}]") video_output_str = f"[v_eff{effect_index}]" elif effect.startswith("zoom:"): param = effect.split(":", 2)[1]