mcpField
B
beat-sync-editing

beat-sync-editing

github.com/iart-ai创意与媒体1723.1k 次安装18 周前更新
代码仓库

关于 beat-sync-editing

面向视频剪辑与动态图形创作者的节拍同步剪辑技能,将音乐和叙事结构转化为精确到帧的剪辑点、转场与变速方案,并可用于 NLE 或代码时间线。

主要功能

  1. 01将 BPM 换算为帧级节拍网格
  2. 02按乐句和节奏规划剪辑点
  3. 03设计匹配剪辑及 J/L 转场
  4. 04规划速度渐变与节奏弧线
  5. 05生成可移植的剪辑时序方案

适用场景

  1. 01将素材剪辑到音乐节拍
  2. 02修正拖沓或不连贯的节奏
  3. 03规划高潮、转场和速度渐变
  4. 04将剪辑方案转换为帧级时间线

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/iart-ai/motion-design-skills --skill beat-sync-editing

安装后在 Claude Code 中输入/beat-sync-editing确认已加载。

附带文件README.mdreferences/editing-techniques.md

详细介绍

节拍同步剪辑(切镜与节奏)

时间线的技艺:片段与节拍如何组合成一段让人感觉恰到好处的作品。剪辑是一种时间设计——切点落在何时,与屏幕上呈现的内容同样重要。这项技能将音乐和叙事结构转化为具体的切点、转场和变速,可在 NLE 中实现,也可用代码中的帧数表示。

适用场景

  • 组接序列,或根据音乐剪辑素材。
  • 节奏拖沓或显得支离破碎;转场感觉随意。
  • 构建速度坡道、匹配剪辑或紧张/释放结构。
  • 将剪辑方案转换为帧精确的时间线(Remotion、AE、NLE)。

决策树

What's the editing problem?
├─ Cuts feel off the music
│   └─ get BPM + offset → frames_per_beat = (60/BPM)*fps
│      → cut on PHRASES (2/4/8 beats), biggest visual on the drop
├─ A cut feels jarring / visible
│   └─ cut on action (mid-motion), match direction + velocity
│      → still rough? motivate a transition (match / J / L), else hard cut
├─ Pacing drags or feels flat
│   └─ shape an arc: Establish → Develop → Climax → Resolve
│      → shorten avg shot length toward climax, hold after it
├─ A hit needs impact
│   └─ speed ramp INTO it (slow-mo), snap back; land slowest frame on the beat
└─ Need to hand it to code
    └─ express every cut as a frame number, clip as from/duration,
       transition as overlap, retime as eased time-remap (Remotion/AE)

交叉参考——运用共享框架。

  • 运动风格(motion-art-direction)决定切镜节奏:选定的能量风格直接对应乐句长度和转场类别。选定一种并贯彻到底(见下表)。
  • 三大支柱 + 节拍同步(animation-principles):先确定情绪意图(高燃还是平静)——它决定你是每小节切一次,还是保持四小节。animation-principles 定义 BPM 与节拍的关系;本技能将其转化为帧精确的切点,并进一步讲解转场和变速技巧。
运动风格 → 切镜节奏
风格乐句(每隔多少拍剪切)转场类别变速效果
俏皮4 拍,切分重音匹配剪辑、快速甩镜轻微变速、弹跳感有趣、动感
高端8–16 拍,长时间停留硬切 + 偶尔叠化缓慢、平滑的变速优雅、从容
企业风8 拍,平稳干净的硬切极少清晰、可信
活力高潮时每 1–2 拍硬切、甩镜、利落快速切换在节拍上强烈变速大胆、振奋

核心工作流

1. 找准网格:BPM → 帧数

沿着音乐的节奏网格剪辑,而不是依据任意时间码。将 BPM 换算为帧数,确保切点精确到帧。

frames_per_beat = (60 / BPM) * fps

