screen recording · pip · medical science style

PiP 录屏剪辑流水线

从原始 CleanShot 录屏到可发布竖版知识视频:先把 Smart Filler Removal做成可复用模块,再统一字幕、BGM、人声、封面和发布文案。 目标不是一次性追求全自动,而是先做一条能稳定复用的半自动生产线。

当前试点

输入视频
CleanShot 2026-07-01 at 14.54.37.mp4
尺寸/时长
1400×1760 · 201.26s
静音粗剪
107 段静音 · 约 46.33s 可候选删除
音量差异
input mean -31.6 dB;reference mean -14.5 dB

本页目的

  • 把 0002 Smart Filler Removal Spec 接入视频流水线。
  • 明确“字幕清理”和“真实剪视频”的不同输出。
  • 用 transcript / candidates / edl 保护可逆编辑。
  • 沉淀工具链、目录、QA 和发布规范。
01

Reference 目标

reference 的核心不是医学题材,而是 竖屏录屏 + 人像 PiP + 黄字黑描边字幕 + 强封面钩子。 你的试点素材和 reference 都接近 1400px 宽的竖屏比例,后续可以保留原始画幅,不必先做复杂裁切。

Input video contact sheet
输入素材 屏幕演示为主,人像 PiP 在底部/右下区域,已有大字和页面 UI 需要避让。
Reference video contact sheet
Reference 视频 字幕多为黄字黑描边,讲解节奏紧,界面演示和结果图交替出现。
Reference cover
Reference 封面 大标题 + 强情绪人像 + before/after + 3 个勾选利益点。
02

流水线步骤

点击节点查看每一步的 输入 / 处理 / 输出 / 人工复核点。

1

去口水词:先静音粗剪,再语义精剪

按 0002 spec 执行:ASR 转录、候选检测、Review UI、EDL、FFmpeg 输出。不要直接破坏原文件,也不要把字幕清理误当成真实剪视频。

input
source.mp4 + audio track
default tool
auto-editor / ffmpeg
output
transcript.json + candidates.json + edl.json
human gate
删除前后各听 1 秒,避免断句
03

去口水词的底层逻辑

像剪映一样“去口水词”,本质是一个可逆编辑系统,而不是字幕后处理。 它必须同时支持 不显示在字幕里 和 从音视频里真实剪掉 两种结果。 删除动作的唯一事实来源是 EDL。

阶段 A · 自动

Pause candidates

从相邻 token 间隙生成停顿候选。小于 0.30s 忽略;0.30-0.80s 低置信标记; 0.80-2.00s 默认选中;超过 2s 需要看是否靠近页面切换。

auto-editor input.mp4 \
  --edit audio:-35dB \
  --margin 0.2s \
  --export resolve
阶段 B · 半自动

Filler / Repeat / False start

候选类型分成 filler、repeat、false_start。单字犹豫词可高置信; “然后、其实、就是”等话语标记默认只标记,不自动删除。

whisperx rough_cut.mp4 \
  --model medium \
  --language zh \
  --output_format json
阶段 C · 人审

EDL source of truth

所有 destructive edits 都写进 edl.json:candidateIds、removedRanges、keepRanges、 padding 和 reviewState。原始 source 永远不被覆盖。

outputs:
transcript.json
candidates.json
edl.json
cleaned.mp4
推荐策略: 第一版不要追求“全自动去口水词”。先做静音粗剪 + 转录候选列表 + 人工确认; 等你确认可接受的删词规则后,再批量化。
04

Review UI:识别 → 标记 → 一键去掉

参考剪映的体验,但第一版不做完整 NLE。页面只需要三块: Preview player、Transcript review panel、Timeline strip。 用户可以检查上下文、取消误删、预览删除后效果,再导出。

预览删除后 · jump to 00:01:24
1 停顿 [...0.85s] 00:00:01.240 - 00:00:02.090
2 嗯, 给 大家 推荐 一个
3 然后 我们 先看 第一步 review only

