You've already forked FrameTour-RenderWorker
feat(重构): 实现新的渲染服务架构
- 新增 RenderTask
This commit is contained in:
38
entity/effects/skip.py
Normal file
38
entity/effects/skip.py
Normal file
@@ -0,0 +1,38 @@
|
||||
from typing import List
|
||||
from .base import EffectProcessor
|
||||
|
||||
class SkipEffect(EffectProcessor):
|
||||
"""跳过开头效果处理器"""
|
||||
|
||||
def validate_params(self) -> bool:
|
||||
"""验证参数:跳过的秒数"""
|
||||
if not self.params:
|
||||
return True # 默认不跳过
|
||||
|
||||
try:
|
||||
skip_seconds = float(self.params)
|
||||
return skip_seconds >= 0
|
||||
except ValueError:
|
||||
return False
|
||||
|
||||
def generate_filter_args(self, video_input: str, effect_index: int) -> tuple[List[str], str]:
|
||||
"""生成跳过开头效果的滤镜参数"""
|
||||
if not self.validate_params():
|
||||
return [], video_input
|
||||
|
||||
if not self.params:
|
||||
return [], video_input
|
||||
|
||||
skip_seconds = float(self.params)
|
||||
if skip_seconds <= 0:
|
||||
return [], video_input
|
||||
|
||||
output_stream = f"[v_eff{effect_index}]"
|
||||
|
||||
# 使用trim滤镜跳过开头
|
||||
filter_args = [f"{video_input}trim=start={skip_seconds}{output_stream}"]
|
||||
|
||||
return filter_args, output_stream
|
||||
|
||||
def get_effect_name(self) -> str:
|
||||
return "skip"
|
Reference in New Issue
Block a user