在 120 BPM、30 fps 下:(60/120)*30 = 15 帧/拍(500ms/拍)——每隔 15 帧剪切一次,就能踩准节拍。按乐句剪切(每 2/4/8 拍一次),而不是每拍都切,否则剪辑会显得过于急促。将最重要的视觉瞬间落在音乐的高潮点上。

八分音符网格:节拍的细分可以提供更精细的重音点,同时不偏离节奏网格。在 120 BPM/30 fps 下:

细分ms帧数 @30fps用途
1 拍(四分音符)50015主要剪辑网格
½ 拍(八分音符)2507.5重音/快速闪切
¼ 拍(十六分音符)1253.75重击、卡顿、瞬态特效
1 小节(4 拍)200060乐句/段落边界

让重音对齐八分音符网格;结构性切点则落在节拍或小节上。

// Generate on-beat frame numbers (JS / Remotion / AE-friendly)
const bpm = 120, fps = 30;
const framesPerBeat = (60 / bpm) * fps;       // 15
const phrase = 4;                              // cut every 4 beats
const cuts = Array.from({length: 16}, (_, i) =>
  Math.round(i * framesPerBeat * phrase));     // [0,60,120,180,...]
2. 隐藏接缝:在动作/运动中切换

当运动引导视线跨越切点时,剪切就会变得不易察觉。在动作过程中剪切(例如转身、伸手或甩镜),让大脑在切点前后持续追踪动作。确保切点两侧的运动方向和速度匹配。对于动态图形,在变换达到峰值时剪切——也就是形状运动到一半、而非静止时。

3. 有意选择转场

默认使用硬切。只有在有明确理由时,才选择其他转场:

  • 匹配剪辑 — 前后画面共享形状、位置或运动矢量,因此剪辑看起来像一次变形(圆形变成月亮;手臂划过画面,带出下一个场景)。这是运动设计中效果最强的转场。
  • J-cut — 下一个镜头的音频先于画面开始(声音先行)。推动观众继续观看;非常适合对白和揭示。
  • L-cut — 当前镜头的音频延续到下一个画面之下(声音滞后)。让场景切换更平滑。
  • 甩镜/运动模糊转场 — 快速摇摄将两个镜头融合;需要匹配模糊方向。
  • 亮度擦除/擦除/叠化 — 表示时间流逝或更柔和的情绪;过度使用会显得业余。

剪辑类型速查表:

剪辑类型对齐内容传达效果典型偏移量适用场景
硬切无 — 瞬间切换中性,默认090% 的剪辑
匹配剪辑共享形状/位置/运动矢量变形0(容差 1–2f)两个镜头在视觉上相互呼应
J-cutB 镜头的音频先于画面推动观众继续观看音频提前 4–12f对白、揭示
L-cutA 镜头的音频延续到 B 镜头之下让切换更平滑音频延后 12–24f场景切换、环境音
甩镜/运动模糊摇摄过程中模糊方向一致活力、“嗖”感融合约 6–10f燃点、场景跳转
速度渐变重新定时,不是剪辑冲击/强调落在节拍上需要让冲击点落准时
4. 重新定时:速度渐变

速度渐变(逐渐改变时间流速)能增强冲击力:先慢动作进入冲击点,再迅速恢复正常速度。速度渐变过程中要保持运动模糊一致,否则慢动作部分会显得像频闪。

Speed ramp on an impact (frames, 30fps):
  0–20    100% speed   (run-up)
  20–28   ease down to 25%  (anticipation, slow-mo on the hit)
  28      IMPACT lands on the beat
  28–40   ease back to 100% (release)

在 NLE 中,使用时间重映射关键帧并采用平滑插值,同时启用帧混合/光流,以获得流畅的慢动作。在 Remotion/AE 中,使用带缓动插值的 timeRemap/valueAtTime 曲线,并保持快门/运动模糊设置一致。

5. 塑造弧线:序列节奏

作品需要有起伏,而不是始终保持同一强度:

Establish → Develop → Climax → Resolve
  longer holds   shortening cuts   fastest + the drop   release/breathe

