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:读取第一版剪辑
- 获取剪辑的时间线:每句台词及其在剪辑中的起止时间。带有单词时间标记的转录文本效果最佳。
- 阅读项目已知信息:脚本及B-roll素材库中品牌的拍摄记录文件(每个保留的片段及其标签和选中原因)。
步骤 2:决定每句台词需要什么
对于每句台词,写下所说内容以及使用素材库标签中能展示该内容的镜头类型。这是片段获得意义的关键:同一个哈欠,在一个视频中是“之前”状态,在另一个视频中则是引发共鸣的时刻。规则按优先顺序如下:
- 先规划整个视频,再放置任何片段。 不要按顺序填充台词的B-roll。首先找出最有力的镜头,为每个镜头分配最贴合的台词,然后用剩余镜头填充剩下的台词。如果一个镜头过早地用在一个松散的匹配上,就无法在后续需要精确匹配的位置使用(躺在床上读书应匹配“我带着书躺在床上阅读”,而非之前的“夜间例行程序”)。
- 按字面意思展示台词。 “按字面意思”意味着关闭声音的观众仅凭画面就能理解台词内容。仅有相关但非直接的动作不算:拍松枕头是一个任务,并非“放松休息”。“刚刚送达的”应显示未拆封的完整包裹;“食材”应显示有人指向食材;“努力度过这一天”应显示疲惫的面容、叹息或哈欠。
- 产品与场景匹配。 送货场景展示完整包裹;夜间例行程序展示正在使用的产品。使用观众在该故事节点预期看到的形式。
- 使用长片段中最佳的1到2秒。 选择动作最密集的部分:片段拍摄的主要动作(如拉上毯子),绝不使用之前或之后的零星动作。特写镜头可用作简短的点缀。
- 将相关片段串联成微故事。 开箱:撕开顶盖、展示内部、取出一件。使用产品:打开、倒出、搅拌、啜饮。在沙发上工作后躺下小憩。同一动作的短片段连续放置(半秒撕包、半秒打开、半秒取出小袋)能形成有力的微故事。
- 创作者与产品的快乐画面应放在接近结尾处。 用在行动号召附近,或任何本身缺乏视觉效果的台词上。
- 片段的含义由其整个拍摄内容决定。 在使用片段的某一部分前,阅读拍摄记录文件的要点和完整片段。在沙发上工作然后小憩,展示的是某人疲惫地度过一天;它体现白天的困倦,因此适合“度过一天”的台词,绝不用于“晚上躺在床上”的台词。
- 绝不重复同一时刻。 从同一原始B-roll视频中裁剪出的两个片段,若展示相同时刻(即相同或相似的标签,如两个在柜台前疲惫的镜头、两个哈欠、两次啜饮),不得同时出现在一个剪辑中。同一视频中展示不同内容的片段(打开、搅拌、玻璃杯特写)可单独使用。当一个视频有两个相似时刻时,将更强的片段放置在最适合的台词上,为另一条台词寻找其他素材,或让该台词保留人物讲话画面。同一动作的连续短片段形成微故事(规则4)视为单次使用。
集中使用单个视频而非分散放置。 尽量确保一个B-roll视频在一个剪辑中不超过两处独立位置。当一个视频包含多个好镜头时,将相关的镜头集中在一个微故事中,放置在最匹配的台词处(抱着猫上床,然后边喝东西边阅读),而非分散在整个视频中,否则会显得重复。产品特写镜头(任何标签为
closeup:的片段,如贴近镜头搅拌玻璃杯)是例外:它们作为点缀独立存在,不计入一个视频的两处使用限制。 - 没有真正合适片段的台词,保留人物讲话画面。 一个大致匹配但展示不同内容的片段,不如没有B-roll。只有当该片段明显有助于视频时,才将缺失的镜头添加到待拍摄清单中。
步骤 3:提取片段
- 对于每句台词,在素材库的“按标签查找”表格中查找匹配的片段。素材库片段两端各包含1秒的缓冲,因此裁剪时需进入实际选择范围。
- 生活场景片段(不含产品)可来自任何品牌的拍摄。产品片段仅来自当前品牌。
- 当素材库中没有匹配内容时,该台词添加到“待拍摄”清单,并附上一行镜头描述。
步骤 4:向编辑展示方案
显示一个简短的表格:行号、所说内容、B-roll(拍摄名称、片段名称、精确秒数)及其原因。然后是待拍摄清单。编辑批准、替换或删减。编辑说“开始”后,片段才被放置。
步骤 5:放置它
- 从每个片段中裁剪已批准的切片。
- 将其覆盖在剪辑对应台词上,说话者的音频保持不变。B-roll在剪切点或单词间隙切入切出。
- 使用帧号而非秒数。 在放置任何内容前,将所有A-roll剪切点和所有B-roll边缘转换为完整的帧号(时间 × 帧率,四舍五入),并通过帧号控制切片的开关。例如28.867秒在30fps下会落在帧之间,留下一个多余帧。
- 连续放置的B-roll片段帧对帧紧贴。 当两个B-roll切片相邻时,第二个切片从第一个切片结束的精确帧号开始,使人物讲话的帧不会从两者之间漏出。
- 靠近剪切点的B-roll吸附到剪切点。 当B-roll边缘落在距A-roll剪切点约0.3秒(30fps下9帧)范围内时,将该边缘移动到剪切点的帧上。从台词的第一个单词开始的切片,应从该台词的剪切点开始,这样说话者的头部画面不会在B-roll出现前闪烁几帧。
- 放置后重新检查编辑:音频时长与视频时长匹配,每个B-roll切片与其对应的台词对齐,字幕(如有)在新素材上仍清晰可读。
- 任何片段不低于0.3秒。 构建一个完成视频中所有边缘的列表,包括A-roll剪切点和B-roll边缘,以帧号排序。两个边缘之间的每个片段,无论是说话者画面还是B-roll,在30fps下至少9帧。短于该时长的片段是闪烁,视为失败。仅靠场景检测无法发现这些,因为同一人的两个镜头看起来相似,因此请检查列表,然后抓取每个边缘两侧的帧来确认。测量A-roll剪切点的实际位置(每个计划剪切点附近帧变化最大的帧),而不是依赖从秒数转换的时间。
- 将编辑对放置的反馈转化为第2步中的通用规则。通过重写和合并规则来调整,而不是堆积新规则。