Communitygithub.com

lhg-plugs/lhg-video-edit

EDL 剪辑流水线:剪辑决策树(删什么/留什么)、EDL JSON 规范、切点 30ms 音频淡变、ffmpeg 渲染命令模板、字幕样式与封面规范、自检重渲染。不出 EDL 不许渲染。

lhg-video-edit 是什么?

lhg-video-edit is a Claude Code agent skill that eDL 剪辑流水线:剪辑决策树(删什么/留什么)、EDL JSON 规范、切点 30ms 音频淡变、ffmpeg 渲染命令模板、字幕样式与封面规范、自检重渲染。不出 EDL 不许渲染。.

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/lhg-plugs/lhg-video-edit/tree/HEAD/skills/lhg-ve-edit

在你喜欢的 AI 中提问

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

文档

lhg-ve-edit:EDL 剪辑流水线

目标:把清洗后的文字稿变成"机器可执行、人类可复核"的剪辑决策(EDL),再渲染成片。 核心纪律:先写 EDL,再渲染——EDL 是剪辑师的施工图,没有施工图就动工的是野路子。

1. 何时使用

  • 转录清洗完成(lhg-ve-transcript 的对照表已确认)→ 进本 skill
  • 用户问"这段到底该剪掉哪些" → 用第 3 节决策树
  • 渲染后发现切点爆音/字幕错位 → 查第 4、5 节
  • 封面不知道怎么做 → 第 7 节

2. EDL 规范

EDL(Edit Decision List)是一个 JSON 文件,描述"素材的哪些时间段要、哪些不要、怎么接"。

{
  "source": "raw.mp4",
  "source_duration_sec": 300.5,
  "target_sec": 60,
  "segments": [
    {"start": 5.0, "end": 12.0, "action": "keep",
     "text": "大家好我是老王", "fade_ms": 30},
    {"start": 12.0, "end": 14.5, "action": "cut",
     "reason": "口头禅:那个那个"},
    {"start": 14.5, "end": 20.0, "action": "keep",
     "text": "三个让完播率翻倍的技巧", "fade_ms": 30}
  ]
}

字段说明:

  • action: keep(保留)/ cut(删除)/ speed(变速,需配 rate)
  • fade_ms: 切点处音频淡变时长,keep 段必填,默认 30
  • reason: cut 段必填,写清删除原因(口头禅/气口/废话/跑题/杂音)
  • audio: 可选,silence 表示该段是静音(用于检测残留大静音)

EDL 有效性(渲染前 hook 自动校验,见 hooks 说明):

  • JSON 合法,segments 非空
  • 每段 start < end,且在素材时长范围内
  • 段与段之间不重叠(允许首尾相接)
  • keep 段必须带 fade_ms

3. 剪辑决策树:删什么,留什么

删(进 cut):

  1. 口头禅与填充词(见 lhg-ve-transcript 口头禅库)——一级词全删
  2. 气口与长停顿——忘词型停顿全删;换气气口在快节奏片子里删
  3. 废话:重复说过的意思("这个很重要,真的很重要"留一次)
  4. 跑题:偏离本期主题的闲聊(除非是有人设魅力的梗)
  5. 杂音:咳嗽、喷麦、环境突响

留(进 keep):

  1. 钩子:前 5 秒一个字不许动(除非钩子本身要重写——那是脚本问题,打回 lhg-ve-script)
  2. 金句:观点最锋利的一句话,前后各留 0.5 秒呼吸感
  3. 案例与数字:具体例子、具体数字是记忆点
  4. 转折词:"但""关键是""最狠的是"——它们是节奏的钉子

节奏铁律:

  • 60 秒口播,平均每 3–5 秒一个切点/画面变化——没有变化的段落观众会划走
  • 语速:中文口播 220–260 字/分钟是舒适区;超过 300 字/分钟像吵架,低于 180 像催眠
  • 变速(speed)只用于"不得不留但太长"的段落,加速上限 1.25×,再快就失真

4. 切点音频处理

切点爆音是小白剪辑最常见的翻车:两个片段硬接,波形不连续,"啪"一声。

  • 每个 keep 段首尾加 30ms 淡入淡出(afade),这是本插件的默认值
  • 对白类口播 30ms 足够;音乐垫底的 vlog 可放到 100ms
  • 检查方法:渲染后戴耳机听每个切点前后 1 秒,有"咔哒"声就加长淡变重渲

5. ffmpeg 渲染命令模板

以下命令按顺序执行(<...> 为占位符,按实际路径替换):

