一个基于 Web 的图片转滚动视频工具,可以将多张图片自动拼接成平滑滚动的长卷轴视频。
- 现代化 UI:基于 Bootstrap 5 的简洁响应式界面
- 拖拽上传:支持拖拽文件夹或多个文件
- 自动计算:根据图片尺寸自动计算滚动距离和速度
- 实时进度:显示生成进度条和状态更新
- 历史记录:查看和下载之前生成的视频
- 自动计算:总滚动距离由图片尺寸自动计算
- 可调参数:
- 视频时长(10-300 秒)
- 帧率(15-60 FPS)
- 分辨率(720p/1080p/1440p/4K)
- 智能缩放:图片自动缩放到目标高度,保持宽高比
- 平滑滚动:根据总距离和时长自动计算滚动速度
- 输入:JPG、JPEG、PNG、WebP、BMP
- 输出:MP4(H.264 编码)
- Python 3.7 或更高版本
- pip(Python 包管理器)
- 克隆项目
git clone https://github.com/yourusername/kngzguiji.git
cd kngzguiji- 安装依赖
pip install -r requirements.txt- 启动应用
# Windows 双击运行
start.bat
# 或手动启动
python api_server.py- 打开浏览器
访问
frontend/index.html,应用会自动打开。
- 点击"选择文件夹"或拖拽图片
- 系统会自动根据图片尺寸计算总滚动距离
- 视频时长:设置视频长度(秒)
- 帧率:选择帧率(越高越流畅,文件越大)
- 分辨率:选择输出分辨率
- 点击"生成视频"按钮
- 观看进度条直到完成
- 生成完成后点击下载按钮
滚动速度会自动计算,确保所有图片完整显示:
滚动速度 = 总图片宽度 / 视频时长
其中总宽度是所有图片缩放到目标分辨率后的宽度之和。
kngzguiji/
├── api_server.py # Flask 后端 API
├── scroll_video_generator.py # 独立生成器脚本
├── requirements.txt # Python 依赖
├── start.bat # Windows 启动器
├── README.md # 项目说明
├── frontend/ # 前端文件
│ ├── index.html # 主页面
│ ├── css/
│ │ └── style.css # 样式文件
│ └── js/
│ └── app.js # 前端逻辑
├── uploads/ # 临时文件存储
└── output/ # 生成视频输出目录
| 接口 | 方法 | 描述 |
|---|---|---|
/api/health |
GET | 健康检查 |
/api/tasks |
POST | 创建任务 |
/api/tasks |
GET | 获取任务列表 |
/api/tasks/{id} |
GET | 获取任务详情 |
/api/tasks/{id}/output |
GET | 下载视频 |
/api/tasks/{id} |
DELETE | 删除任务 |
- Flask:轻量级 Web 框架
- Pillow:图像处理
- MoviePy:视频生成
- Flask-CORS:跨域支持
- Bootstrap 5:UI 框架
- 原生 JavaScript:无框架依赖
- Fetch API:HTTP 请求
前端 UI 可修改默认设置:
| 参数 | 默认值 | 范围 |
|---|---|---|
| 视频时长 | 60秒 | 10-300秒 |
| 帧率 | 30 FPS | 15-60 FPS |
| 分辨率 | 1920x1080 | 多种选项 |
Q: 视频生成很慢 A: 减少图片数量或降低分辨率。4K 视频需要更长的处理时间。
Q: 图片变形 A: 应用会将图片缩放到目标高度并保持宽高比。如需最佳效果,请使用高度相近的图片。
Q: 端口 5000 被占用 A: start.bat 会尝试释放该端口,或手动关闭占用该端口的进程。
MIT 许可证 - 可免费用于个人或商业项目。
欢迎提交问题或 Pull Request!