Candidate detail

类型
pause
内容
停顿 [...0.85s]
置信度
0.94
原因
相邻词间静音超过 0.8s
默认
selected · removable
type RemovalCandidate = {
  type: "filler" | "pause" | "repeat" | "false_start";
  text: string;
  start: number;
  end: number;
  confidence: number;
  selected: boolean;
  reviewState: "pending" | "accepted" | "rejected";
}
type EditDecisionList = {
  version: 1;
  sourceMediaPath: string;
  candidates: RemovalCandidate[];
  removedRanges: RemovedRange[];
  keepRanges: KeepRange[];
}
05

工具矩阵

本机现在已经有 ffmpeg / ffprobe / whisper / faster-whisper。 建议新增安装 Auto-Editor 和 WhisperX;stable-ts 可作为时间戳/字幕编辑能力的备选,但它的 GitHub README 标注开发暂停,需要谨慎选型。

stable-ts
时间戳稳定 · 字幕编辑

提供 Whisper 时间戳稳定、alignment、regrouping、silence suppression 等能力;适合作为实验备选。

GitHub
Subtitle Edit
字幕复核 · 波形校准

离线开源字幕编辑器,适合人工检查 SRT/VTT、调轴和最终字幕质检。

GitHub
LLM / AI
删词建议 · 标题文案 · 标签

只做语义判断和文案生成,不直接决定剪刀点;剪刀点仍以时间戳和人工复核为准。

transcript.json → edit_candidates.json → review
06

MVP 路线 vs 自动化路线

MVP 路线 · 先跑通一条

  1. 导入单个本地视频,提取音频。
  2. 用 whisper/faster-whisper 生成 transcript。
  3. 检测 filler、pause、repeat、false_start 候选。
  4. Review UI 逐条确认,生成 edl.json。
  5. FFmpeg 根据 keepRanges 导出 cleaned.mp4。
  6. 从 cleaned transcript 生成黄字黑描边字幕。
  7. 用 loudnorm + compressor 拉人声。
  8. 套 reference 封面结构,生成 3 个标题。

自动化路线 · 批量处理

  1. 批量读取 001_input,生成每条 metadata。
  2. WhisperX 输出 word-level transcript。
  3. 规则引擎输出 candidates.json。
  4. LLM 只辅助判断 discourse markers 是否保留。
  5. 脚本合并剪刀点,导出 rough_cut/final。
  6. 自动生成 cover prompt、title、description、tags。
07

输出目录与命名规范

003_workflow/
└── video_editing_workflow_spec_20260706/
    ├── index.html
    ├── styles.css
    ├── app.js
    └── assets/
        ├── input_contact_sheet.jpg
        ├── reference_contact_sheet.jpg
        └── reference_cover.png
建议未来成片输出:
004_output/
└── 20260706_medical_pip_demo/
    ├── 01_source/
    ├── 02_work/
    │   ├── transcript.json
    │   ├── edit_candidates.json
    │   ├── cutlist.json
    │   └── subtitles.srt
    ├── 03_export/
    │   ├── final.mp4
    │   ├── cover.png
    │   └── poster_3x4.png
    └── 04_publish/
        ├── title.txt
        ├── description.txt
        └── tags.txt
08

可复制 AI Prompt

你是短视频剪辑导演。请根据 transcript.json 和 word timestamps,标注哪些片段应该剪掉。

目标:
1. 删除静音、重复、口水词、自我纠正。
2. 保留所有影响理解的步骤连接词。
3. 不要为了变短而破坏教程逻辑。

输出 JSON:
[
  {
    "start": 12.34,
    "end": 12.78,
    "type": "filler | silence | repeat | false_start",
    "text": "嗯",
    "reason": "孤立口水词,不承担语义",
    "confidence": 0.86,
    "review_required": true
  }
]
09

QA 清单

Ready for first pilot