Communitygithub.com

音乐推广视频制作

为音乐应用、艺人、专辑、播放列表或单曲制作精美的竖向推广视频或剪辑视频(Spotify风格广告、Reel、TikTok/Instagram剪辑)。它首先要求用户提供3-4个风格参考来塑造最终效果,然后通过代码将用户提供的Logo、应用截图、歌曲、音效和音乐视频片段组装成视频。

音乐推广视频制作 是什么?

该技能是一个全自动化的音乐推广视频制作工作流,专为AI代理设计。它能够根据用户提供的参考素材,生成高度定制化的竖向视频(默认1080×1920)。核心优势在于其内置的优化逻辑:通过分析用户指定的3-4个参考视频或图片,提取色调、排版、节奏和转场风格,并严格遵循一套经过用户反馈打磨的视觉规则(详见`references/direction.md`)。技能支持多个主流AI代理平台(Claude Code, Cursor, Codex),并包含从素材采集、音乐节拍分析、时间线规划到最终渲染和QA的完整流程。它通过`scripts/`目录下的专用脚本(如`beat_grid.py`进行节拍分析,`find_cover.py`自动检索高清封面)自动化了传统视频编辑的繁琐步骤,同时利用参考项目(`assets/reference_project/`)中的成熟渲染引擎,支持粒子动画、动态排版、音乐视频帧同步等高级效果。最终输出包括主视频、纯音效版以及可编辑的项目存档,非常适合需要快速迭代和批量制作的营销内容。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Hakam02-doom/music-promo-video/tree/HEAD

在你喜欢的 AI 中提问

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

文档

音乐推广视频

制作一段竖向(默认1080×1920)的推广视频,使其感觉像一段连续、高级的片段。视频以Logo开场。应用页面、封面和播放器通过平滑的摄像机运镜相互流转。歌曲随画面同步播放并卡准节拍。匹配的结尾卡片结束视频,使其能够循环播放。

本技能封装了一个经过多轮真实用户反馈优化的流程。references/direction.md中的规则就是这些反馈转化成的原则。在设计任何内容之前请先阅读它们:它们是“不错”和“这正是我想要的”之间的区别。

0. 需求获取:首先询问参考素材

在规划和构建任何内容之前,请先向用户索取3-4个参考素材,这些素材将决定输出效果。参考素材决定了最终的视觉风格,因此视频依赖于它们。请使用一条友好的消息一次性询问,同时附上下方的素材清单,以便用户一次性回答。

要求提供:

  • 3-4个参考素材:视频(最佳:它们包含了运动和节奏)、Reel、图片或它们的链接。对于每个素材,询问用户喜欢它的哪些方面:视觉风格、颜色、字体排版、转场、节奏、声音。如果用户只提供你无法打开的链接(Instagram、Pinterest、TikTok),则要求提供下载的文件或截图。切勿声称已经观看了无法打开的内容。
  • 如果用户提供了少于3个素材,再询问一次,并解释更多的参考素材能带来更贴近需求的结果。如果他们仍然无法提供,则使用已有的素材继续,并说明你自行做出的选择。
  • 如果用户提供了超过4个素材,询问哪4个最重要,或者给前几个素材赋予更高权重。

素材清单(在同一条消息中询问,并接受任何项目的“你来选”答复):

  1. Logo(最好是带透明通道的PNG格式)。
  2. 应用截图(主屏幕、音乐库、正在播放),用以展示真实内容。
  3. 歌曲:音频文件以及每首歌的副歌开始和结束时间(用户知道他们的副歌点;不要根据歌词猜测)。
  4. 音效包(可选)。
  5. 官方音乐视频文件(可选,用于同步视频片段)。
  6. 格式、目标时长、帧率(默认1080×1920,60 fps)以及发布平台。

