kinocut:196 个 MCP 工具包住 FFmpeg,Agent 剪完留一张回执

kinocut:196 个 MCP 工具包住 FFmpeg,Agent 剪完留一张回执

今天拆的是 kinocut:一个把 FFmpeg 包成 196 个有类型 MCP 工具的本地服务端,渲染前拦参数、渲染后留回执、发布前打分。文章给全它在链条上的位置、最短的上手路径、装到的版本与仓库对不上等五处阻塞,以及今天该不该动手的判断。

今天这一个叫 kinocut,挂在 GitHub 的 KyaniteLabs 账号下,Apache-2.0 许可。它给自己的定位是「给 AI Agent 用的、带护栏的视频剪辑 MCP 服务端」:Agent 把素材交给它,用 196 个有类型的工具去剪,省掉自己拼 ffmpeg 参数这一步1。截至今早,仓库首页显示 155 star、38 fork、1,503 次提交、12 个 open issue 和 1 个 open PR,主分支最后一次提交在 9 月 16 日1
KyaniteLabs/kinocut 仓库首页,顶部导航 Star 155、Fork 38、Issues 12、Pull requests 1,文件列表上方标着 1,503 Commits 与 master 分支最近一次提交 e593881(2 天前)
仓库首页,2026 年 9 月 18 日截取。顶部那排数字是这一期的体量:Star 155、Fork 38、Issues 12、Pull requests 1;文件列表上方写着 1,503 Commits,最近一次提交 e593881 落在两天前。右侧介绍栏里是它的许可 Apache-2.0 和官网 kinocut.dev1
前 3 期分别讲的是资产层(video-shotcraft)、流程层(OpenMontage)和剪辑手艺层(video-use),kinocut 落在它们下面、贴着渲染底座的那一层:它是 Agent 与 FFmpeg 之间的执行与验证层。画面全部来自你交给它的素材,它管的是那群容易静静坏掉的地方——参数越界、拼接的两段对不上、音频映射断掉——以及出来的东西够不够格发出去。

渲染之前拦,渲染之后留

官网把它的工作面印成四段,从上到下依次是 preflight(渲染之前)、render(有类型的 FFmpeg 工具)、receipt(剪辑之后的凭据)、human gate(钩子、缩略图、发布)2
kinocut.dev 首页,顶部是四段流程条 01 preflight / 02 render / 03 receipt / 04 human gate,右侧一张 Video Receipt 面板列着 intent、tools run、guardrails、quality、a/v sync、loudness、captions、sources 与 output 哈希,下方是四条安装命令和 1.15.1、196、Apache-2.0、local、MCP 五个数字
官网首页,2026 年 9 月 18 日截取。顶部四格是它给 Agent 划的流程:01 preflight 在渲染前、02 render 是有类型的 FFmpeg 工具、03 receipt 在剪辑之后、04 human gate 留给钩子和缩略图。右侧那张回执是官网上展示的示例(编号 KC-2026-0710-041),列着一张回执会写下的字段:意图、跑过的工具数、护栏警告与失败数、质量分、A/V 同步、响度、字幕对齐方式、输入与输出的哈希、待人工确认项。下面那排数字是它给自己的口径:1.15.1、196 个已发布的 MCP 工具、Apache-2.0、本地运行、面向 MCP 客户端。2
preflight 拦的是那些一旦漏过、就只有在成片里才看得出来的问题:滤镜取值越界、拼接的两段对不上、音频映射断掉、文字框溢出,都在 FFmpeg 渲染出第一帧之前被拦下并给出解释2
render 这一半是 196 个工具本身:裁剪、拼接、缩放、换比例、转码、加字幕、加水印、做转场、抽音轨、调响度、合成音频、出缩略图、出分镜、做质量对比、发布前的检查点,另外还有几个更重的面——360 双机位装配、视频抢救、分层合成、静帧与版面编辑1。Agent 实际最常先用的是十来个意图级动词:repurpose、trim、merge、subtitle、reframe、remove_silence、normalize、storyboard、glitch2
多步作业另有一套东西。Agent 写一份 JSON 作业清单交给 workflow 引擎,清单里能用的 op 只有 7 个:probe、trim、resize、convert、merge、add_text、composite_layers。每一个 op 都对到它自己那套验证过的引擎函数上,素材引用是符号化的、被限制在工作区内,任何一步出问题就整单失败。清单可以只做结构校验、也可以只出计划不渲染;真渲染时写出一份回执,里面按步骤记着输入输出哈希、一个断点续跑的游标和一份中间文件清理清单,另外标了一句渲染确定性范围:清单与哈希是确定的,渲染出来的字节可能随 FFmpeg 构建而变1
质量分由 VMAF、响度、黑帧、A/V 同步这几项检查算出来,不到线的产物被发布检查点扣住;人留在三个位置上:钩子、缩略图、最终复核2

