mcpField
V
video-composer

video-composer

github.com/danishi创意与媒体038 次安装5 周前更新
代码仓库

关于 video-composer

此 Skill 协调图像、视频、音乐和旁白生成 Skill,在 Remotion 时间线上制作 MP4。它涵盖需求收集、需审批的分镜计划、渲染和画面检查。

主要功能

  1. 01协调四种媒体生成 Skill
  2. 02收集视频需求并征求批准
  3. 03搭建 Remotion 项目
  4. 04构建数据驱动的场景时间线
  5. 05渲染并检查视频静帧

适用场景

  1. 01制作带旁白的宣传视频
  2. 02组合生成的图像与视频片段
  3. 03规划场景时长、字幕和转场
  4. 04检查并修订渲染后的 MP4

安装

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

$npx skills add https://github.com/danishi/claude-code-config --skill video-composer

安装后在 Claude Code 中输入/video-composer确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.claude-plugin/
plugin.json
references/
asset-pipeline.md
remotion-template.md
self-review.md
scripts/
check_skills.py
render_video.py
scaffold.py

详细介绍

Video Composer — 编排式丰富视频制作

此技能通过在 Remotion(React)时间线上组合四种媒体技能,将请求制作成完整的 .mp4:

层技能
图像 / 背景nanobanana
视频片段veo
背景音乐lyria
旁白 / 配音gemini-tts

它是一个编排器:本身不生成媒体,而是调度上述技能并组合它们的输出。


工作流(必须按顺序执行)

步骤 0 — 检查前置条件和同级技能

首先运行可用性检查:

python scripts/check_skills.py
  • 全部可用 → 继续。
  • 部分缺失 → 这通常意味着其他用户单独安装了 video-composer(例如通过 npx skills add)。提示他们安装缺失的技能,使用脚本输出的命令(来自仓库 README),或提供有文档说明的备用方案(参见 references/asset-pipeline.md → “缺失的技能”)。不要默默跳过用户要求的资产类型——应明确说明可选方案。

另请确认工具:Node.js ≥ 18(node -v)和 npx。Remotion 自带 ffmpeg,因此不需要 ffmpeg。媒体技能需要 API 访问权限:GEMINI_API_KEY(或 Vertex AI)。参见 references/asset-pipeline.md。

步骤 1 — 收集需求

采访用户(有任何不明确之处时使用 AskUserQuestion),以确定:

  • 目的 / 信息和目标受众
  • 时长(例如 15s / 30s / 60s)和方向(16:9 / 9:16 / 1:1)
  • 语气 / 风格(企业风、活泼、电影感、简约……)
  • 必需内容:旁白?屏幕字幕?BGM 氛围?品牌颜色 / Logo?
  • 语言(旁白和字幕使用)
  • 用户已有的资产,以及需要生成的内容
步骤 2 — 返回构图方案并获取批准(关卡)

制定简洁、结构化的方案并呈现给用户。**在用户批准前,不要生成任何内容或进行渲染。**方案必须包括:

  • 整体规格:分辨率、fps、总时长、方向
  • 逐场景表格:# · 时长 · 视觉内容(图像 / 视频 + 提示词摘要)· 旁白文本 · 屏幕字幕 · 转场
  • BGM 氛围和任何 Logo / 品牌元素
  • 哪些资产是生成的(以及由哪个技能生成),哪些是备用 / 用户提供的

与用户迭代完善方案,直到用户明确批准。只有在此之后才能继续。

步骤 3 — 搭建 Remotion 项目
python scripts/scaffold.py <project-dir>

这会写入一个自包含、数据驱动的 Remotion 项目(结构和 props 架构参见 references/remotion-template.md)。每个视频都会搭建一个全新项目。

步骤 4 — 生成资产

根据已批准的方案,调用各个同级技能,并将输出放在 <project-dir>/public/{images,video,audio}/ 下。确切命令和时长提示参见 references/asset-pipeline.md。保持图像风格一致。

BGM 仅存在于 lyria 层。 Veo 片段会在时间线上保留原生音频(SE、环境音、对话),因此生成 Veo 片段时,必须始终抑制内嵌音乐——传入 --negative-prompt "background music, soundtrack, musical score, BGM",并且绝不要在提示词中要求音乐。否则片段自带的 BGM 会与全局 lyria BGM 冲突。保留 SE / 环境音;仅抑制音乐。详情参见 references/asset-pipeline.md → “绝不让 veo 片段携带自己的 BGM”。

第 5 步 — 编写时间线(props.json)

复制 props.sample.json → props.json,并填写各个场景:通过相对于 public/ 的路径引用素材,为每个场景设置 durationInFrames(round(seconds * fps))、字幕、配音、转场和 BGM。架构与时序规则:references/remotion-template.md。

第 6 步 — 渲染并进行多模态自我审核(自主迭代)
python scripts/render_video.py --project <project-dir> \
  --props <project-dir>/props.json --install --review-frames 6

然后,使用视觉能力读取导出的审核静帧,并根据 references/self-review.md 中的评分标准进行评分。自主迭代——优先修复成本最低的层(props → 重新生成素材)——直至所有标准均通过或达到迭代上限(默认为 3 次)。

第 7 步 — 交付

结果达到要求后,将最终 .mp4 交付给用户(使用 SendUserFile 发送文件)。如果达到迭代上限时仍存在已知问题,则交付最佳版本,并列出剩余问题以及建议的后续步骤。


脚本

脚本用途
scripts/check_skills.py检测同级技能;输出安装指南/备用方案
scripts/scaffold.py为全新的数据驱动 Remotion 项目搭建框架
scripts/render_video.pynpm install + 渲染 + 导出审核静帧

参考资料

文件内容
references/asset-pipeline.md驱动各个媒体技能的精确命令;时序;缺少技能时的处理方式
references/remotion-template.md项目结构与 props.json 时间线架构
references/self-review.md多模态审核评分标准与自主迭代循环

Props 架构(快速参考)

{
  "fps": 30, "width": 1920, "height": 1080,
  "bgm": { "src": "audio/bgm.mp3", "volume": 0.22 },
  "scenes": [
    {
      "durationInFrames": 150,
      "media": { "type": "image" | "video", "src": "images/x.png", "fit": "cover" },
      "kenBurns": true,
      "captions": [ { "text": "…", "fromFrame": 0, "toFrame": 140, "position": "bottom" } ],
      "voiceover": { "src": "audio/vo1.wav", "volume": 1.0, "delayInFrames": 6 },
      "transitionToNext": { "type": "fade" | "slide" | "wipe" | "none",
                             "durationInFrames": 18, "direction": "from-right" }
    }
  ]
}
  • 素材的 src 路径相对于 public/(http(s) URL 会直接传递)。
  • 总时长会自动计算(场景时长总和减去转场重叠时长)。

原则

  • 必须设置审批关卡——用户批准计划前,绝不开始生成或渲染。
  • 绝不交付未经审核的渲染结果——始终运行自我审核循环。
  • 优先使用此代码库的技能;缺少某项技能时,提示安装或使用文档记录的备用方案,并在计划中明确说明权衡。
  • 先修复成本低的问题,再处理成本高的问题——重新生成素材前先编辑 props。
  • 只使用一条 BGM 音轨——音乐应属于 lyria 层;生成 veo 视频片段时,始终通过负面提示词抑制音乐,避免片段内嵌的 BGM 与全局 BGM 冲突。保留片段的 SE/环境音。

评论

支持 Markdown