有意调整镜头时长:快速剪辑能积蓄能量,较长的停留则让关键时刻充分呈现。通过缩短平均镜头时长来推向高潮,然后在高潮之后留出一拍休息。最常见的错误是节奏始终均匀——无论内容如何,都会显得平淡。

节奏弧线 — 紧张 → 释放(能量是剪辑频率的导数):

阶段每隔几拍剪辑平均镜头时长紧张度说明
建立8–16 拍最长低交代地点/氛围,留出呼吸空间
发展8 → 4 拍逐渐缩短上升加快剪辑,逐步蓄势
高潮1–2 拍最短峰值爆发点;最大的视觉冲击 + 速度渐变
收束长时间停留最长释放高潮过后,让 Logo/CTA 从容呈现

快速参考

目标方法
在节拍上剪辑每拍 (60/BPM)*fps 帧;在乐句处剪辑
落准爆发点将最大的视觉冲击放在音乐爆发点
无形剪辑在动作中剪辑/匹配运动
营造变形感匹配剪辑(共享形状/运动)
推动观众继续观看J-cut(音频先行)
平滑切换场景L-cut(音频滞后)
增强冲击力慢速进入冲击点,再迅速恢复
积蓄能量缩短平均镜头时长
留出呼吸空间高潮后停留一段时间

示例详解

优秀示例 — 30 秒活力十足的产品短片,128 BPM,30 fps

简报:炒热新款运动鞋发售氛围,动感十足的个性,在第 32 拍呈现发售时刻。

  • 网格:每拍 14.06 帧。发售时刻 = 第 32 拍 ≈ 第 450 帧(采用累积取整,避免偏移)。
  • 节奏弧线:铺垫阶段为 0–120(两个 2 秒停留)。展开阶段为 120–450(剪辑节奏从每 8 拍缩短至 4 拍、再到 2 拍,能量逐步上升——契合动感十足的个性)。第 450 帧达到高潮(发售时刻)。收尾阶段为 700–900(以一个较长的 CTA 停留结束)。
  • 剪辑点:结构性剪辑点落在小节线上;展开阶段有两个强调性闪切,卡在八分音符网格上。
  • 制作技巧:第 112 帧是匹配剪辑(共享的圆形标志 → 车轮)。第 450 帧的发售时刻呈现最震撼的画面,并加入 100%→25%→100% 的速度渐变,让最慢帧落在强拍上。CTA 以 L 型剪辑进入(音频延续约 18 帧)。
  • 代码实现:每个剪辑点对应一个帧号,每个片段使用 <Sequence from/durationInFrames>,速度渐变使用缓动时间重映射,并通过 frame/fps 对照检测到的节拍秒数验证节拍。

成功原因:以乐句为基础的网格、清晰的节奏弧线、发售时刻的一个重大场面、有动机的转场,以及精准到帧且可移植的方案。

反面示例 —“每拍都剪一次,并且每次都用叠化”
  • 32 拍全部硬切 → 节奏紧逼,没有视觉焦点,观众到第 8 拍就会疲劳。
  • 每个剪辑点都用 12 帧交叉淡化来“让画面更流畅” → 画面黏糊、不专业,而且叠化中点偏离网格,导致没有任何内容落在节拍上。
  • 从头到尾都使用 15 帧的镜头 → 平淡无起伏;没有铺垫,没有高潮,发售时刻也毫无亮点。
  • 从第 0 帧开始计算 BPM,忽略曲目的偏移 → 每个剪辑点都会提前几帧,感觉“差不多对”,其实不对。

修正方法:按 4/8 拍乐句剪辑,默认使用硬切,构建节奏弧线,以第 1 拍的偏移对齐网格,并将最震撼的画面放在发售时刻。

常见错误