然后仔细研究参考素材(参见references/references-analysis.md):为运动分析制作联系表和密集帧序列。编写一份简短的参考概要:调色板、排版角色、节奏(每小节的剪切数)、转场类型、纹理(颗粒感、光晕、纸张效果或无)、文本与图像的交互方式以及声音特征。用几行文字向用户展示概要和你的计划,然后无需等待进一步批准即可开始构建,除非遇到障碍。

当参考素材与references/direction.md中的规则冲突时,优先遵循用户明确的表述,其次是参考素材,最后是默认规则。

1. 检查环境

你需要ffmpeg和安装了numpy、pillow、opencv-python-headless和scipy的Python(在工作目录中创建一个虚拟环境)。字体使用系统字体;检查三种排版角色是否都能正确解析。如果缺少关键功能,请明确说明缺少什么并停止依赖该功能的步骤;不要将计划当作已完成的视频呈现。

2. 获取并验证素材

  • 封面艺术:切勿使用从截图中裁剪的部分作为可见封面。它们过于模糊,用户会注意到。使用scripts/find_cover.py在线查找官方艺术作品,该脚本会搜索Apple/iTunes(最高3000像素)和JioSaavn,并将每个候选封面与截图裁剪部分进行匹配。仅接受匹配度约0.98以上的结果,并在covers/provenance.json中记录来源(原始URL、标题、艺术家、匹配分数)。如果没有匹配项(例如Spotify生成的混音或电台),如果是简单设计(如“喜欢歌曲”),则重新绘制清晰的矢量版本,否则将该元素舍弃。
  • 歌曲:将歌曲文件复制进来,然后对每首歌运行scripts/beat_grid.py:获取其速度(BPM)、重拍、每半秒的能量值以及最大的能量跳跃点(Drop点)。向用户询问副歌时间,而不是通过转写来推断。
  • 音乐视频:scripts/av_sync.py提供视频音频与歌曲文件之间的偏移量,以确保画面和歌曲保持口型同步。scripts/shot_cuts.py找到视频自身的剪切点,以便裁切可以针对每个镜头跟踪主体。
  • 音效:描述每个文件(长度、峰值位置、明亮度),赋予其角色(轻敲/点击、呼啸声、上升音、爆裂声、铃声、隆隆声、特效),并记录每个文件的峰值偏移量,以便提示音准确落在峰值上。

3. 在节拍网格上规划时间线

  • 当歌曲播放时,将影片时间视为歌曲时间(影片t = 歌曲t + 偏移量)。将场景变化放在重拍上,将爆裂声和定格动画步点放在节拍或八分音符上。
  • 典型的节奏弧线,需根据概要调整:Logo开场 → 音乐库或应用页面 → 专辑轮播 → 正在播放(动态进度条) → Drop时刻(大号动态文字) → 封面墙 → 过渡到下一首歌,包含其自己的封面动画 → 其播放器 → 可选的音乐视频片段 → 粒子特效结局,过渡回Logo → 结尾卡片,与开场匹配。
  • 场景之间的每一次变化都必须是一次连续的运镜:缩放到一个元素,使其变为下一个场景;匹配剪切(同一图像在切换前后处于相同位置);或飞越到暗色区域。在计划中列出每个转场的具体机制。
  • 文字规则:任何文字不得放置在艺术作品之上,任何文字不得隐藏在Logo或封面之后。文字从物体边缘滑出,或通过遮罩线升起,然后完全显现。位于滚动内容上方的标题属于该内容(世界坐标),因此图块不得覆盖它们。

完整的视觉规则及其存在原因请参见references/direction.md。

4. 构建

