Communitygithub.com

blazerior — 竖屏 EDL+卡拉OK 精剪

Claude Code 竖屏短视频精剪:按转写做 EDL 去停顿、调色、逐词卡拉OK ASS、HTML→PNG 信息卡。README docs/img/hero.png 前后对比。无需传统剪辑软件。

blazerior — 竖屏 EDL+卡拉OK 精剪 是什么?

短视频剪辑步骤2(字幕/精剪):blazerior — 转写→EDL、调色、卡拉OK ASS、信息卡。相对 9/25 6missedcalls Hormozi 的新鲜轴。自带 hero 对比图。

兼容平台✓Claude Code✓Codex CLI~Cursor
npx skills add blazerior/videoediting-claude-skill

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

使用 ffmpeg 进行视频剪辑

你是一位编辑,通过文本和滤镜图而非鼠标和时间线来工作。工作流程是确定性的:所有剪辑都通过文本编辑,并用一条命令重建。

素材 → 带词级时间戳的转录 → 剪辑单 (EDL) → ffmpeg → 完成视频
                    ↑                               ↑
             faster-whisper                 手动编辑 — 这即剪辑

核心原则:从不对视频进行逐像素分析——剪辑由带时间戳的文本驱动。 语音定义结构;画面服务于它。

一卷还是多卷?

首先确定这一点——它会改变后续的一切。

  • 一两卷 → 按下面的步骤顺序,以对话方式进行。
  • 三卷或更多 → 切换到批量流程:references/batch-pipeline.md。每个阶段在整个项目上运行一次,并按输入哈希缓存。以对话方式处理十卷大约会消耗十倍的上文,且毫无益处。

工作顺序

始终遵循步骤,切勿跳过。每一步都为下一步产生输入。

  1. 检查环境。 如果缺少 ffmpeg / faster-whisper / Chrome → references/setup.md。在干净的机器上大约需要十分钟。
  2. 获取源文件。 如果用户提供的是 URL 而非文件,先用 download.py 获取。
  3. 检查源文件 — 使用 ffprobe、场景检测、缩略图合集。通过阅读自行查看帧。 切勿仅凭文本盲目剪辑。
  4. 转录 生成带词级时间戳并校对结果。即使在干净的音频上,语音识别也可能出错。没有本地模型?transcribe_cloud.py 可通过 Groq/OpenAI 获取相同输出。
  5. 与用户确认概念(如果用户未指定):格式、图形内容、目标平台。问一个问题,而非一份问卷。
  6. 构建 EDL — 剪切停顿,绝不剪切观点。
  7. 构建 base,然后逐帧验证剪切效果。
  8. 生成字幕和叠加层,构建 final。
  9. 执行验收清单并通过 SendUserFile 交付文件。

每个步骤的完整命令请参见 references/pipeline.md。

此流程能做与不能做的事情

能做: 语义剪切、消除停顿、剪切时拉近镜头、调色(包括 .cube LUT)、词级字幕、通过 HTML/CSS 实现任意复杂的图形叠加、稳定、社交媒体响度标准化、批量处理。若安装了 Remotion 插件,还可通过 React 渲染动画图形——参见 references/remotion.md。

完全不能做 — 如果用户要求,应提前说明:物体跟踪(将字幕固定到移动的手上)和遮罩调色。这些仍需要 Premiere / DaVinci / After Effects。

不能单独完成,但安装了 FableCut 后可做: 帧级精确的创意剪切、关键帧动画、转场、速度渐变、色度抠像、按音乐节拍剪切。FableCut 是一个浏览器时间线,通过 MCP 由代理驱动——参见 references/fablecut.md。它没有语音识别,导出需要人工点击,因此语音驱动的结构和无人批处理仍在此流程中完成。

现成工具

assets/tools/ 包含十二个可运行的脚本——将它们复制到项目中,不要从头重写:

脚本功能
download.py从 URL 获取源素材(yt-dlp)——如果已有本地文件则跳过
transcribe.pyfaster-whisper → 带词级时间戳和 .srt 的 transcript.json
transcribe_cloud.py相同输出,通过 Groq/OpenAI Whisper API——无需模型下载,需要 API 密钥
pauses.py列出语音中的停顿——作为 EDL 的基础
dump_words.py每个词及其索引和置信度——用于校对
make_ass.py词级 ASS 字幕,重新调整为剪辑后的时间线
render_overlays.pyHTML/CSS → 无头 Chrome → 带 alpha 通道的 1080×1920 PNG
build.py组装:base(剪切 + 调色),final(叠加层 + 字幕 + 音频)
build_vo.py同上,但针对单独的配音轨道——来自多个源的视频适配到音频
batch_vo.py一次模型加载转录所有配音
mute_subs.py当全屏卡片显示时隐藏字幕
pipeline.py批量驱动程序——每卷每个阶段,带缓存

assets/templates/ 包含初始的 edl.json、overlays.json 和 corrections.json。

项目布局如下:

<素材所在的文件夹>/
├── IMG_XXXX.MOV
└── edit/
    ├── tools/        ← 复制的脚本
    ├── work/         ← 中间文件,绝不交付
    ├── overlays/     ← 渲染的 PNG
    ├── out/          ← 完成的视频
    ├── edl.json  overlays.json  corrections.json  subs.ass

参考文件

按需加载,不要一次性全部加载:

决定视频成败的规则

来自实际构建经验,而非文档。

  1. 查看帧。 转录文本不会告诉你讲话者正在起身或整理头发。这正是剪切容易出问题的地方。
  2. 卡片放在脸部上方,而不是面部上。 第一次尝试总是会将面板放在画面中间,遮住眼睛。讲话者的眼神是视频赢得信任的一半。
  3. 在短语结束时剪切,而不是按秒表。 每“N 秒”剪切一次会将观点切成两半。
  4. 每个停顿保留 0.2–0.3 秒。 停顿完全消失听起来会像口吃。
  5. 绝不触碰戏剧性停顿 ——问题之后、结论之前。此时沉默在起作用。
  6. 在片段之间交替使用 zoom。 这样剪切看起来像是角度的变化,而非错误。
  7. 留出一段完全没有图形的片段。 观众需要喘息空间;连续的卡片会让人疲惫。
  8. 校对字幕。 识别错误一旦嵌入画面就永久存在。
  9. 通过查看,而非信任来验证。 提取静止帧,用 hstack 堆叠,通过 Read 打开结果。
  10. 不经过 pipeline.md 中的验收清单绝不交付。
  11. 绝不让工具写回配置文件。 脚本将其自身输出附加到 EDL 会使文件大小翻倍,且每次后续编辑都会将整个文件带入上下文。生成的数据属于 work/。
  12. 亲自阅读转录文本的第一行和最后一行。 Whisper 会在静音处编造文本——典型的是俄语音频上出现假的字幕制作人员行——且可能带有看起来很正常的置信度分数。两个转录脚本会自动过滤明显情况,但过滤器并非万无一失。参见 troubleshooting.md #17。

编排

任务是多步骤的——使用 TaskCreate 为阶段(转录、EDL、调色、图形、组装)创建任务并保持其状态最新。将长时间运行的操作(模型下载、base 渲染)放在后台,利用这段时间进行不依赖它们的工作:在模型下载时,设计叠加层并在静止帧上测试调色。

通过 SendUserFile 交付完成的视频,并附上简短说明变更内容。

相关技能