Files
video-edit-planner-skill/README.zh.md
T

92 lines
4.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.
# Video Edit Planner 视频剪辑规划助手
一个 agent skill,通过迭代式对话帮助规划视频剪辑——转录音频、按需提取关键帧、分析画面内容,最终生成结构化的剪辑规划。
**仓库地址**: https://git.nite07.com/nite/video-edit-planner-skill
## 功能特性
- **音频转录** — 内置 [funasr-script](https://github.com/modelscope/FunASR),支持 Fun-ASR-Nano(高质量,中文优化)和 SenseVoice(快速预览)两种模型
- **按需抽帧** — 基于 ffmpeg 的片段剪辑(`-c copy`)+ 场景变化检测 + 均匀采样,优先使用硬件加速(CUDA/NVDEC)
- **产物索引** — SQLite 数据库记录所有转录、剪辑片段和帧图片,避免跨会话重复处理
- **视觉分析指引** — 二分查找式帧采样策略;兼容 agent 运行时提供的任何视觉模型
- **迭代式剪辑规划** — Markdown 表格输出(时间码、片段描述、操作建议、转场方式、备注),支持追问细化
- **Agent 无关** — 不包含任何平台特定工具名;兼容任何 agent 框架(Hermes、Claude Code、Codex 等)
## 快速开始
### 前置依赖
| 依赖 | 安装方式 |
|---|---|
| `ffmpeg` + `ffprobe` | Linux: `pacman -S ffmpeg` / `apt install ffmpeg`macOS: `brew install ffmpeg`Windows: `winget install Gyan.FFmpeg` |
| `uv` | Linux: `pacman -S uv`macOS: `brew install uv`Windows: `winget install astral-sh.uv`;备用: `pip install uv` |
| `python3` | Linux: `pacman -S python`macOS: `brew install python`Windows: `winget install Python.Python.3` |
### 安装 skill
将本仓库克隆到你的 agent 的 skills 目录。以 Hermes Agent 为例:
```bash
git clone mygit:nite/video-edit-planner-skill.git ~/.hermes/skills/media/video-edit-planner
```
### 首次使用
转录脚本需要一次性依赖安装:
```bash
cd ~/.hermes/skills/media/video-edit-planner/scripts/transcription && uv sync
```
这会创建一个隔离的 venv,包含 `funasr``torch``torchaudio`。如果你之前通过 uv 安装过这些包,缓存会被复用——首次成本仅为链接步骤。
## 工作流程
```
1. 检查依赖(ffmpeg、uv、python3
2. 收集输入(视频路径 + 音轨索引)
3. 询问剪辑需求
4. 转录音频(如索引中已有缓存则跳过)
5. 按需提取片段和帧(agent 自主判断转录稿是否足够)
6. 用视觉模型分析帧(二分查找式采样)
7. 生成 Markdown 表格剪辑规划 + 总体建议
8. 迭代——用户追问,规划逐步细化
```
## 目录结构
```
video-edit-planner/
├── SKILL.md # Skill 定义(工作流程、指引、注意事项)
├── README.md # 英文说明
├── README.zh.md # 本文件(中文)
├── scripts/
│ ├── transcription/ # 内置 funasr-script(自包含 uv 项目)
│ │ ├── pyproject.toml
│ │ ├── uv.lock
│ │ ├── funasr_common.py # 共享:ffprobe、音频提取、模型运行
│ │ ├── funasr_nano.py # Fun-ASR-Nano 入口(高质量)
│ │ ├── funasr_fast.py # SenseVoice 入口(快速预览)
│ │ └── funasr_regular.py # Paraformer 入口(对比用)
│ ├── frames/
│ │ └── extract_frames.py # 片段提取 + 抽帧(ffmpeg 封装)
│ └── index/
│ └── manage_index.py # SQLite 索引管理(8 个子命令)
└── references/
└── frame-extraction-guide.md # 视觉模型 token 成本、分辨率/批次指引
```
## 索引数据库
所有处理产物记录在 SQLite 数据库(`<视频文件名>.vedit.db`)中,存放在视频文件同目录:
- **transcription** — JSON 路径、音轨索引、时长
- **clips** — 起止时间、文件路径、提取原因
- **frames** — 时间戳、文件路径、场景分数、提取方法
这避免了跨会话对同一视频重复转录或重复抽帧。
## 许可证
MIT