You've already forked FrameTour-RenderWorker
q
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from typing import List, Dict, Any
|
||||
from typing import List
|
||||
from .base import EffectProcessor
|
||||
|
||||
|
||||
@@ -63,20 +63,24 @@ class CameraShotEffect(EffectProcessor):
|
||||
|
||||
# 选择开始部分帧
|
||||
filter_args.append(
|
||||
f"{start_out_str}select=lt(n\\,{int(start * self.frame_rate)}){start_out_str}"
|
||||
f"{start_out_str}select=lt(n\\,"
|
||||
f"{int(start * self.frame_rate)}){start_out_str}"
|
||||
)
|
||||
|
||||
# 选择结束部分帧
|
||||
filter_args.append(
|
||||
f"{end_out_str}select=gt(n\\,{int(start * self.frame_rate)}){end_out_str}"
|
||||
f"{end_out_str}select=gt(n\\,"
|
||||
f"{int(start * self.frame_rate)}){end_out_str}"
|
||||
)
|
||||
|
||||
# 选择中间特定帧并扩展
|
||||
filter_args.append(
|
||||
f"{mid_out_str}select=eq(n\\,{int(start * self.frame_rate)}){mid_out_str}"
|
||||
f"{mid_out_str}select=eq(n\\,"
|
||||
f"{int(start * self.frame_rate)}){mid_out_str}"
|
||||
)
|
||||
filter_args.append(
|
||||
f"{mid_out_str}tpad=start_mode=clone:start_duration={duration:.4f}{mid_out_str}"
|
||||
f"{mid_out_str}tpad=start_mode=clone:"
|
||||
f"start_duration={duration:.4f}{mid_out_str}"
|
||||
)
|
||||
|
||||
# 如果需要旋转
|
||||
@@ -85,7 +89,8 @@ class CameraShotEffect(EffectProcessor):
|
||||
|
||||
# 连接三部分
|
||||
filter_args.append(
|
||||
f"{start_out_str}{mid_out_str}{end_out_str}concat=n=3:v=1:a=0,setpts=N/{self.frame_rate}/TB{final_output}"
|
||||
f"{start_out_str}{mid_out_str}{end_out_str}concat=n=3:v=1:a=0,"
|
||||
f"setpts=N/{self.frame_rate}/TB{final_output}"
|
||||
)
|
||||
|
||||
return filter_args, final_output
|
||||
|
||||
Reference in New Issue
Block a user