Video Transition / 视频转场
视频转场效果工具,使用 ffmpeg xfade 滤镜实现平滑转场。
支持的转场效果
| 转场类型 | 英文名 | 效果描述 |
|---|
| 淡入淡出 | INLINECODE0 | 画面逐渐过渡 |
| 左滑 |
slideleft | 新画面从右侧滑入 |
| 右滑 |
slideright | 新画面从左侧滑入 |
| 上滑 |
slideup | 新画面从下方滑入 |
| 下滑 |
slidedown | 新画面从上方滑入 |
| 圆形展开 |
circleopen | 圆形遮罩展开 |
| 左擦除 |
wipeleft | 从右向左擦除 |
| 右擦除 |
wiperight | 从左向右擦除 |
| 距离 |
distance | 距离渐变 |
| 像素化 |
pixelize | 像素化过渡 |
| 对角线 |
diagtl/
diagtr | 对角线擦除 |
| 矩形 |
rectcrop | 矩形裁剪 |
快速使用
1. 合并视频带转场
CODEBLOCK0
2. 单个转场效果
CODEBLOCK1
3. 批量添加淡入淡出
CODEBLOCK2
参数说明
concat_with_transitions()
| 参数 | 类型 | 默认值 | 说明 |
|---|
| INLINECODE14 | list | - | 视频路径列表 |
| INLINECODE15 |
str | - | 输出路径 |
|
transition_duration | float | 0.5 | 转场时长(秒) |
|
transitions | list | 循环使用所有 | 转场类型列表 |
|
auto_fade | bool | True | 是否自动添加淡入淡出 |
apply_transition()
| 参数 | 类型 | 默认值 | 说明 |
|---|
| INLINECODE20 | str | - | 第一个视频 |
| INLINECODE21 |
str | - | 第二个视频 |
|
output | str | - | 输出路径 |
|
transition | str | "fade" | 转场类型 |
|
duration | float | 0.5 | 转场时长 |
|
offset | float | 自动计算 | 转场起始时间 |
依赖
CODEBLOCK3
技术原理
使用 ffmpeg 的 xfade 滤镜实现视频转场:
CODEBLOCK4
触发词
INLINECODE27 、转场效果、xfade、视频合并、 INLINECODE31
文件结构
CODEBLOCK5
License
MIT
Author
systiger
Video Transition / 视频转场
视频转场效果工具,使用 ffmpeg xfade 滤镜实现平滑转场。
支持的转场效果
| 转场类型 | 英文名 | 效果描述 |
|---|
| 淡入淡出 | fade | 画面逐渐过渡 |
| 左滑 |
slideleft | 新画面从右侧滑入 |
| 右滑 | slideright | 新画面从左侧滑入 |
| 上滑 | slideup | 新画面从下方滑入 |
| 下滑 | slidedown | 新画面从上方滑入 |
| 圆形展开 | circleopen | 圆形遮罩展开 |
| 左擦除 | wipeleft | 从右向左擦除 |
| 右擦除 | wiperight | 从左向右擦除 |
| 距离 | distance | 距离渐变 |
| 像素化 | pixelize | 像素化过渡 |
| 对角线 | diagtl/diagtr | 对角线擦除 |
| 矩形 | rectcrop | 矩形裁剪 |
快速使用
1. 合并视频带转场
python
from videotransition import concatwith_transitions
合并视频片段,自动添加转场
concat
withtransitions(
video_paths=[clip1.mp4, clip2.mp4, clip3.mp4],
output_path=output.mp4,
transition_duration=0.5
)
2. 单个转场效果
python
from videotransition import applytransition
在两个视频之间应用特定转场
apply_transition(
video1=intro.mp4,
video2=main.mp4,
output=merged.mp4,
transition=fade,
duration=0.5
)
3. 批量添加淡入淡出
python
from videotransition import addfadetoclips
为所有片段添加淡入淡出
add
fadeto_clips(
input_dir=clips/,
output_dir=faded/,
fade_in=0.3,
fade_out=0.3
)
参数说明
concatwithtransitions()
| 参数 | 类型 | 默认值 | 说明 |
|---|
| videopaths | list | - | 视频路径列表 |
| outputpath |
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 滤镜实现视频转场:
bash
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