Video Transition / 视频转场
视频转场效果工具,使用 ffmpeg xfade 滤镜实现平滑转场。
支持的转场效果
| 转场类型 | 英文名 | 效果描述 |
|---|
| 淡入淡出 | fade | 画面逐渐过渡 |
| 左滑 | slideleft | 新画面从右侧滑入 |
| 右滑 | slideright | 新画面从左侧滑入 |
| 上滑 | slideup | 新画面从下方滑入 |
| 下滑 | slidedown | 新画面从上方滑入 |
| 圆形展开 | circleopen | 圆形遮罩展开 |
| 左擦除 | wipeleft | 从右向左擦除 |
| 右擦除 | wiperight | 从左向右擦除 |
| 距离 | distance | 距离渐变 |
| 像素化 | pixelize | 像素化过渡 |
| 对角线 | diagtl/diagtr | 对角线擦除 |
| 矩形 | rectcrop | 矩形裁剪 |
快速使用
1. 合并视频带转场
from video_transition import concat_with_transitions
# 合并视频片段,自动添加转场
concat_with_transitions(
video_paths=["clip1.mp4", "clip2.mp4", "clip3.mp4"],
output_path="output.mp4",
transition_duration=0.5
)
2. 单个转场效果
from video_transition import apply_transition
# 在两个视频之间应用特定转场
apply_transition(
video1="intro.mp4",
video2="main.mp4",
output="merged.mp4",
transition="fade",
duration=0.5
)
3. 批量添加淡入淡出
from video_transition import add_fade_to_clips
# 为所有片段添加淡入淡出
add_fade_to_clips(
input_dir="clips/",
output_dir="faded/",
fade_in=0.3,
fade_out=0.3
)
参数说明
concat_with_transitions()
| 参数 | 类型 | 默认值 | 说明 |
|---|
video_paths | list | - | 视频路径列表 |
output_path | str | - | 输出路径 |
transition_duration | float | 0.5 | 转场时长(秒) |
transitions | list | 循环使用所有 | 转场类型列表 |
auto_fade | bool | True | 是否自动添加淡入淡出 |
apply_transition()
| 参数 | 类型 | 默认值 | 说明 |
|---|
video1 | str | - | 第一个视频 |
video2 | str | - | 第二个视频 |
output | str | - | 输出路径 |
transition | str | "fade" | 转场类型 |
duration | float | 0.5 | 转场时长 |
offset | float | 自动计算 | 转场起始时间 |
依赖
ffmpeg >= 4.0
技术原理
使用 ffmpeg 的 xfade 滤镜实现视频转场:
ffmpeg -i clip1.mp4 -i clip2.mp4 \
-filter_complex "[0:v][1:v]xfade=transition=fade:duration=0.5:offset=5[outv]" \
-map "[outv]" output.mp4
触发词
视频转场、转场效果、xfade、视频合并、淡入淡出
文件结构
video-transition/
├── SKILL.md # 技能说明
├── README.md # 详细文档
├── video_transition.py # 核心模块
├── example.py # 使用示例
└── package.json # 包信息
License
MIT
Author
systiger