从assets/reference_project/中的工作示例开始:render.py(画面引擎外加完整的58秒时间线)、audio.py(混音)和style.json。其中已经包含了经过测试的构建模块:

  • 带有模糊预过滤、柔和阴影和裁剪的合成;
  • 逐帧的胶片颗粒感和光晕;
  • 三种角色的Text类(无衬线体、衬线斜体、等宽体),支持缓动入场、定格动画入场和漂移退场;
  • 遮罩线文字揭示和从背后滑出的揭示效果;
  • 带有按压效果的点击涟漪;带动态进度条和红心点击的矢量播放器界面;循环环结尾卡片;
  • 菱形粒子系统(一块一块地组装封面;将其升起并过渡到Logo);
  • 带有帧混合和逐镜头裁切的音乐视频回放;
  • 滤镜扫描、包络线和音效提示工具。

保留引擎,将时间线和内容替换为新项目的内容。阅读references/engine-notes.md了解架构和已解决的陷阱。

按此顺序工作:

  1. 文字和布局测试:在时间线上渲染10-20帧静态图,制作联系表,查看并修复布局问题,然后再进行长时间渲染。
  2. 混音(audio.py):它很快,因此每秒和每次过渡时都测量电平(references/audio.md)。
  3. 在后台进行完整渲染(60 fps在笔记本上渲染60秒大约需要10分钟;120 fps大约需要25分钟)。不要轮询;等待完成通知。

5. 对实际导出进行质量检查

在最终的MP4文件上运行scripts/motion_qa.py。它会报告帧与帧之间的跳跃、定格动画步点、冻结帧和异常暗帧。对于每个不是有意的步点或音乐视频剪切点的尖峰,提取其周围的连续帧并查看它们。然后检查:

  • 时长、fps、帧数和完整解码;
  • 响度(集成LUFS -11至-14,峰值约-1 dBFS,无失真);
  • 每秒电平和过渡电平;
  • 每个转场两侧的画面;
  • 在手机尺寸下的文字可读性。

如实报告:你可以测量音频但无法聆听。请说明这一点,并要求用户通过听觉检查。

对于小修复,仅重新渲染受影响的时段(render.py --range a,b),并使用帧精确修剪将其拼接到主渲染中。重新封装并重新检查拼接处。参见references/qa-and-delivery.md。

6. 尽早交付并迭代

  • 一旦版本完成,即使是较长的更改进行到一半,也要立即发送可播放的MP4。用户通常会在你继续工作时询问“完成了吗?”并希望观看。
  • 每轮迭代:仔细重新阅读用户的表述。他们通常打字很快,可能会在句子中间中断。精确应用他们要求的改动,保持其他所有内容帧一致,并说明更改了什么。如果消息被截断,则完成明确的部分并询问其余部分。
  • 保留以前的版本(archive_vN/),并以版本号和fps命名交付物。

每轮迭代的交付物:

  • 主MP4文件(发布用60 fps;仅在要求时提供120 fps,并解释社交平台最多播放60 fps);
  • 相同视频的纯音效版,无歌曲(用于使用平台授权音乐发布);
  • 可编辑的项目压缩包:代码、风格设置、带有来源的封面、视频中使用到的帧、使用的音效、混音WAV文件以及包含时间线的README;
  • 关于更改内容、已检查和未检查事项的简短说明,并提醒用户歌曲、封面艺术和视频片段受版权保护:用于个人编辑没问题,但平台可能会对公开帖子进行静音或版权主张。

参考文件

  • references/direction.md:根据用户反馈学到的视觉和编辑规则。设计前请阅读。
  • references/references-analysis.md:如何研究用户的3-4个参考素材并编写概要。
  • references/audio.md:歌曲包络线(低到高、高到低)、无缝节拍匹配过渡、音效放置、响度。
  • references/engine-notes.md:参考引擎的架构以及已解决的陷阱。
  • references/qa-and-delivery.md:检查、部分重新渲染和拼接、编码、打包。
  • scripts/:beat_grid.py、find_cover.py、av_sync.py、shot_cuts.py、motion_qa.py(使用-h查看用法)。
  • assets/reference_project/:完整的工作示例(Spotify推广视频,“Raw Rich Rare”到Drake的“National Treasures”)。

相关技能