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

4.0 KiB
Raw Blame History

Video Edit Planner 视频剪辑规划助手

一个 agent skill,通过迭代式对话帮助规划视频剪辑——转录音频、按需提取关键帧、分析画面内容,最终生成结构化的剪辑规划。

仓库地址: https://git.nite07.com/nite/video-edit-planner-skill

功能特性

  • 音频转录 — 内置 funasr-script,支持 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 ffmpegmacOS: brew install ffmpegWindows: winget install Gyan.FFmpeg
uv Linux: pacman -S uvmacOS: brew install uvWindows: winget install astral-sh.uv;备用: pip install uv
python3 Linux: pacman -S pythonmacOS: brew install pythonWindows: winget install Python.Python.3

安装 skill

将本仓库克隆到你的 agent 的 skills 目录。以 Hermes Agent 为例:

git clone mygit:nite/video-edit-planner-skill.git ~/.hermes/skills/media/video-edit-planner

首次使用

转录脚本需要一次性依赖安装:

cd ~/.hermes/skills/media/video-edit-planner/scripts/transcription && uv sync

这会创建一个隔离的 venv,包含 funasrtorchtorchaudio。如果你之前通过 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