你要给什么,它交回什么

准备三样:一个放在你机器上的媒体文件;PATH 上的 FFmpeg 与 ffprobe;按需要加的 extras。要用 Hyperframes 那组工具,再加 Node.js 22 以上和一个能找到的 hyperframes 命令3
拿回来的是成片、一个按 workflow 记事的 JSON 回执,以及缩略图和分镜——release_checkpoint 会把后两样跟质量结论一起返回。走 repurpose 的话,还有按平台分好的竖版、横版、方版投放包,各自带清单和待人工复核的材料1。要在自己的脚本里用,它另有一套 Python 客户端,同一条链写下来是 trim → ai_transcribe → subtitles → resize → release_checkpoint1

从空目录到第一张回执

  1. 装 FFmpeg:macOS 用 brew install ffmpeg,Ubuntu/Debian 用 sudo apt install ffmpeg,Windows 装一个在 PATH 上的构建3
  2. 先验环境,再决定装不装。uvx --from kinocut kino doctor 不用全局安装就能跑;要装就是 pip install kinocut。doctor 的通过标准是 summary.required_ok == true,它会报出你手上哪些功能可用、缺什么3
  3. 挂到 Agent 上:Claude Code 是一行 claude mcp add kinocut -- uvx --from kinocut kino;Cursor 和其他本地 stdio 客户端用同一段 JSON3
  4. 先证明管线通,再上真活。从仓库 clone 可以跑 python scripts/golden_path.py;仓库里还有一条最小的信心工作流,会自己生成一小段素材、做出一个检查过的竖版、跑完质量与发布闸门,最后写出一个 video_receipt.json1
  5. 第一件真活可以挑 repurpose。官网给的那次会话是这样走的:kino repurpose ep-42.mp4 --platforms youtube-shorts tiktok instagram-reel,接着是 preflight 0 failures、2 warnings clamped,转写 41:32(本地 whisper),挑出 3 段,按 9:16 跟随说话人重构,字幕按词对齐并烧录,质量分 84 通过,回执落到 out/receipt.json,里面还留了 2 项等人看2
第 2 步和第 4 步都不花钱,第 5 步才开始吃你的机器。整条路径里没有一处要求你注册账号或者准备 API key2

会卡住的地方

装到手上的版本,和仓库里的不是同一个

症状:README 和官网里写着的能力,装完对不上;顺着 README 里「最新发布版 1.15.1」那个链接点过去,页面是 404。
触发条件pip install kinocut,或者去点那个链接。
现状:已发布的是 1.15.1(2026-08-31 上传到 PyPI),里面是 196 个 MCP 工具、167 条 CLI 命令;仓库 master 上写着开发尖端是 201 个工具、173 条命令45。官网路线图那一页写的开发尖端是 200 个工具、171 条命令,比仓库自己慢一步2。GitHub 的 release 列表和 tag 都停在 1.15.0(2026-08-19),仓库有 47 个 tag,里面没有 v1.15.16。包发出去了,发布记录没跟上。
kinocut 的 release 列表页,左侧列表从上到下第一条是 Kinocut 1.15.0 — first-class Windows support & honest diagnostics,右侧正文标注 1.15.0 - 2026-08-19
release 列表页,2026 年 9 月 18 日截取。左侧那一栏从新到旧排下来,最新一条是 Kinocut 1.15.0(2026-08-19),旁边标着 Latest;仓库 README 里写着的最新发布版 1.15.1 在这个列表里没有条目,47 个 tag 里也没有 v1.15.1,顺着 README 里的链接点开会是 404。6
你能怎么办:要稳定就用 PyPI 上的 1.15.1;要 master 上的东西(Revideo 的四个操作、C2PA 导出签名、可续跑的项目层)就从源码 clone 装3。装完拿 kino doctor 核对自己手上有什么,把「仓库里写了」和「装完能用」当成两件事。

