关于 add-music
面向 Remotion 的配乐技能,使用 Eleven Music 生成背景音乐并添加到视频合成中。内容涵盖情绪与提示词选择、曲目时长设置,以及带淡入淡出的音乐编排。
主要功能
- 01规划情绪与节奏
- 02生成 Eleven Music 曲目
- 03默认生成纯器乐
- 04按视频时长设置曲目长度
- 05在合成中添加淡入淡出
适用场景
- 01为 Remotion 视频添加背景音乐
- 02按指定情绪生成曲目
- 03为视频不同段落制作配乐
MCP 相关
README 提到 ElevenLabs MCP 的 compose_music 工具已弃用,但仍可用于快速交互式单次生成。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ dojocodinglabs/ remotion-superpowers --skill add-music安装后在 Claude Code 中输入/add-music确认已加载。
详细介绍
添加音乐 — 生成并集成背景音乐
你将帮助用户为其 Remotion 项目添加背景音乐。
加载 remotion-production 技能,以了解 music-scoring 和 audio-integration 规则,并加载 ElevenLabs 官方的 music 技能(npx skills add elevenlabs/skills),以了解 API 详情。
工作流
1. 了解氛围
如果用户尚未说明,请询问:
- 流派 — 电子、爵士、古典、lo-fi、氛围音乐、摇滚、管弦乐、流行?
- 氛围 — 欢快、平静、戏剧性、鼓舞人心、活泼、电影感?
- 节奏 — 快、中等、慢?
- 人声 — 纯器乐(背景音乐推荐),还是有人声?
2. 生成音乐
使用 Eleven Music(music_v2_5)生成。付费 ElevenLabs 套餐允许将其用于商业用途,且 Music API 需要付费套餐。
- 如果项目尚未设置
ELEVENLABS_API_KEY,请在项目根目录运行npx -y @elevenlabs/cli@latest onboard init,并按输出的说明操作。切勿在聊天中索要密钥。 - 运行
npm i @elevenlabs/elevenlabs-js,然后在scripts/generate-audio.ts中添加一个music条目(如果文件不存在,请按照audio-integration规则创建):
const music = [
{ name: "music-bg", prompt: "[genre] background music, [mood], [tempo], [additional descriptors]", lengthMs: 30_000 },
];
- 将
lengthMs设为视频时长再加几秒(如果有旁白,请先测量旁白时长)。脚本会强制生成纯器乐;若要生成带人声的曲目,请设置forceInstrumental: false。 - 在项目根目录运行
node scripts/generate-audio.ts。曲目将保存到public/music-bg.mp3。如需重新生成,请删除该文件并再次运行脚本。
优质提示词示例:
- “欢快的电子背景音乐,充满活力,现代科技初创公司氛围”
- “平静的原声吉他,温暖友好,咖啡馆氛围”
- “史诗般的电影管弦乐,营造并释放紧张感,预告片风格”
- “轻松惬意的 lo-fi 嘻哈节拍,氛围慵懒梦幻,适合学习”
提示词中不要提及艺人、乐队或歌曲歌词;Eleven Music 会拒绝此类内容并建议改写。
替代方案:
- ElevenLabs MCP 的
compose_music工具已弃用(上游已归档),但仍可用于快速交互式生成单曲。它会将文件写入public/;请将输出文件重命名为music-bg.mp3。 - KIE
generate_music(remotion-media,Suno)适合生成低成本草稿:使用prompt、output_name: music-bg、instrumental: true。Suno 及其他由 KIE 转售的模型未获其所有者授权通过 KIE 使用。请将 KIE 音频用于草稿和内部工作,最终商业音频则使用 ElevenLabs 生成。
3. 接入合成
使用 @remotion/media 中的 <Audio> 接入音频(通过 npx remotion add @remotion/media 安装),并按照官方 remotion-markup 技能(audio.md)的说明添加淡入/淡出:
import { Audio } from "@remotion/media";
import { interpolate, staticFile, useCurrentFrame, useVideoConfig } from "remotion";
const frame = useCurrentFrame();
const { durationInFrames, fps } = useVideoConfig();
<Audio
src={staticFile("music-bg.mp3")}
volume={interpolate(
frame,
[0, fps, durationInFrames - 2 * fps, durationInFrames],
[0, 0.25, 0.25, 0],
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" },
)}
/>
4. 根据旁白进行调整(如有)
如果项目中有旁白,请实现音量闪避——旁白期间将音乐音量降低至 0.1,静音部分则设为 0.3。具体实现方式请参阅 audio-integration 规则。
5. 在 Studio 中预览
如果 Studio 尚未运行,请使用 npx remotion studio 启动(如果使用应用内浏览器,则可加上 --no-open,然后打开它输出的网址)。请用户在 Studio 中试听。除非用户要求生成 MP4,否则不要渲染。
提供以下调整选项:
- 音量太大或太小?
- 氛围不合适?修改提示词,删除
public/music-bg.mp3,然后重新运行脚本。 - 音乐太短?使用更长的
lengthMs重新生成,或为<Audio>添加loop。 - 不同片段需要不同音乐?添加更多
music条目(music-intro、music-main……),并为每个<Audio>设置各自的from和durationInFrames;或者使用合成计划(官方music技能)为一首曲目划分不同片段。