人工点收敛为四件:粗剪力度(前期拍板 margin=0.45)· 细剪确认(可选)· 编排确认 · 终审发布。
静音剪=auto-editor(物理)· 语义剪=OCC(吃千问转录)· 串联=pipeline/episode 总控。③OCC 细剪 W2 实测后定稿。
相机口播,丢进本期目录(画幅=素材原比例)
raw/原始口播.mp4删静音/气口 margin=0.45 默认(先保呼吸感,听感可调 0.3–0.6);视觉无损级重编码
→ roughcut.mp4字级毫秒时间戳(唯一字幕源,OCC 内部转写仅界面用)
→ 字级时间戳 JSON语义剪切(废口/口误/废话);多轨时间轴+文字稿;产物覆盖 roughcut.mp4;废口三档:全删/删半/适中(config 可切)
→ 覆盖 roughcut.mp4对最终剪定片出 SRT(铁律2),平移法+重出保底
→ roughcut.srtSRT→分段脚本→overlay.json,lint=0;编排时放 caption-track 字幕卡 + ChapterBar 进度条卡(烤入成片)
→ overlay.json无头 Chrome 逐帧→ProRes4444 alpha;画幅跟随素材
→ overlay.mov横屏=06 ffmpeg;竖屏/OCC 版=OCC 合成;响度 -14LUFS & ≤-1dBTP;多平台单文件导出
→ final.mp4pipeline/bin/episodeT5 已有v2 扩展中自上而下:人 → 自动化层 → AI 智能层 → 剪辑台层(OCC·v2)→ 剪辑工具层(只读)→ 运行时注入区 → 引擎与素材出口。
拍完把 raw 文件丢进 pipeline/episodes/<期号>/raw/
Studio 里拧旋钮;不喜欢就跳过(--skip 4)
看 final.mp4 点头;粗剪力度/SRT 质量/动效审美在 P1 基线拍板
pipeline/自动化剪辑我们的地盘 · 全部新代码只在这里(另一个窗口正在开发的就是这一层)一期总控:串 ①→⑥、幂等重跑、失败即停、自动更新 STATUS
粗剪脚本:调 auto-editor,强度参数进 config
whisper-cpp 转写 SRT(中文参数)
编排 JSON 体检把关:lint error=0 才进下一步
导出前自检「JSON 引用清单 ⊆ 注入清单」缺一拒导 → 生成 job.json → 直驱 export-frames → 成片后自动清理 PNG 中间产物
ffmpeg overlay + amix 三轨混音 + 时长对齐校验 + ffprobe 终检
外置启动器:curl 探活 5177 → 起 dev server → 开浏览器(替代作者写死他电脑路径的那个)
引擎二进制直接放在 bin/ 下(80MB×2)
fps 29.97 · 画幅 1920×1080 · 粗剪参数 · whisper 模型/中文 · 混音音量比 · 各路径
每期素材与全部产物落点(见图 D);ep01/raw 已建,p0test 注入通道已验证
思源黑体 400/700/900 · whisper 模型 large-v3-turbo-q5_0 · P0 导出测试 job
每次收工回写:当前阶段 / 待办 / 关键决定 / 遗留
OpenChatCut剪辑台v2 开发中本地优先对话式 AI 剪辑 · 零分叉(MCP+文件接口) · 副本在 supVD 外粗剪后细剪/精剪/调节奏;支持手动微调 + 撤重做
按千问转录定剪切点;废口/口误/废话;MCP 驱动 + 界面手动
叠透明层合成(横屏或竖屏画布 set_aspect_ratio);无头/MCP 自动化
产出覆盖 roughcut.mp4(备份 roughcut.silence.mp4);字幕只作为界面参考,不流入链路
读 SRT → 语义分段(论点+英文标签+主色)→ 配卡出编排 JSON;卡片清单从 registry 自动生成
整目录复制到 supVD/.claude/skills/(作者目录不动)→ 路径改写为绝对路径 + 补建《经验规则.md》+ 偏好表初稿
开工读每期 STATUS.md → 出 JSON → lint error=0 才交付 → 收工回写 STATUS;偏好 = 我的偏好.default.md + 用户覆盖
overlay-studio-pro-main/铁律 1 · 源码只读剪辑作者的 Overlay Studio Pro,一个字节不动左:动效卡列表 · 中:1920×1080 画布垫真实视频 · 右:参数面板;下方时间轴(App / Canvas / Sidebar / ParamsPanel / TimelineBar / ExportView)
src/effects/ + hud/ 80+ 张动效卡,registry.ts 注册表统一注册;每张卡自带参数 schema;CSS 变量令牌(skin 管配色 / style 管骨架);含 caption-track 双语字幕常驻卡
overlay JSON = { theme, skin, style, font, cards[] };overlay/ 下 types / srt / kindSwap / lint
无头 Chrome 虚拟时间逐帧渲染 → PNG 序列 → ffmpeg 封 ProRes 4444(alpha);job.json 直驱无需开界面;音效已烤入 MOV
编排 JSON 体检器(经验规则机器化);配套 privacy-scan / sync-skill-cards / build-logos(均不在作者仓库跑 sync)
skill 原件(SKILL.md + STATUS 模板 + 偏好默认表);严禁在作者仓库跑 sync:cards
符号链接 → pipeline/episodes/<期号>/。素材解析唯一出路就是 public/——JSON 引用了 public 外路径的画面直接空窗且不报错
Studio 上传媒体 / 导出抽帧缓存,用完即清
PNG 中间产物(≈43MB/s,1 分钟约 2.6GB),成片后必须清掉;导出前脚本自带磁盘预检
粗剪主力:删静音/气口(①),brew arm64 原生
② 转写+字级时间戳(3.5GB 已入 hf-cache);whisper-cpp 路线已废弃,turbo 模型已按用户决定删除(回滚=重下约 2 分钟)
合成、封 MOV、终检——链路的胶水(⑥)
逐帧渲染导出(⑤),路径写进 config.json
■ 已有 □ 待开发 ■ 只读(铁律1) ■ 运行时豁免区
supVD/ ├── overlay-studio-pro-main/ # 作者仓库 · 铁律1 只读 │ ├── motion-playground/ # React+TS+Vite · Studio 本体(dev 端口 5177) │ │ ├── src/components/ # Canvas / Sidebar / ParamsPanel / TimelineBar / TopBar │ │ ├── src/effects/registry.ts # 卡片注册表 —— 卡片清单从这自动生成给 skill │ │ ├── src/effects/hud/ # 80+ 张动效卡(含 CaptionTrack 双语字幕卡) │ │ ├── src/overlay/ # types / srt / kindSwap / lint │ │ ├── scripts/export-frames.mjs# 逐帧导出 → ProRes4444 alpha MOV(job.json 直驱) │ │ ├── scripts/lint-overlay.ts # lint error=0 才交付 │ │ ├── public/ # 素材唯一出口 │ │ │ ├── episodes/ # ★ 符号链接注入区(→ pipeline/episodes) │ │ │ └── _media/ _fxframes/ sfx/ logos/ demo/ │ │ └── exports/ # PNG 中间产物(成片后必须清) │ └── .claude/skills/overlay-fx-generator/ # skill 原件(禁跑 sync:cards) ├── pipeline/ # ★ 我们的地盘 · 全部新代码只在这里 │ ├── STATUS.md # 接力文件(当前:P0 进行中) │ ├── config.json # fps / 画幅 / 粗剪阈值 / whisper / 混音 / 路径 │ ├── bin/ │ │ ├── ffmpeg ffprobe # 自带引擎二进制 │ │ ├── start-studio.command # 外置启动器(探活 5177) │ │ └── episode # ■ 已有:episode <期号> [--force] [--from NN] │ ├── steps/ # ■ 五个步骤脚本全部交付并验收(08-31) │ │ ├── 01_roughcut.sh # ■ 粗剪(auto-editor) │ │ ├── 02_srt.sh # ■ SRT(Qwen3-ASR+对齐器 / turbo 备用) │ │ ├── 04_lint.sh # ■ lint 把关(error=0 闸门) │ │ ├── 05_export.sh # ■ 注入+导出+清理(含 KIND_SFX 音效库15个) │ │ └── 06_composite.sh # ■ 合成+混音+终检 │ ├── episodes/<期号>/ # 每期素材与产物(见图 D) │ │ ├── ep01/raw/ # 已建,等你丢第一期真实口播 │ │ └── p0test/ # P0 注入通道验证已通过 │ └── assets/ │ ├── fonts/ # 思源黑体 400/700/900(软链注入 Studio) │ ├── hf-cache/ # Qwen3-ASR-0.6B + ForcedAligner-0.6B(3.5G) │ └── tests/ # P0 导出测试 job ├── 主路线·口播全自动链路开发计划.md # 总计划(P0–P7 + 执行协议) ├── Overlay 动效生产线|复刻施工图.md# 方法论文档(三层架构 / 十步路线 / 铁律) └── 工具整体结构图.html # 本文件
一条流水线跑下来,每期目录里依次多出这些文件;任一步可单独重跑(幂等:已有产物跳过或 --force 重做)。
| 步骤 | 产物文件 | 生产者 | 状态 |
|---|---|---|---|
| 人工丢入 | raw/原始口播.mp4 | 你 | 每期输入 |
| ① 粗剪 | roughcut.mp4(默认粗剪版,OCC 覆盖后留 roughcut.silence.mp4 备份)+ 时长报告 | auto-editor | 已有·T1 |
| ② 千问转录 | 字级时间戳 JSON(供剪切决策与字幕落定) | Qwen3 系 | 已有·T0 |
| ③ OCC 细剪 | 覆盖 roughcut.mp4(backup roughcut.silence.mp4)+ 剪切决策表 | OCC+Agent | W2 评估中 |
| ④ 字幕落定 | roughcut.srt(平移法/重出法) | 平移/Qwen3 | W3 集成 |
| ③ 编排 | overlay.json(lint error=0) | ZCode + skill | 已有 |
| ④ 微调 | overlay.json(人工改后覆盖,可跳过) | Studio | 已有 |
| ⑤ 导出 | overlay.mov(ProRes4444 alpha · 音效烤入) | export-frames.mjs | 已有 |
| ⑥ 合成 | final.mp4(ffprobe 终检:时长差<1帧、有音轨) | ffmpeg/OCC | 横屏已有·竖屏 v2 |
| 每期状态 | STATUS.md(skill 契约:开工读 / 收工写) | ZCode 会话 | 契约已有 |
执行协议:每阶段验收全绿才进下一阶段;任何未来会话读 STATUS.md 接力开工。
| 阶段 | 内容 | 状态 |
|---|---|---|
| P0 环境就绪 | 全部验收项跑绿(引擎/依赖/dev server/demo lint/导出 alpha/合成/注入通道/字体)——T0 留证 | 完成 |
| P1 基准一期 | 装音效(Mixkit/CC0 → public/sfx,对齐 KIND_SFX 命名);你提供真实口播,人工顺序走一遍 ①→⑥,锁定「对的标准」;三点头:粗剪力度 / SRT 质量 / 动效审美 | 等你:D1 画幅拍板 + 第一期 raw |
| P2 SRT 脚本化 | 02_srt.sh 双引擎;Qwen3+对齐器字级时间戳验证通过(0.00 开口/36.72 结尾/单调),正式 ±0.3s 终验留待 P1 真人口播 | 完成 |
| P3 粗剪脚本化 | 01_roughcut.sh;直出编码逐项比对一致,备选方案留有自动降级钩子 | 完成 |
| P4 编排接入 | skill 副本+三件手术完成,lint 闸门 exit 1 实测有效;偏好表待用户点头 | 完成 |
| P5 导出+合成全自动 | 05/06 交付并验收;E2E 联跑实测 1092 帧导出/0.0 帧差/音效烤入/自动清理 | 完成 |
| P6 一键总控 | bin/episode 已落地并实测(①→②→③门口提示→④⑤⑥ 全通);bash 3.2 兼容 | 完成 |
| P8 质检门+响度+体验件 | 06 增强:loudnorm 目标 -14LUFS / true peak ≤-1dBTP + 黑帧/冻结帧检测 + 码率窗断言;macOS 完成通知 · 期目录归档 · pipeline 纳入 git(作者仓库与 public/sfx 已排除——Mixkit 授权) | W5 可并行 |
| P9 OCC 评估+竖屏 | W1 装 Node24 跑通 OCC → W2 六项生死题实测(ProRes4444 alpha/合成正确性/中文废口/MCP 闭环/剪切清单回读/edit_captions 注入千问转录,每项带通过判据)→ 竖屏方案文档(OS 画布参数化,报备件,批准前不碰 OS) | v2 开发中 |
| v2 目标(开发中) | ①→⑦ 全链路(OCC 细剪+字幕落定为新增步);P8 质检门/响度(-14LUFS)/体验件;P9 OCC 评估+竖屏报备;用户已确认:竖屏首期/W4 前置红线 · margin=0.45 · 废口三档 · 字幕+进度条烤入 · 多平台单文件 | 本方案落地中 |
| P7 后议项 → 更全面的工具 | 废口清理(已并入 v2 ③OCC 细剪,自研方案搁置)· 扩卡(改 src/effects,逐张报备)· 扩 logo(手工 SVG,不走 build-logos)· 学习闭环(review-logs 回填偏好,越用越懂你)· 竖屏 OS 改造(P9 报备方案先行)· OpenCut(88k★重写中)降为观察位,由 OCC 接替 | 逐次报备 |
静音剪 auto-editor(①)物理删静音/气口,margin=0.45 保呼吸——产出 roughcut.mp4 是全链时间轴起点;
语义剪 OCC(③)吃千问字级转录做废口/口误细剪(MCP 驱动+人工微调);OS(⑥)只吃 overlay.json 渲染动效层——动效引擎冻结;
串联 pipeline/episode 总控把 ①→⑦ 连成一条命令;字幕只出千问(铁律5),合成横屏走 ffmpeg、竖屏走 OCC。
· 粗剪只删静音,删不掉「嗯/啊」废口 → P7 词级废口清理
· 画幅锁死 1080p 横屏 → 竖屏方案(改源码,走报备)
· 审美偏好靠人喂 → review-logs 学习闭环自动回填
· 卡片库固定 80+ 张 → 扩卡流程(新卡 + registry + 同步 skill 副本)
· 没有可视化多轨精剪兜底 → OpenCut(带 MCP)按需评估
· 人工点头点仍偏多 → 预约定的人工点可配置化(episode --skip)