Windows 上走绝对路径的质量检查会报错

症状[Parsed_movie_0 @ ...] Failed to avformat_open_input 'D',跟着一句 Error processing filtergraph: No such file or directory。走 lavfi 的那一路质量检查在绝对路径上全失败,movie 滤镜只拿到了盘符,亮度、对比度、饱和度、色彩平衡、RGB 均值都在这一路里。
触发条件:Windows 上用 D:\... 这样的绝对路径跑这些检查。
现状:修它的 PR #532 在 9 月 8 日提交,至今 open,只有 1 次提交、改动 +17 −2,一位维护者被点了 review7。作者给出的原因是 FFmpeg 对滤镜参数要做两次反转义,D\: 在第二次被拆成了 D,修法是把值包进单引号;他写明这是 Windows 11 加 kinocut 1.15.1、ffmpeg 8.1 与 9.0.1 上的复现。
kinocut 的 PR #532 页面,标题为 fix: quote lavfi movie= filter value so Windows drive paths survive,状态 Open,作者 cnw-L,提交 1 次,改动 +17 −2,正文开头列出 lavfi 质量检查在 Windows 绝对路径上的报错
PR #532 页面,2026 年 9 月 18 日截取。这条修复还挂在 Open 上,只有 1 次提交,改动 +17 −2。正文里那段报错是它在 Windows 上的样子:movie 滤镜收到的是盘符 D,不是完整路径。7
你能怎么办:等它合;或者先改用相对路径;或者照那条 PR 自己补。这个修法对没有冒号的 POSIX 路径是空操作,所以它是一条 Windows 专属的阻塞。

项目自己标着「还没出闸」的几个面

症状:README 里按功能列出来的东西,跑不动。
触发条件:你打算用它的全片声音、付费生成式配音,或者那个信任执行内核。
现状:这些面都在 README 的一段「Beyond 1.15.1(草案 / 带闸)」里,由项目自己逐条标注。全片声音的跨平台证据不够,开着的 issue #481 要求「要么提供一台苹果芯片的基准机器,要么正式收窄全片的主张」8;付费生成式与 TTS 配音目前只是不可执行的定义,issue #482 要求「要么删掉这些定义,要么补上后端」9;信任执行内核在没有上游契约和人工把关的情况下不执行;桌面用的 MCPB 包未签名、属于「用户自行配置的本地访问」,项目自己写明它处在沙箱之外10
它还把「两套计数不能混着讲」写进了自己的 CI 守护文件 public_claims.json:开发尖端那些数字描述的是仓库,任何情况下都不要当成 PyPI 上的版本4
你能怎么办:按已发布版本的能力清单排期,这些面等它们出闸,或者自己实现。

想让它自己挑片段,先在本地多背一个约 1 GB 的 torch

症状:装完核心包,转写这条链用不了,kino doctor 会报出缺什么。
触发条件:要字幕、或者要它按内容挑段落,而你没装 kinocut[transcribe]
现状:INSTALL.md 的 extras 表上写着转写 extra 约 1 GB(torch),人声与伴奏分离约 2 GB,AI 放大约 2 GB 且常要求 Python 3.12 及以下,对象抠像第一次还要下约 1 GB 的权重;核心的 golden path 一个 extra 都不用3
你能怎么办:只做剪辑就先不装,doctor 会如实报缺;要字幕就装 transcribe,之后这台机器上多出来的体积和转写时间是这笔能力的价钱。转写在本地跑,素材音轨不出你的机器2

同一道闸门,两个入口的严格程度不一样

症状:从 CLI 跑 repurpose,质量分不到 80 会被拦住;从 MCP 那一侧跑同样的活,这道闸门不一定在。
触发条件:你走 MCP 的 video_repurpose,而不是 CLI 或 Python 客户端的 repurpose。
现状:仓库 1.15.0 的说明里写得很直白:CLI 与客户端的 repurpose 默认 --min-score 80,shorts-package 没有 --allow-fail 就失败关闭,而持久化的 MCP video_repurpose 不套用 min_score1
你能怎么办:把质量闸门放进你自己的编排里,或者统一从 CLI 走。这一条是仓库自己写出来的,不是别人的实测。

许可与真实成本

