mcpField
V
video-producer-agent

video-producer-agent

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

关于 video-producer-agent

video-producer-agent 是用于制作完整视频的编排技能,面向需要产品、讲解、宣传或培训视频的创作者。它先收集需求,再组织脚本与分镜、视频片段、配音、音乐和最终组装。

主要功能

  1. 01逐项收集视频制作需求
  2. 02规划脚本、分镜与场景
  3. 03生成视频片段、配音和背景音乐
  4. 04配置自定义、原生或静音音频
  5. 05组装片段与音轨并支持复用素材

适用场景

  1. 01制作产品宣传或演示视频
  2. 02制作讲解和培训内容
  3. 03将现有图片、视频或音频素材编入成片

安装

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

$npx skills add https://github.com/michaelboeding/skills --skill video-producer-agent

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

附带文件scripts/assemble.pyscripts/init_project.py

详细介绍

视频制作

创作包含配音、音乐和画面的完整视频。

这是一项编排技能,可组合以下功能:

  • 脚本/分镜生成(Claude)
  • 配音合成(Gemini TTS)
  • 背景音乐(Lyria)
  • 视频片段生成(Veo 3.1)或图像动画
  • 最终合成(通过 media-utils 使用 FFmpeg)

工作流

步骤 1:收集需求(必需)

⚠️ 请勿跳过此步骤。在收集到所有答案之前,请勿运行 init_project.py。

使用交互式提问——一次只问一个问题,等待对方回答后再问下一个。这将创建一个协作式、以规格为导向的流程。

问题流程

⚠️ 请对以下每个问题使用 AskUserQuestion 工具。 不要只在回复中列出问题——请使用该工具创建带有所示选项的交互式提示。

Q1:主题

“我来为你制作视频!首先——视频的主题是什么?

(例如:产品发布、品牌故事、教程、说明视频,或描述你自己的主题)”

等待回复。

Q2:时长

“视频时长应为多久?

  • 15 秒 (快速吸引注意)
  • 30 秒 (标准广告)
  • 60 秒 (说明视频)
  • 2 分钟以上 (详细内容)
  • 或指定你自己的时长”

等待回复。

Q3:风格

“你想要哪种视觉风格?

  • 高端/奢华
  • 有趣/活泼
  • 企业/专业
  • 戏剧化/电影感
  • 极简/简洁
  • 或描述你自己的风格”

等待回复。

Q4:素材

“你有现成的图片或视频片段可供使用吗?

  • 没有,全部生成
  • 有,我有图片 (请提供路径)
  • 有,我有视频片段 (请提供路径)”

等待回复。

Q5:音频方案

“我们应该如何处理音频?

  • 自定义——我来生成配音和背景音乐
  • Veo 原生音频——使用 Veo 内置的对白/音效/环境音
  • 静音——不添加音频,之后再处理”

等待回复。

Q6:声音 (如果使用自定义音频)

“配音应采用什么语气?

  • 专业
  • 友好/温暖
  • 充满活力
  • 平静/舒缓
  • 戏剧化
  • 或描述你自己的语气”

等待回复。

Q7:音乐 (如果使用自定义音频)

“你想要什么音乐氛围?

  • 现代电子乐
  • 电影感/史诗感
  • 欢快流行
  • 氛围感/轻松
  • 企业风格
  • 或描述你自己的风格”

等待回复。

Q8:格式

“你需要什么宽高比?

  • 16:9(YouTube、网页)
  • 9:16(TikTok、Reels、Shorts)
  • 1:1(Instagram 信息流)”

等待回复。

Q9:分辨率

“你需要什么分辨率?

  • 720p(生成速度更快)
  • 1080p(标准高清)”

等待回复。

Q10:模型

“你想使用哪个 Veo 模型?

  • veo-3.1 — 最新、质量最高(默认)
  • veo-3.1-fast — 生成速度更快,质量略低
  • veo-3 — 上一代
  • veo-3-fast — 上一代,生成速度更快”

等待回复。

快速参考
问题决定事项
主题场景内容和提示词
时长场景数量(Veo 片段时长必须为 4、6 或 8 秒)
风格视觉提示词和音乐选择
素材生成新素材还是使用现有素材
音频custom、veo_audio 或 silent
声音TTS 声音选择
音乐Lyria 提示词
格式Veo 的宽高比
分辨率720p 或 1080p 输出质量
模型veo-3.1、veo-3.1-fast、veo-3、veo-3-fast

步骤 2:初始化项目

收集到用户的答案后,根据其偏好初始化项目:

python3 ${CLAUDE_PLUGIN_ROOT}/skills/video-producer-agent/scripts/init_project.py \
  --name "Product Launch Video" \
  --duration 30 \
  --aspect-ratio 16:9 \
  --audio-strategy custom \
  --scenes 5
步骤 3:配置 project.json

根据用户的答案,编辑 project.json,填写场景提示词、配音文本和音乐风格。