症状原因修正方法
剪辑感觉仓促、繁杂每拍都剪一次按 2/4/8 拍乐句剪辑;谨慎地在八分音符网格上添加强调
剪辑点感觉“差一点踩上节拍”网格从 0:00 开始,忽略了曲目偏移记录第 1 拍的偏移;以此为基准进行累积帧数计算
长片段中出现偏移每步都对每拍帧数取整对每拍的累积值取整,而不是逐步取整
剪辑点感觉突兀剪辑点落在静止处或动作之间在动作中或动作进行时剪辑;匹配方向和速度
慢动作出现频闪速度低于 100% 时没有插入帧启用光流/帧混合;保持快门设置一致
整段内容感觉平淡节奏均匀不变设计“铺垫→展开→高潮→收尾”的节奏弧线;逐步缩短镜头,直至发售时刻
转场看起来不专业把叠化/擦除当作拐杖默认使用硬切;为匹配剪辑/J 型/L 型剪辑提供动机;先修正时机
没有任何内容落在节拍上缺少明确的高潮将最震撼的画面放在发售时刻;之后适当停留

交付成果 — 剪辑时序计划

好的计划不依赖特定渲染器,可交接给 NLE 或代码时间线(remotion-video、after-effects):

  • 曲目规格:BPM、fps、第 1 拍偏移、发售时刻帧号、每拍帧数。
  • 节奏弧线:四个阶段各自的帧范围,以及各阶段目标平均镜头时长。
  • 剪辑列表:每个剪辑点的绝对帧号(根据 BPM 计算)、该剪辑点对应的片段,以及剪辑类型。
  • 转场:类型(硬切/匹配剪辑/J 型/L 型/甩镜转场);对于 J 型/L 型剪辑,注明音频偏移帧数。
  • 变速:每个速度渐变对应的缓动时间重映射关键帧(从→到的百分比、帧数、是否启用光流)。
  • 节拍标记:用于验证的强拍/八分音符网格帧数组。
  • 交叉引用:决定节奏的运动个性。

对于 Remotion/AE,本计划就是帧时序:剪辑点 → from/durationInFrames(或图层入点/出点),速度渐变 → 缓动 interpolate/时间重映射,J 型/L 型剪辑 → 偏移 <Audio from>/音频图层。NLE 与代码的映射表见 references/editing-techniques.md。

完成前 — 检查清单
  • 已记录 BPM、fps 和第 1 拍偏移量;已计算 frames_per_beat 并进行累积舍入。
  • 按乐句(2/4/8 拍)剪切,而不是每拍都剪;仅在八分音符网格上添加重音。
  • 最大的视觉画面落在 drop 上。
  • 存在一条叙事弧线(建立→发展→高潮→收束);平均镜头长度在高潮前逐渐缩短,然后停留。
  • 默认使用硬切;其他转场均有明确目的;以帧为单位指定 J/L 型音频偏移量。
  • 变速效果中最慢的一帧落在节拍上;已启用光流/帧混合。
  • 剪辑节奏与选定的运动风格相匹配。
  • 每处剪切、转场和变速都以帧数/持续时长表示,以便移植到 Remotion/AE/NLE。
  • 已验证音频同步:将 frame/fps 与检测到的节拍秒数进行核对。

注意事项

  • 每拍都剪会显得杂乱;按 2/4/8 拍乐句剪切,并谨慎添加重音。
  • 变速效果缺少一致的运动模糊会显得闪烁;慢动作时启用光流/帧混合。
  • 交叉淡化/叠化无法弥补糟糕的剪切——应先调整时机。
  • 音频同步漂移:在代码时间线上,将 frame/fps 与检测到的节拍秒数进行核对;在 NLE 中,将音频锁定到帧精确的参考音轨。
  • 全程节奏一致会显得平淡。务必塑造叙事弧线。

参考文件

  • references/editing-techniques.md — BPM→帧数计算及乐句表格、动作衔接剪辑拆解、逐步构建匹配剪辑、带帧偏移量的 J-cut/L-cut 音频提前/滞后示意图、含运动模糊/光流设置的完整变速方案、包含镜头长度曲线的序列叙事弧线模板,以及 NLE 时间线与代码时间线(Remotion <Sequence> / AE 时间重映射)之间的剪辑方案映射。

评论

支持 Markdown