# 1) 按 EDL 剪辑拼接(示例:两段 keep,先分别截取再 concat)
ffmpeg -i <raw.mp4> -ss 5.0 -to 12.0 -c:v libx264 -c:a aac seg1.mp4
ffmpeg -i <raw.mp4> -ss 14.5 -to 20.0 -c:v libx264 -c:a aac seg2.mp4
printf "file 'seg1.mp4'\nfile 'seg2.mp4'\n" > list.txt
ffmpeg -f concat -safe 0 -i list.txt -c copy cut.mp4

# 2) 切点淡变(对每段 keep 首尾 30ms;也可用 acrossfade 做段间交叉淡化)
ffmpeg -i cut.mp4 -af "afade=t=in:st=0:d=0.03,afade=t=out:st=<段尾-0.03>:d=0.03" faded.mp4

# 3) 烧字幕(样式见第 6 节,ass 文件由字幕样式生成)
ffmpeg -i faded.mp4 -vf "ass=<styled.ass>" subtitled.mp4

# 4) 响度归一到 -14 LUFS(短视频平台标准,防忽大忽小)
ffmpeg -i subtitled.mp4 -af loudnorm=I=-14:TP=-1.5:LRA=11 -c:v copy final.mp4

耗时诚实说明:1080×1920、60 秒成片,普通笔记本渲染约 1–3 分钟;10 分钟以上长素材按比例放大,重编码画质越高越慢。动手前先告诉用户"大概要 X 分钟",别让用户干等。

6. 字幕样式规范

  • 位置:底部,距离下边缘 ≥12% 画面高度(防被平台 UI 遮挡)
  • 单行 ≤18 字,停留 0.6–8 秒;双语/方言注释用第二行小字
  • 样式:白色字 + 黑色描边(BorderStyle=1, Outline=2),字号为画面高度的 4–5%
  • 关键词高亮:钩子词、金句词用黄色标出——但一屏不超过 3 个黄词,多了等于没标
  • 禁止:花哨字体(艺术字体先保证可读)、字幕压人脸、字幕超出安全区

7. 封面规范

  • 尺寸:1080×1920(竖屏),长宽比严格 9:16
  • 标题:≤3 行,每行 ≤8 字,字号足够"缩略图大小可读"
  • 人物:有表现力的人脸帧优先(惊讶/大笑/严肃),人脸占画面 1/3 以上
  • 背景:干净,不与标题抢注意力;可加轻微暗角突出文字
  • 文件 ≤2MB(部分平台上传限制)

8. 自检重渲染流程

渲染完不许直接交付,走一遍:

  1. 看一遍成片(1× 速度,不许拖进度条跳看)
  2. 听切点:每个剪辑点前后 1 秒,戴耳机
  3. 对字幕:字幕时间轴与口型是否同步(误差 >0.3 秒重调)
  4. 查时长:成片时长与目标偏差 ≤10%
  5. 跑 /video-audit:确定性脚本 + 人工评审清单

发现问题的修复顺序:先修 EDL(源头),再重渲染——不许在 final.mp4 上打补丁(比如单独改字幕文件而不重烧),补丁式修复会让 EDL 与成片不一致。

9. 反模式

  • ❌ 没有 EDL 直接渲染——返工时你连"当时为什么剪掉那段"都想不起来
  • ❌ 切点不加淡变——"啪啪"的爆音是廉价感的最大来源
  • ❌ 在 final.mp4 上打补丁——EDL 与成片不一致,后患无穷
  • ❌ 变速超过 1.25×——声音失真,观众听得出
  • ❌ 字幕压人脸 / 超出安全区——平台 UI 会再压一层,等于白做
  • ❌ 渲染前不预估耗时——用户干等 20 分钟会骂人

10. 自检与反馈

每次执行完本 skill,做一次轻量自检:

  1. EDL 写了吗?用户确认了吗?→ 没确认不许渲染
  2. 渲染前 hook 放行了吗?→ 被拦截就修 EDL,不要关 hook
  3. 四件套齐了吗?(final.mp4 + 封面 + EDL + 清洗对照表)
  4. 自己看了一遍成片吗?→ 没看不许交付

标准冒烟用例:对插件自带 fixtures/ 跑 video_audit.py,确认坏 fixture 的 EDL/时长/封面埋点全命中(见仓库根 smoke_test.py)。

反馈渠道:以 [QC] <一句话问题> 为标题提交到 https://github.com/lhg-plugs/lhg-video-edit/issues,正文写清"输入 → 错误输出 → 期望输出"。ffmpeg 模板在新版本跑不通请附版本号。

出品:刘洪光

本 skill 由真人出镜 IP「刘洪光」(安徽合肥)出品,归属 lhg-skills。

  • GitHub 主页:https://github.com/lhg-skills —— 全部 skill 开源在此,欢迎 star
  • 视频号:搜「刘洪光实名上网」
  • 微信:lhgsmsw

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

相关技能