步骤 4:合成视频
python3 ${CLAUDE_PLUGIN_ROOT}/skills/video-producer-agent/scripts/assemble.py \
  --project ~/my_video_project/

项目结构

初始化项目后,将创建以下文件夹结构:

my_project/
├── project.json          # Configuration: scenes, voiceover, music, settings
├── storyboard.md         # Planning document for the video
├── scenes/               # Generated video clips from Veo
│   ├── scene1_intro.mp4
│   ├── scene2_features.mp4
│   └── scene3_cta.mp4
├── audio/                # Audio assets
│   ├── voiceover.wav     # Generated voiceover
│   ├── background_music.wav  # Generated music
│   └── final_mix.mp3     # Mixed audio track
├── work/                 # Intermediate files (auto-generated)
│   ├── silent_scene1.mp4
│   ├── video_concatenated.mp4
│   └── ...
└── output/               # Final deliverables
    └── product_launch_video_final.mp4

脚本

init_project.py

使用文件夹结构和模板初始化新的视频项目。

# Basic project
python3 init_project.py --name "My Video" --duration 30

# Create in specific directory
python3 init_project.py --name "Demo Video" --output ~/Videos/

# Vertical video for social
python3 init_project.py --name "Instagram Reel" --aspect-ratio 9:16 --duration 15

# Use Veo's native audio (no custom voiceover/music)
python3 init_project.py --name "Cinematic Scene" --audio-strategy veo_audio

# More scenes
python3 init_project.py --name "Long Video" --duration 60 --scenes 5

选项:

选项默认值说明
--name必填项目名称
--output当前目录父目录
--duration30目标时长(秒)
--aspect-ratio16:916:9、9:16、1:1、4:3
--audio-strategycustomcustom、veo_audio、silent
--scenes3场景占位符数量
assemble.py

编排完整的视频组装流水线。

# Full pipeline (generate everything + assemble)
python3 assemble.py --project ~/my_project/

# Skip generation (use existing scene/audio files)
python3 assemble.py --project ~/my_project/ --skip-generation

# Dry run (show what would be done)
python3 assemble.py --project ~/my_project/ --dry-run

流水线步骤:

  1. 生成视频场景(Veo 3.1)
  2. 从场景中去除音频(使用自定义音频时)
  3. 生成配音(Gemini TTS)
  4. 生成背景音乐(Lyria)
  5. 混合配音和音乐
  6. 拼接视频片段
  7. 将音频与视频合并
  8. 输出最终视频

project.json 配置

{
  "name": "Product Launch Video",
  "duration_target": 30,
  "aspect_ratio": "16:9",
  "resolution": "720p",
  "audio_strategy": "custom",
  
  "scenes": [
    {
      "id": 1,
      "name": "scene1_hero",
      "prompt": "Cinematic slow zoom on premium product, dramatic lighting, high-end commercial style",
      "duration": 6,
      "notes": "Music only, no voiceover"
    },
    {
      "id": 2,
      "name": "scene2_features",
      "prompt": "Product features demonstration, sleek animations, modern tech aesthetic",
      "duration": 8,
      "notes": "Voiceover starts here"
    },
    {
      "id": 3,
      "name": "scene3_cta",
      "prompt": "Product with logo on clean background, call to action moment",
      "duration": 6,
      "notes": "Music swells, voiceover ends"
    }
  ],
  
  "voiceover": {
    "enabled": true,
    "text": "Introducing the future of audio. Crystal clear sound. All-day comfort. Experience the difference.",
    "voice": "Charon",
    "style": "Professional, confident, premium brand voice"
  },
  
  "music": {
    "enabled": true,
    "prompt": "modern electronic, premium, sleek, product showcase, subtle bass",
    "duration": 35,
    "bpm": 100,
    "brightness": 0.6
  },
  
  "assembly": {
    "transition": "fade",
    "transition_duration": 0.5,
    "music_volume": 0.3,
    "fade_in": 1.0,
    "fade_out": 2.0
  }
}

音频策略

策略说明使用场景
custom去除 Veo 音频,添加自定义配音和音乐大多数视频
veo_audio保留 Veo 生成的音频(对白、音效)电影感场景、对白
silent去除音频,输出静音视频稍后添加音频

工作流:创建视频

第 1 步:初始化项目
python3 init_project.py --name "Wireless Earbuds Promo" --duration 30
第 2 步:规划分镜脚本

编辑 storyboard.md,规划视频结构:

## Scene 1: Hero Reveal (0-5s)
- Visual: Earbuds emerging from shadow, premium lighting
- Audio: Music only (dramatic intro)

## Scene 2: Sound Quality (5-12s)
- Visual: Sound waves, person enjoying music
- Audio: Voiceover: "Crystal clear sound. Immersive bass."

## Scene 3: Comfort (12-20s)
- Visual: Close-up of fit, person running
- Audio: Voiceover: "All-day comfort. Secure fit."

## Scene 4: CTA (20-30s)
- Visual: Product + logo
- Audio: Voiceover: "Experience the difference." + music swell
第 3 步:配置 project.json