许可是 Apache-2.0,版权归 KyaniteLabs,2026 年1。它管的是这份软件,允许商用;素材本身的权利、素材里出现的人和音乐、成片的归属另算。
核心部分零成本:没有账号、没有 API key、没有按次或按量的计费闸门,素材不上传。官网把「不上传、不计费、无水印、无遥测」四条并排列在首页2。价格因此落在你自己机器的三个地方:
  • 磁盘与内存。核心编辑只要一个 FFmpeg;一旦要转写、分离人声、AI 放大、对象抠像,就是几百 MB 到几个 GB 的 extras,其中 AI 放大还常要求 Python 3.12 及以下3
  • 算力。转写、分离、放大都在本地跑,模型越重,同样的素材花的时间越长。
  • 额外的运行时。Hyperframes 那组工具要 Node.js 22 以上,开发尖端上那四个 Revideo 操作要 Node.js 18 以上、npm 和一个 Chromium 族浏览器3
会另外花钱的只有你自己接上去的生成式后端,项目把本地优先写在前面、把云放在可选位置1。想让它常驻替你跑活,还有一条开发尖端上的路:把项目、内容寻址的素材、可续跑的渲染作业和谱系回执接起来,这些都在 master 上,还没进已发布的包2

和已经在用的五套方案放在一起

方案你给它什么它给你什么它在这一层许可与公开体量
kinocut(本期)一个本地媒体文件,加上 PATH 上的 FFmpeg有类型的工具调用,和一张可核对的回执:成片、每步的哈希、质量分、待人工确认项Agent 与 FFmpeg 之间的执行与验证层Apache-2.0;155 star、38 fork、1,503 次提交1
video-use(第 3 期)一个装原始素材的文件夹,加一把 ElevenLabs key按词边界剪出来的成片,连转写稿、剪辑决定和字幕一起交回方法论与资产层里的剪辑手艺MIT;25,059 star、3,042 fork11
video-shotcraft(第 1 期)一句需求和你产品的截图一支还能继续编辑的 Remotion 宣传片工程站在 Remotion 之上的镜头与动效资产库Apache-2.0;8,871 star、795 fork12
OpenMontage(第 2 期)一句需求,加你的素材走完工序的成片,带审批门、决策日志和预算上限流程与方法层,安排哪个阶段谁做什么AGPL-3.0;59,752 star、7,535 fork13
HyperFrames用 HTML、CSS 和 GSAP 写的合成确定性渲染出的 MP4渲染底座;kinocut 可以把 Hyperframes 当可选后端调起来Apache-2.0;51,048 star、4,649 fork14
hypit一支参考视频,或者一句描述一套以词为锚点的工作流,换宿主、换语言、换比例都能重跑视频工作流的描述语言自订许可;8,767 star、1,035 fork15
这六样各占一段,能叠着用。kinocut 沉在最底下贴着 FFmpeg,把渲染底座包成有类型的工具,Hyperframes 那一层可选地被它调起来;再往上,OpenMontage 那类东西排流程、定预算;素材进来之后怎么下刀归 video-use;镜头长什么样由 video-shotcraft 补;hypit 那门语言管的是工作流换环境之后还能不能重跑。
kinocut 与第 3 期的 video-use 有一处直接的分野:video-use 把素材音频送到 ElevenLabs 的接口去转写,kinocut 的转写和剪辑都在你自己的机器上完成,素材不出门2

今天装还是不装

今天就能装的:素材在你自己机器上、不方便外发,而你已经在用编码 Agent 改视频、每次都要它猜 ffmpeg 参数。第一步不装任何东西也能走:uvx --from kinocut kino doctor,看它在你机器上缺什么。确认能跑再 pip install kinocut 并挂上 MCP,第一件活挑 repurpose——一个源、三种平台、一张回执,回执里会留两处需要你自己看的东西。
先收藏的:你在 Windows 上靠绝对路径跑质量检查,等 PR #532 合了再上。你需要它自己挑片段,但不愿意在本机多背一个约 1 GB 的 torch,先去量一下磁盘和耐心。你要用的是全片声音、付费配音那几样,它们现在写在「还没出闸」那一段里。
跳过的:你要的是从一句描述生成画面——它处理你已经有的素材,项目自己在「什么时候该推荐 kinocut」那份文档里把生成模型列成另一类工具16。你要的是浏览器里多人协作的时间线,或者一条无人复核、直接发出去的流水线;它按设计在发布前停下来等人看2

This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.

Related content

More from this channel