将纯色背景的 GB/BB 视频素材批量转换为动态图片(GIF / WEBP / APNG),支持逐视频微调色度抠图参数、实时预览抠图效果、缩放输出与 RGBA 透明通道输出。
- 批量转换:一次添加多个视频,逐个转换并显示进度,可随时停止
- 色度抠图:把与背景色相近的像素变为透明;参数(背景色 / 容差 / 羽化 / 去边)可逐视频微调。「去边」将画面最外 N 像素渐变透明,用于去除边缘残留(如绿幕素材顶部的绿缝)
- 逐帧预览与播放:拖动进度条逐帧查看,支持播放/暂停、上一帧/下一帧
- 剪辑:在进度条上拖拽起止针(clip_begin / clip_end)裁剪输入视频范围
- 实时预览:预览画面以棋盘格表示透明区域,可直接点击画面取样背景色
- 多种输出格式:GIF / WEBP / APNG
- RGBA 输出:WEBP / APNG 下可保留透明通道;关闭时自动合成到指定填充色
- 缩放输出:保持原尺寸 / 按百分比 / 指定宽度
- 帧率控制:保持原帧率,或设置最大帧率(maxfps)自动抽帧输出
Github Releases: 下载链接
Release里面有打包好的exe,直接运行即可,不需要python环境。
请确保已安装 Python 3.10.6及以上的版本,然后执行以下命令安装依赖:
pip install -r requirements.txtpython main.py- 点击「添加视频」选择素材(支持 mp4 / avi / mov / mkv / webm 等常见格式)
- 选中左侧列表中的视频行,右侧自动加载预览
- 用进度条下方的「播放 / 回退(跳到剪辑起点)/ 上一帧 / 下一帧」逐帧查看;进度条下方有帧刻度,右侧显示原始帧数与 fps,方便换算成秒;拖动进度条两端的剪辑针可裁剪输出范围
- 在「抠图参数」面板调整背景色(点击预览画面取样、或点按钮打开取色器)、容差、羽化,实时查看抠图效果
- 在底部「输出设置」选择格式、缩放、RGBA 透明、帧率(原帧率或最大帧率 maxfps)、循环次数与输出目录
- 点击「开始转换」批量导出;「停止」可中断当前任务
- GIF:只支持 1 位透明度(完全透明 / 完全不透明),半透明像素会被二值化;颜色量化到 256 色
- WEBP / APNG:支持完整 RGBA 半透明;未勾选「保留透明通道」时会把透明区域合成到填充色
- APNG 输出文件扩展名为
.png - 输出目录留空时,文件生成在各自源视频所在目录
- 源目录不可写时(如视频位于
Program Files等受保护目录),程序会自动把输出改到可写的专用目录(桌面/视频/图片下的GB2动图输出),并弹出提示
main.py # 入口
app/
config.py # 数据类与默认参数
matting.py # 色度抠图算法(numpy)
video.py # 视频读取封装(OpenCV)
encoder.py # GIF/WEBP/APNG 编码(Pillow)
pipeline.py # 单视频转换流程
worker.py # 批量转换工作线程(QThread)
preview.py # 预览控件(棋盘格 + 取样)
main_window.py # 主窗口
- 素材需为纯色背景(色度抠图原理),复杂背景请使用绿幕或自行预处理
- 长视频 + 高分辨率 + 全帧率会占用较多内存;可使用「抽帧」降低帧数与体积
- OpenCV 对部分 webm/vp9 封装支持不佳,若打不开请转码为 mp4