ffmpeg-agent:用自然语言剪视频的 AI 工具设计

一句话总结

给 ffmpeg 套一层自然语言接口,让"剪掉前30秒"直接变成正确的 ffmpeg 命令并执行。

为什么做这个?

ffmpeg 是视频/音频处理的瑞士军刀,几乎所有视频工具的底层都在用它。但它的命令行语法对普通人来说是噩梦:


# 你想做的事:把视频的第1分钟到第3分钟剪出来,加个淡入淡出
# 你要写的命令:
ffmpeg -ss 60 -to 180 -i input.mp4 -vf "fade=t=in:st=0:d=1,fade=t=out:st=119:d=1" -c:a aac output.mp4

400+ 个参数,参数顺序影响行为(-ss 放在 -i 前后效果不同),编码器/容器兼容性要记,硬件加速的 flag 各平台不一样……

核心想法:LLM 已经非常熟悉 ffmpeg 的参数语法了,让它当翻译器,用户说人话,agent 出命令。

两条产品路线

路线 A:Agent Skill(我们选的)

把自然语言→ffmpeg 的能力做成 AI agent 的一个技能模块。

优点

局限

路线 B:独立产品

多轮对话 + 实时预览的视频编辑工具。

优点

挑战

我们的策略:先做 Skill,跑起来用着,积累哪些指令最常用、哪里容易出错的经验,再决定要不要做独立产品。

架构设计


用户输入(自然语言)
    ↓
[1] 意图解析 — 理解操作类型(剪切/合并/压缩/...)
    ↓
[2] 文件探测 — ffprobe 获取元数据(时长、编码、分辨率)
    ↓
[3] 命令生成 — 根据意图 + 元数据 + 平台生成 ffmpeg 命令
    ↓
[4] 确认执行 — 展示命令,等用户确认(dry-run 模式)
    ↓
[5] 执行 + 监控 — 运行命令,跟踪进度
    ↓
[6] 结果验证 — ffprobe 输出文件,确认符合预期

核心原则

原则说明
**先探测再操作**不猜参数,用 ffprobe 读文件元数据
**先展示再执行**默认 dry-run,防止翻车
**优先无损**能 `-c copy`(stream copy)就不重编码
**硬件加速**Mac 用 VideoToolbox,NVIDIA 用 NVENC,自动检测
**不覆盖原文件**输出到新文件,命名规则:`input_trimmed.mp4`

支持的指令(50+ 条)

✂️ 剪切

🔗 合并

📦 压缩 / 转码

🖥️ 分辨率 / 画面

🎵 音频

⏩ 速度

🖼️ 截图 / GIF

✨ 特效

📝 字幕

ℹ️ 信息

组合指令也支持:"把这个视频压缩到720p然后剪掉前10秒"

技术细节

硬件加速自动检测


# Mac (M-series) — 5-10x faster than CPU
ffmpeg -i input.mp4 -c:v hevc_videotoolbox -q:v 60 -c:a aac output.mp4

# NVIDIA GPU
ffmpeg -i input.mp4 -c:v h264_nvenc -preset p4 -c:a aac output.mp4

# CPU fallback
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac output.mp4

平台码率参考

平台最大码率推荐分辨率
B站24 Mbps15-20 Mbps4K/1080p
YouTube85 Mbps35-45 Mbps4K
Twitter/X25 Mbps5-8 Mbps1080p
微信20 MB 文件限制2-4 Mbps720p
Discord25 MB (免费)CRF 28720p

CRF 质量对照

CRF 值质量适用场景
18肉眼无损母版保存
23默认通用
28不错上传/分享(体积减半)
35明显损失预览/草稿

竞品分析

项目形态特点链接
**ai-ffmpeg**Web 应用浏览器内 ffmpeg.wasm + NL[GitHub](https://github.com/woniu9524/ai-ffmpeg)
**AI Video Composer**HuggingFace SpaceHF 官方演示[HuggingFace](https://huggingface.co/spaces/huggingface-projects/ai-video-composer)
**ComfyUI-FFMPEGA**ComfyUI 插件节点化 NL→ffmpeg[YouTube 演示](https://www.youtube.com/watch?v=UV2jBzSyb-k)
**FFmpeg-MCP**MCP ServerAI agent tool call 封装[介绍](https://fast.io/resources/best-mcp-servers-video-processing/)
**ffmpeg-api.com**SaaS API商业服务,按调用收费[官网](https://ffmpeg-api.com/docs/ai-processing)
**LAVE**学术论文LangChain + ChromaDB + ffmpeg[arXiv](https://arxiv.org/html/2402.10294v1)
**VideoAgent**学术框架理解+编辑+重制[GitHub](https://github.com/HKUDS/VideoAgent)

竞品观察

我们的差异化

1. Agent Skill 而非独立应用 — 嵌入 AI agent 工作流,天然有文件系统+对话+多模态

2. 场景化经验 — 足球剪辑(音频峰值检测)、播客处理(Babel)、B站上传压缩

3. 硬件感知 — 自动检测平台,Mac 用 VideoToolbox,GPU 用 NVENC

4. 平台适配 — 内置各平台(B站/YouTube/微信/Discord)的码率和格式建议

未来方向

近期(用着再说)

中期(有需求再做)

远期(验证后考虑)

文件结构


skills/ffmpeg-agent/
├── SKILL.md                        — Agent 工作流 + 命令模板 + 错误处理
├── scripts/probe.sh                — 媒体文件快速探测脚本
└── references/
    ├── user-guide.md               — 用户指令手册(50+ 条)
    └── common-patterns.md          — NL→意图映射 + 编码参考表

源码:github.com/xiaojay/tony skills/ffmpeg-agent/