Communitygithub.com

alyshadotmd/video-editing

规划并放置视频的B-roll素材:逐行审视第一版剪辑,决定哪些台词需要B-roll及所需镜头类型,从带标签的B-roll库中提取最佳匹配片段,列出仍需拍摄的内容,并在编辑批准后放置B-roll。适用于已有第一版剪辑后添加B-roll、询问视频需要哪些B-roll或请求B-roll拍摄清单的场景。

video-editing 是什么?

该技能专为Claude Code和Runneth设计,用于辅助视频编辑中B-roll素材的规划和放置。它会自动读取视频第一版剪辑的时间线,逐行分析台词,并基于一个带标签的B-roll素材库(包含短片文件和按标签索引的信息)为每句台词匹配合适的B-roll片段。技能遵循一套详细规则,优先选择与台词内容最贴合的镜头(如“文字照字面显示”),并避免重复使用同一素材的相同时刻。在提出方案后,它会以表格形式向编辑展示每句台词的B-roll分配依据和待拍摄清单,经编辑确认后使用ffmpeg或任何视频编辑器(在Claude Code中需安装video-editing-setup工具)执行精确的帧级放置,确保B-roll与A-roll(人物讲话)无缝衔接,且无过短片段。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/alyshadotmd/video-editing/tree/HEAD/skills/broll-selection

在你喜欢的 AI 中提问

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

文档

B-roll 选择

目标:在正确的台词上放置正确的B-roll,如同编辑亲自挑选。B-roll有两个作用:为讲话内容提供上下文,并吸引观众持续观看。

此技能专为 Claude Code 和 Runneth 设计。它读取一个带标签的B-roll素材库:一个包含短片的文件夹,并附带一个索引(含“按标签查找”表格,每个标签对应包含该标签的片段)。broll-processing 技能可构建此类素材库,任何带标签的短片文件夹同样可用。放置片段需要 ffmpeg 或任意视频编辑器。

与编辑沟通时,使用平实的日常用语,每次表达一个想法。

开始之前:所需工具

在 Runneth 中,所有工具已安装完毕:跳过此节。

在 Claude Code 中,此技能需要 video-editing-setup 技能安装的免费视频工具。请静静检查 ~/.video-editing-tools/bin/ffmpeg -version 是否可运行。如果可以,则在此技能提及 ffmpeg、ffprobe 或 python3 时,使用 ~/.video-editing-tools/bin 目录下的工具(ffmpeg、ffprobe、python)并继续操作。否则,请先遵循 video-editing-setup 技能,然后再返回。

步骤 0:确保B-roll已入库

此技能从一个带标签的B-roll素材库中放置片段。在规划前,请检查此视频的所有B-roll文件是否已在素材库中,并附带拍摄记录文件。任何未入库的原始B-roll应首先通过 broll-processing 技能处理,然后再返回。

步骤 1:读取第一版剪辑

  1. 获取剪辑的时间线:每句台词及其在剪辑中的起止时间。带有单词时间标记的转录文本效果最佳。
  2. 阅读项目已知信息:脚本及B-roll素材库中品牌的拍摄记录文件(每个保留的片段及其标签和选中原因)。

步骤 2:决定每句台词需要什么

对于每句台词,写下所说内容以及使用素材库标签中能展示该内容的镜头类型。这是片段获得意义的关键:同一个哈欠,在一个视频中是“之前”状态,在另一个视频中则是引发共鸣的时刻。规则按优先顺序如下:

  1. 先规划整个视频,再放置任何片段。 不要按顺序填充台词的B-roll。首先找出最有力的镜头,为每个镜头分配最贴合的台词,然后用剩余镜头填充剩下的台词。如果一个镜头过早地用在一个松散的匹配上,就无法在后续需要精确匹配的位置使用(躺在床上读书应匹配“我带着书躺在床上阅读”,而非之前的“夜间例行程序”)。
  2. 按字面意思展示台词。 “按字面意思”意味着关闭声音的观众仅凭画面就能理解台词内容。仅有相关但非直接的动作不算:拍松枕头是一个任务,并非“放松休息”。“刚刚送达的”应显示未拆封的完整包裹;“食材”应显示有人指向食材;“努力度过这一天”应显示疲惫的面容、叹息或哈欠。
  3. 产品与场景匹配。 送货场景展示完整包裹;夜间例行程序展示正在使用的产品。使用观众在该故事节点预期看到的形式。
  4. 使用长片段中最佳的1到2秒。 选择动作最密集的部分:片段拍摄的主要动作(如拉上毯子),绝不使用之前或之后的零星动作。特写镜头可用作简短的点缀。
  5. 将相关片段串联成微故事。 开箱:撕开顶盖、展示内部、取出一件。使用产品:打开、倒出、搅拌、啜饮。在沙发上工作后躺下小憩。同一动作的短片段连续放置(半秒撕包、半秒打开、半秒取出小袋)能形成有力的微故事。
  6. 创作者与产品的快乐画面应放在接近结尾处。 用在行动号召附近,或任何本身缺乏视觉效果的台词上。
  7. 片段的含义由其整个拍摄内容决定。 在使用片段的某一部分前,阅读拍摄记录文件的要点和完整片段。在沙发上工作然后小憩,展示的是某人疲惫地度过一天;它体现白天的困倦,因此适合“度过一天”的台词,绝不用于“晚上躺在床上”的台词。
  8. 绝不重复同一时刻。 从同一原始B-roll视频中裁剪出的两个片段,若展示相同时刻(即相同或相似的标签,如两个在柜台前疲惫的镜头、两个哈欠、两次啜饮),不得同时出现在一个剪辑中。同一视频中展示不同内容的片段(打开、搅拌、玻璃杯特写)可单独使用。当一个视频有两个相似时刻时,将更强的片段放置在最适合的台词上,为另一条台词寻找其他素材,或让该台词保留人物讲话画面。同一动作的连续短片段形成微故事(规则4)视为单次使用。 集中使用单个视频而非分散放置。 尽量确保一个B-roll视频在一个剪辑中不超过两处独立位置。当一个视频包含多个好镜头时,将相关的镜头集中在一个微故事中,放置在最匹配的台词处(抱着猫上床,然后边喝东西边阅读),而非分散在整个视频中,否则会显得重复。产品特写镜头(任何标签为 closeup: 的片段,如贴近镜头搅拌玻璃杯)是例外:它们作为点缀独立存在,不计入一个视频的两处使用限制。
  9. 没有真正合适片段的台词,保留人物讲话画面。 一个大致匹配但展示不同内容的片段,不如没有B-roll。只有当该片段明显有助于视频时,才将缺失的镜头添加到待拍摄清单中。

