mcpField
A
add-music

add-music

github.com/dojocodinglabs创意与媒体16661 次安装2 周前更新
代码仓库

关于 add-music

面向 Remotion 的配乐技能,使用 Eleven Music 生成背景音乐并添加到视频合成中。内容涵盖情绪与提示词选择、曲目时长设置,以及带淡入淡出的音乐编排。

主要功能

  1. 01规划情绪与节奏
  2. 02生成 Eleven Music 曲目
  3. 03默认生成纯器乐
  4. 04按视频时长设置曲目长度
  5. 05在合成中添加淡入淡出

适用场景

  1. 01为 Remotion 视频添加背景音乐
  2. 02按指定情绪生成曲目
  3. 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 需要付费套餐。

  1. 如果项目尚未设置 ELEVENLABS_API_KEY,请在项目根目录运行 npx -y @elevenlabs/cli@latest onboard init,并按输出的说明操作。切勿在聊天中索要密钥。
  2. 运行 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 },
];
  1. 将 lengthMs 设为视频时长再加几秒(如果有旁白,请先测量旁白时长)。脚本会强制生成纯器乐;若要生成带人声的曲目,请设置 forceInstrumental: false。
  2. 在项目根目录运行 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 技能)为一首曲目划分不同片段。

评论

支持 Markdown