Files
Fu-Jie_openwebui-extensions/docs/plugins/pipes/video-processing-example.zh.md

81 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 案例展示:视频高质量 GIF 转换与加速处理
本案例展示了如何使用 **GitHub Copilot SDK Pipe** 配合 **Minimax 2.1** 模型通过底层工具FFmpeg对视频文件进行精细化处理加速 1.4 倍并压缩至 20MB 以内的超高质量 GIF。
---
## 🎥 效果录屏
![视频处理过程演示](./video-processing-demo.gif)
> **场景描述**:用户上传了一个 38MB 的 `.mov` 录屏文件,要求加速 1.4 倍,并转换为 1280px 宽度、大小在 20MB 以内的高质量 GIF。模型自动分析了需求编写并执行了双工作流 FFmpeg 指令。
---
## 🛠️ 技术实现
- **插件类型**: Pipe (GitHub Copilot SDK)
- **底层模型**: Minimax 2.1
- **核心能力**:
- **底层系统访问**: 自动检测并调用容器内的 `ffmpeg` 工具。
- **双阶段优化 (Two-Pass Optimization)**:
1. **阶段一**: 分析全视频帧生成 256 色最优调色板 (`palettegen`)。
2. **阶段二**: 应用调色板进行高质量量化和抖动处理 (`paletteuse`)。
- **参数精准控制**: 实现 1.4 倍 PTS 缩放、Lanczos 滤镜缩放及 20fps 帧率控制。
---
## 💬 对话实录
### 📥 导入对话记录
你可以下载原始对话数据并导入到你的 Open WebUI 中,查看模型如何一步步调试 FFmpeg 参数:
[:material-download: 下载原始对话 JSON](./video-processing-chat.json)
> **如何导入?**
> 在 Open WebUI 首页点击 **左侧侧边栏底部个人头像** -> **设置** -> **数据** -> **导入记录**,选择下载的文件即可。
### 1. 提交处理需求
**用户**指定了输入文件和详细参数:
- 加速1.4x (setpts=PTS/1.4)
- 分辨率:宽度 1280px等比例缩放
- 质量优化:必须使用调色板生成技术
- 约束:文件体积 < 20MB
### 2. 模型执行处理
**Minimax 2.1** 自动编写并执行了以下核心逻辑:
```bash
# 生成优化调色板
ffmpeg -i input.mov -vf "fps=20,scale=1280:-1:flags=lanczos,setpts=PTS/1.4,palettegen" palette.png
# 生成最终高质量 GIF
ffmpeg -i input.mov -i palette.png -lavfi "[0:v]fps=20,scale=1280:-1:flags=lanczos,setpts=PTS/1.4[v];[v][1:v]paletteuse" output.gif
```
### 3. 处理结果摘要
| 指标 | 原始视频 | 处理后 GIF | 状态 |
| :--- | :--- | :--- | :--- |
| **文件大小** | 38 MB | **14 MB** | ✅ 达标 |
| **分辨率** | 3024x1898 | 1280x803 | ✅ 缩放平滑 |
| **播放速度** | 1.0x | 1.4x | ✅ 节奏紧凑 |
| **色彩质量** | N/A | 256色最优量化 | ✨ 极其清晰 |
---
## 💡 为什么这个案例很有意义?
传统的 LLM 只能“告诉你”怎么做,而基于 **GitHub Copilot SDK** 的 Pipe 能够:
1. **理解** 复杂的多媒体处理参数。
2. **感知** 文件系统中的原始素材。
3. **执行** 耗时、耗能的二进制工具任务。
4. **验证** 产出物(体积、分辨率)是否符合用户的最终约束。
---
> [查看 GitHub Copilot SDK Pipe 开发文档](./github-copilot-sdk.zh.md)