步骤 3:提取片段

  1. 对于每句台词,在素材库的“按标签查找”表格中查找匹配的片段。素材库片段两端各包含1秒的缓冲,因此裁剪时需进入实际选择范围。
  2. 生活场景片段(不含产品)可来自任何品牌的拍摄。产品片段仅来自当前品牌。
  3. 当素材库中没有匹配内容时,该台词添加到“待拍摄”清单,并附上一行镜头描述。

步骤 4:向编辑展示方案

显示一个简短的表格:行号、所说内容、B-roll(拍摄名称、片段名称、精确秒数)及其原因。然后是待拍摄清单。编辑批准、替换或删减。编辑说“开始”后,片段才被放置。

步骤 5:放置它

  1. 从每个片段中裁剪已批准的切片。
  2. 将其覆盖在剪辑对应台词上,说话者的音频保持不变。B-roll在剪切点或单词间隙切入切出。
  3. 使用帧号而非秒数。 在放置任何内容前,将所有A-roll剪切点和所有B-roll边缘转换为完整的帧号(时间 × 帧率,四舍五入),并通过帧号控制切片的开关。例如28.867秒在30fps下会落在帧之间,留下一个多余帧。
  4. 连续放置的B-roll片段帧对帧紧贴。 当两个B-roll切片相邻时,第二个切片从第一个切片结束的精确帧号开始,使人物讲话的帧不会从两者之间漏出。
  5. 靠近剪切点的B-roll吸附到剪切点。 当B-roll边缘落在距A-roll剪切点约0.3秒(30fps下9帧)范围内时,将该边缘移动到剪切点的帧上。从台词的第一个单词开始的切片,应从该台词的剪切点开始,这样说话者的头部画面不会在B-roll出现前闪烁几帧。
  6. 放置后重新检查编辑:音频时长与视频时长匹配,每个B-roll切片与其对应的台词对齐,字幕(如有)在新素材上仍清晰可读。
  7. 任何片段不低于0.3秒。 构建一个完成视频中所有边缘的列表,包括A-roll剪切点和B-roll边缘,以帧号排序。两个边缘之间的每个片段,无论是说话者画面还是B-roll,在30fps下至少9帧。短于该时长的片段是闪烁,视为失败。仅靠场景检测无法发现这些,因为同一人的两个镜头看起来相似,因此请检查列表,然后抓取每个边缘两侧的帧来确认。测量A-roll剪切点的实际位置(每个计划剪切点附近帧变化最大的帧),而不是依赖从秒数转换的时间。
  8. 将编辑对放置的反馈转化为第2步中的通用规则。通过重写和合并规则来调整,而不是堆积新规则。

Individual skills in this repo

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

alyshadotmd/video-editing

Turn raw talking-head footage full of repeated takes (one long recording, or several recordings of the same script) into a tight rough cut. Find every take of every line, judge each take on its words, sound and picture, pick the keeper for each line, and either show the editor the picks first or go straight to the cut. The cut is checked so no word is chopped and no pause is left in before anyone sees it. Built for Claude Code and Runneth. Use when someone uploads raw talking-head footage and asks to find the takes, pick the best ones, make a cut list or rough cut it. Triggers: "process my a-roll", "find my takes", "pick the best takes", "rough cut this", "cut list", "edit my talking head", "which take is best

alyshadotmd/video-editing

Turn raw b-roll footage into a tagged, searchable library of short clips. Watch each b-roll video once, tag every useful moment with timestamps, pick the moments worth keeping (the editor picks, or the AI picks on its own if the editor says so), cut only those picks with a 1-second buffer, and learn the editor's taste from their reasons. Use when someone uploads b-roll, asks to tag, bank or label b-roll, or asks to find a kind of shot ("find me unboxing b-roll"). Triggers: "process my b-roll", "tag this b-roll", "bank this b-roll", "b-roll library", "find me unboxing b-roll", "do we have b-roll of", "label my b-roll

alyshadotmd/video-editing

>- Add burned-in captions to a vertical (9:16) talking-head video: exact word timings, one word at a time or short chunks broken by meaning, white outlined Figtree Bold with an optional highlighted word, placed in the safe area clear of the face and the hook headline. Built for Claude Code and Runneth. Use after framing and the headline, when someone asks for captions, subtitles or on-screen words.

相关技能