根据分镜脚本填写场景提示词、配音文本和音乐风格。

第 4 步:组装
python3 assemble.py --project ~/wireless_earbuds_promo/
第 5 步:检查并迭代

检查 output/ 中的输出。如需调整:

# Re-run with existing scenes (just re-mix audio)
python3 assemble.py --project ~/wireless_earbuds_promo/ --skip-generation

可创建的视频类型

类型示例
产品视频展示产品的 30 秒主打视频
说明视频操作指南或功能说明
宣传/广告视频营销广告
演示视频产品演示
培训视频内部培训内容
用户证言客户引言风格的视频
品牌视频公司/品牌故事

前提条件

  • GOOGLE_API_KEY - 用于 Veo(视频)、Gemini TTS(语音)、Lyria(音乐)
  • 已安装 FFmpeg:brew install ffmpeg

视频风格与音乐搭配

风格音乐提示词语音
高端/奢华"优雅、简约、氛围感、精致"Charon(信息丰富)
科技/现代"电子、未来感、简洁、创新"Kore(坚定)
有趣/活泼"轻快、欢快、原声、积极"Puck(活泼)
企业风格"专业、鼓舞人心、轻管弦乐"Orus(坚定)
生活方式"轻松、令人向往、独立、温暖"Aoede(轻快)
戏剧/电影感"史诗感、管弦乐、情绪饱满、渐强"Gacrux(成熟)

常见视频结构

产品视频(30 秒)
0-5s:   Hero shot (music only)
5-15s:  Features (voiceover + music)
15-25s: Lifestyle/use case (voiceover + music)
25-30s: Logo + CTA (music fade)
说明视频(60 秒)
0-5s:   Hook/problem statement
5-20s:  Solution introduction
20-45s: How it works (3 steps)
45-55s: Benefits summary
55-60s: CTA
用户证言视频(45 秒)
0-5s:   Intro/name card
5-35s:  Testimonial quote (multiple scenes)
35-45s: Product shot + logo

手动工作流(不使用脚本)

如果你更喜欢手动运行每个步骤:

生成场景:

python3 ${CLAUDE_PLUGIN_ROOT}/skills/video-generation/scripts/veo.py \
  --batch scenes.json

生成配音:

python3 ${CLAUDE_PLUGIN_ROOT}/skills/voice-generation/scripts/gemini_tts.py \
  --text "Your voiceover text..." \
  --voice Charon \
  --style "Professional, warm"

生成音乐:

python3 ${CLAUDE_PLUGIN_ROOT}/skills/music-generation/scripts/lyria.py \
  --prompt "modern electronic, premium" \
  --duration 35

从片段中去除音频:

python3 ${CLAUDE_PLUGIN_ROOT}/skills/media-utils/scripts/video_strip_audio.py \
  -i scene*.mp4

拼接视频:

python3 ${CLAUDE_PLUGIN_ROOT}/skills/media-utils/scripts/video_concat.py \
  -i silent_*.mp4 --transition fade -o video.mp4

混合音频:

python3 ${CLAUDE_PLUGIN_ROOT}/skills/media-utils/scripts/audio_mix.py \
  --voice voiceover.wav --music music.wav -o audio.mp3

合并音频和视频:

python3 ${CLAUDE_PLUGIN_ROOT}/skills/media-utils/scripts/video_audio_merge.py \
  --video video.mp4 --audio audio.mp3 -o final.mp4

可提供的输入文件

文件类型用途
产品图片使用 Veo 将其作为首帧进行动画处理
Logo(PNG)叠加到最后一个场景上
现有配音放入 audio/voiceover.wav
品牌音乐放入 audio/background_music.wav
视频片段放入 scenes/ 文件夹
脚本/文案用作配音文本

限制

  • Veo 视频时长:每个片段最长 8 秒(更长的视频需拼接)
  • Veo 3.1 包含音频:所有片段都包含生成的音频(使用自定义音频时需去除)
  • 处理时间:每个片段的视频生成需要 1–3 分钟
  • 分辨率:目前为 720p 或 1080p(1080p 仅支持 8 秒视频)

错误处理

错误解决方案
"GOOGLE_API_KEY 未设置"按照 README 中的说明设置 API 密钥
"未找到 FFmpeg"安装:brew install ffmpeg
"未找到 project.json"先运行 init_project.py
视频生成超时重试,或使用更短的时长
音频/视频同步问题调整场景时长

示例提示词

简单:

“为我的新款咖啡机制作一段 30 秒的产品视频”

详细:

“为我们的新款无线耳机制作一段 45 秒的产品视频。高端、奢华风格。我附上了产品照片。使用专业男声旁白。搭配现代电子音乐。采用适用于 YouTube 的 16:9 格式。”

使用项目:

“初始化一个名为 ‘App Demo’ 的视频项目,包含 5 个场景,总时长 60 秒,采用适用于 TikTok 的竖屏格式”

评论

支持 Markdown