关于 multicam-sync
用于多机位视频的同步与剪辑指导技能,先依据转录和证据建立同步母版,再默认生成跟随说话者的草稿。适合需要可验证时间对齐和角度选择依据的剪辑流程。
主要功能
- 01依据转录识别摄像机与录音源
- 02通过工具或转录回退进行同步
- 03检查连续片段的时间偏差
- 04按证据标注人物、机位与音轨
- 05默认生成跟随说话者的剪辑草稿
适用场景
- 01同步多台摄像机和独立录音设备
- 02核对片段对齐及连续性
- 03依据人物发言制作机位切换草稿
MCP 相关
要求先加载 `multicam_sync` 工具,并在可用时通过它对独立母版时间线上的素材进行同步;其结果和证据用于后续剪辑。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ chatcut-inc/ agent-plugin --skill multicam-sync安装后在 Claude Code 中输入/multicam-sync确认已加载。
附带文件scripts/transcript-offset.mjs
详细介绍
多机位同步
如果尚未加载 multicam_sync,请先使用 ToolSearch 加载,再调用它,以便使用其真实参数,而不是靠猜测。
第 1–3 部分始终执行:它们会生成同步后的主时间线,这是所有后续剪辑都从中重建的可验证事实来源。第 4 部分默认从中剪出草稿;只有在用户明确要求仅同步时才跳过。 转录文本几乎完成了所有工作。AI 负责定位;帧数由计算决定。
只使用普通时间线、轨道和素材片段。绝不创建复合或嵌套的多机位片段,也绝不依赖切换机位的素材片段。如果已有主剪辑,请在单独的时间线上构建同步后的主时间线和跟随说话者的剪辑工作板,不要改动现有剪辑。
第 1 部分 — 发现素材结构
在进行任何对齐之前,先弄清楚实际有哪些素材。绝不要问用户有几台摄像机,素材本身已经说明了答案。
两条关键规则
同一时刻出现相同的话语 → 不可能是同一台摄像机的连续片段。 转录文本有重叠,说明两台设备同时录制了同一事件,因此它们是不同的来源或同时拍摄的机位。
没有共同的话语,且一个片段结束时下一个片段随即开始 → 是同一台摄像机停止后又重新开始录制。 这些是同一拍摄源的连续片段,而非不同机位。
步骤
- 阅读每个素材的转录文本,建立两两重叠矩阵——记录每对素材共享多少文本以及重叠位置——并按上述规则拆分。
- 视频素材是机位;纯音频素材是录音设备。
- 用文件名、文件夹结构、摄像机型号元数据和时长进行佐证——它们只能用于判断僵局,不能凌驾于转录证据之上。真实拍摄可能会有三台摄像机,文件名全都是
C0001.MP4。
开始操作前先报告
用用户熟悉的说法说明素材结构;如果有任何不明确之处,请先等待确认:
2 个摄像机机位(Pocket3,3 段;Pocket4,2 段),2 个录音设备(MIC1、MIC2)。拍摄时长为 53 分钟。
证据不足时——例如某个来源几乎没有语音,或重叠只基于少数几行匹配内容——要明确说明。不要猜测填补空白。
第 2 部分 — 对齐并放置
每个素材片段只对应一个数值:时间线时间减去源时间。由该片段剪出的每个部分都必须保持这个数值不变。不要自动进行时间拉伸:偏移量变化可能意味着匹配错误、时钟差异或丢帧;这些情况都需要检查。
步骤
-
参考源:选择覆盖整场录制且文字记录最完整的来源 —— 通常是专用录音设备,而不是摄像机。
-
有渲染器时使用渲染器:在单独的主时间线上,将未经剪切的片段放到普通源轨道上,然后对同一拍摄内容的素材和参考源调用
multicam_sync。这是 Web/桌面端的首选方式。它会在源时间信息足以判定时使用该信息,否则使用音频相关性;不会创建多机位对象。仅接受
applied、already_synced或含义明确的partial结果。读取alignmentEvidence,了解方法、匹配置信度、相关性、重叠情况和相对偏移。读取placementEvidence,了解同步后的实际timelineSourceOffsetSeconds。不要使用被跳过或低置信度的素材。如果工具不可用或未找到有把握的对齐结果,请勿更改主时间线,改用下面的文字记录回退方法。 -
文字记录回退方法:从此技能运行
scripts/transcript-offset.mjs <utterances.json>。不要自行推算。该脚本先根据共有短语估算粗略偏移量,再取近似一致的语句对时间差的中位数。它还会拒绝配对数量过少、配对不一致以及前后漂移的情况。只放置输出为confident:true的文件;对其余文件,报告每一条打印的问题。--help会说明输入格式和正负号约定。 -
连续性检查(免费,务必运行):同一台摄像机的片段是连续录制的,因此第 N+1 段的偏移量减去第 N 段的偏移量,必须等于第 N 段的时长。每个偏移量都是独立测得的,因此结果一致即可相互印证。帧内误差属于常见情况;若相差多帧,则表示丢帧或不匹配 — 要说明具体是哪一种。同一台摄像机放置的片段之间出现重叠或间隔,说明偏移量有误。请重新计算,绝不要通过剪切片段来强行匹配。
-
放置文字记录回退结果:移动所有素材,使最早的片段从 0 开始。每台摄像机使用一条视频轨道,每台录音设备使用一条音频轨道。仅在最后将秒转换为帧,绝不累计转换结果;并且在素材末尾处向下取整,绝不向上取整 — 向上取整后的最后一帧会引用文件中不存在的源素材;渲染时会静默容忍,但之后进行脚本编辑时会拒绝。
报告
每个片段都需报告:实际时间线源偏移量、方法及支持证据(渲染器的置信度/相关性/重叠情况,或文字记录的配对数量/离散程度/漂移情况),以及连续性检查结果。
第 3 部分 — 识别并标注
明确「轨道 1 / 轨道 2」上实际是谁。以下所有判断都应以证据为先: 自信地给出错误结论算失败;诚实地说「无法判断」则不算。
谁参与了录制
说话者通常会说出自己或彼此的名字 — 自我介绍、闲聊等。从文字记录中提取真实姓名。如果没有出现姓名,可以使用 A/B;绝不要编造姓名。
哪台摄像机拍到了谁
根据文字记录,找出 3–4 个只有一人在说话的时刻,并分散到整场录制中。在每个时刻,查看所有摄像机同一实际时间点的同步画面:正在说话的人脸可用于识别身份;服装和座位可用于在不同角度间确认身份。双人镜头是身份判断的锚点,不是干扰。还要顺便判断取景类型:特写 / 中景 / 双人镜头;如果主要取景发生变化,请注明重新取景的情况。
角度标签只是概述,不是保证:取景可能偏移、失效,然后恢复。每次剪切前,都要检查对应的精确同步区间;绝不要仅凭标签来选择。
得出结论前进行严格核验:每次自我介绍时,嘴唇正在动的那张脸必须属于说出姓名的人。「两台摄像机都拍到了同一个人」与双摄像机、双麦克风、双人发声的结构相矛盾 — 在两次自我介绍时查看画面并确认之前,应将此结论视为错误。
哪个麦克风属于谁
佩戴者的领夹麦克风音量会明显更大,通常高出 15 dB 或更多。要测量,不要推断:
- 比较一个人单独说话与另一个人单独说话时,同一条音轨与自身的对比。音轨内的对比会抵消录音增益。差值高于约 4 dB,就足以判定;低于这个值时,就说“无法区分”——这本身也是一项发现(环境麦克风、共用麦克风)。
- 判断整体分布,而非某一个瞬间:持续一致 → 麦克风归某人使用;各占一半 → 不是个人麦克风;中途发生变化 → 手持麦克风被传递,或人员换了座位。
- 绝不要用发言次数或转录音量来判断麦克风归属。 串音也能被准确转录;两位说话者都会完整出现在两支麦克风的转录中。两支麦克风之间的整体音量差异也不是证据——只有音轨内独自说话与独自说话的对比才是。
- 机械地修复分段的说话人分离结果:按说话人 ID 的跨音轨电平差中位数进行聚类。绝不要手动协调不同素材中的说话人 ID——它们是各素材内部的序号。
哪个音源是节目音频
判断观众最终会听到什么。默认情况下,专用录音设备优于相机内置音频。用户的话优先级最高——“相机 A 的音频很好”就是一项节目音频指定;之后该相机的音轨就和录音设备一样处理(其偏移量已在第 2 部分确定)。在报告中记录这项指定。
如果没有干净的录音设备音频,就在相同的独自说话时段比较相机麦克风。优先选择一条足够好的连续音源;只有当另一条音源在较长一段时间内明显更好,且切换时听不出来,才按说话者或片段切换音源。判断清晰度、噪声、削波和混响,不要看标签或发言次数。
添加标签
在原位重命名音轨,使用有证据支持的最简短标签:Cam · <subject or view> 和 Audio · <speaker or source>。只有在需要区分相似机位时才附加景别:WS(远景)、MS(中景)或 CU(特写),例如 Cam · Speaker A · MS 或 Cam · Two-shot · WS。否则省略景别。身份不确定时,改用编号标签。
同时提供证据表:主张 | 证据(时间戳 + 看到或测量到的内容)| 置信度。不要为证据不支持的内容添加标签——分段转录中的说话人 ID 通常就属于这种情况——并明确说明。
先交付母版,默认继续剪辑
母版就是交付成果——包括报告结构、偏移量、身份和证据。注明它叠放了多个机位,仅供参考,并非供人观看:最上方的音轨会覆盖其他音轨。如果用户明确只要求同步,到这里就停止。否则直接继续第 4 部分;不要等待用户另行提出按说话人剪辑的要求。
第 4 部分——切换到说话者画面(默认,除非只要求同步)
将同步后的母版制作成可观看的初剪:一条跟随对话的视频轨道,节目音频在下方连续播放。
绝不编辑母版
所有剪辑都在新时间线(帧率和画布相同)上进行。同步后的母版是真实依据,所有衍生剪辑都可以据此重建——如果它发生变化,所有偏移量都会变得无法核实。如果任何指令按字面执行会破坏同步(例如同步位置不在 0 帧时要求“把音频从 0 帧开始”),就保持同步并说明原因。保持同步优先于照字面执行指令。
将跟随说话者的时间线视为素材来源或剪辑工作台,而不是不透明片段。如果用户要在现有剪辑中使用其中一部分,只需将相应的普通视频和音频区间实体化到主时间线上。之后若要替换为其他机位,就根据母版偏移量,从该相机中取出相同的实际时间区间。母版是时间记录;不需要隐藏的多机位数据结构。
对话决定剪辑
先构建一份对话文档:从各自指定的节目源(第 3 部分)中提取每个人的发言,删除串话,根据第 2 部分的偏移量按实际时间交错排列,并标注真实姓名和时间戳。然后编写机位计划——起止时间、机位、理由——之后再放置任何内容。
如果用户还要求删除语气词、缩短回答或重构对话,请使用访谈剪辑工作流来决定保留哪些发言区间。多机位剪辑负责同步和机位选择;访谈剪辑负责内容。先敲定内容计划,再制作画面剪辑。
剪辑目标
用尽可能少、但确实有所增益的剪切,让观众始终清楚状况、了解情绪,并保持视觉投入。
含义决定展示什么。节奏决定何时剪切。空间方位决定取多宽的景别。 当画面仍在揭示信息时就保持;有其他画面能提供更多内容时就切换;需要重新建立关系时,就回到现场全景。
机位规则(默认设置,以用户要求为准):
- 承载当下内容的人:当前发言者是默认选择,不是铁律。信息从谁那里产生,就展示谁;反应就是含义时,就展示倾听者;关系承载节奏时,就展示双人或小组;注意力分散时,就展示现场全景。
- 景别范围:使用能保留节奏的最小构图。
CU突显思绪或情绪;MS是对话的默认景别;双人镜头或群像镜头展现关系;WS重建空间方位。遇到新问题或新话题、参与者变化、多人重叠发言、共同发笑或沉默、肢体移动,或连续多个孤立单人镜头之后,都应使用更宽的景别。保持足够时长以便观众看清——通常为 2–5s——然后在注意力集中时收紧景别。 - 时长压力:常规镜头大约需要 2–3s 才能让观众适应。把 4–10s 视为实用的对话镜头时长,而非节拍器。单人镜头不变地持续约 8–12s 后,应主动寻找有依据的替代镜头。保持到 20–25s 时,应当是有意为之。只要表演、情绪或视觉信息仍在发展,就没有最长时长限制。
- 发言者变化:不要追着每个声音切镜。不到 2s 的插话通常留在当前镜头上。突如其来的新发言者开始说话后,先保留约一秒再切;直接提问时,可以切到回答者,展示其准备回答的过程。简短但重要的话语——介绍、直接称呼、包袱——值得给一个镜头;必要时用更宽的景别展开。
- 反应:当真实可见的反应会改变话语的表达效果,或让静态镜头重新焕发生气时,就使用该反应。反应镜头通常为 1.5–3s。不要只为增加变化而插入泛泛的点头镜头,也绝不要借用其他实际时间点的反应。
- 节奏:在思绪、呼吸、手势、目光、笑声或关系变化处剪切,而非依计时器或任意的词语边界。句子边界是安全的剪切点,但不是必须的。
- 接缝:句子边界处一个干净的语音接缝无需处理。若一段画面中出现多个明显的跳切,就用一个与实际时间同步、覆盖整个片段的反应镜头或关系镜头加以遮盖。绝不要破坏源素材同步来制造遮盖镜头。
- 在角度不变的情况下,摄影机重新启动属于同机位衔接,而非剪辑切换。应单独计数并报告。
平铺制作
- 一条视频轨道,机位片段交替排列,中间不留空隙。每个片段的源素材偏移量都应来自主素材放置计算,绝不能根据转录内容重新推导。
- 对于完整时长、跟随发言者的初剪,节目音频应保持连续,并在同步位置不做修剪。对于缩短或重新排序后的剪辑,所有节目麦克风都必须使用完全相同的保留源时间范围,以免画面和音频发生偏移。
- 将每个摄影机片段内嵌的音频全部静音。
- 如果音频超出画面时长(录音设备较晚停止),应保留音频,并让尾段画面保持黑屏。绝不要伪造或冻结画面来填补空白。
保持节目音频连贯
在每段保留的范围内,始终保持所有独立的节目麦克风开启。如果节目音频来自摄像机麦克风,每段只使用选定的声源,在安静的边界处交叉淡化,不要叠加音轨。词语时间戳包含 ±30–60ms 的 ASR 噪声,因此边界需要留出自然余量;按词语时间戳硬切会截断呼吸声和词语起始音。闲置麦克风收录的附和声(“嗯”、笑声)是对话的一部分。完成内容剪辑后,运行 talking-head 工作流中的音频平滑步骤。如果麦克风隔离效果较弱,应标记并安排音频处理,不要分别对说话人进行门限处理。
最后验证,并用数字证明
验证是最后一步,必须在所有剪辑和视觉检查完成之后进行。任何会影响时间线的操作——包括在浏览器中拖动以查看某一帧——都可能移动素材。**检查并非只读操作。**如果你曾在任何时候操作过编辑器 UI,之后都要重新运行这些检查;操作之前通过的检查作废。
- 主时间轴时钟不变量:在同步后的主时间轴上,时间线时间 − 源时间必须等于该源的主时间偏移。
- 衍生剪辑同步不变量:对于每段保留的片段,在同一剪切时间点,分别计算画面和每个节目音频源的
剪辑时间 − (源时间 + 主时间偏移)。这些值必须在一帧以内一致。缩短或重排后的剪辑中,每段片段的偏移可能各不相同;不要强行恢复为主时间轴的偏移。 - 机位抽查:抽查若干镜头(包括时长最长的镜头),窗口中的主要说话人必须与该机位对应的人物一致。
报告实际数值,不要只说“已验证”:主时间轴 MIC1/MIC2 偏移 3.700 / 3.700;111 处剪辑片段,画面/音频主时间 123.000 / 123.000。无法打印出数字的声明,就不算经过检查。
恢复操作也遵循同样的规则。如果你移动了某个素材,恢复每个字段并重新读取该行,以证明已恢复——位置、时长和源偏移各自都可能单独出错,只修复你注意到的那一项不算恢复。
还要报告:剪辑数量、镜头时长最小值/平均值/最大值、对话文档、计划,以及所有与素材冲突的规则和你的处理选择。