You've already forked FrameTour-RenderWorker
tail效果
This commit is contained in:
@@ -308,6 +308,19 @@ class FfmpegTask(object):
|
||||
effect_index += 1
|
||||
filter_args.append(f"{video_output_str}trim=start={skip_seconds},setpts=PTS-STARTPTS[v_eff{effect_index}]")
|
||||
video_output_str = f"[v_eff{effect_index}]"
|
||||
elif effect.startswith("tail:"):
|
||||
param = effect.split(":", 2)[1]
|
||||
if param == '':
|
||||
param = "0"
|
||||
tail_seconds = float(param)
|
||||
if tail_seconds > 0:
|
||||
effect_index += 1
|
||||
# 首先获取视频总时长,然后计算开始时间
|
||||
# 使用reverse+trim+reverse的方法来精确获取最后N秒
|
||||
filter_args.append(f"{video_output_str}reverse[v_rev{effect_index}]")
|
||||
filter_args.append(f"[v_rev{effect_index}]trim=duration={tail_seconds},setpts=PTS-STARTPTS[v_trim{effect_index}]")
|
||||
filter_args.append(f"[v_trim{effect_index}]reverse[v_eff{effect_index}]")
|
||||
video_output_str = f"[v_eff{effect_index}]"
|
||||
...
|
||||
if self.resolution:
|
||||
filter_args.append(f"{video_output_str}scale={self.resolution.replace('x', ':')}[v]")
|
||||
|
Reference in New Issue
Block a user