关于 video-producer-agent
video-producer-agent 是用于制作完整视频的编排技能,面向需要产品、讲解、宣传或培训视频的创作者。它先收集需求,再组织脚本与分镜、视频片段、配音、音乐和最终组装。
主要功能
- 01逐项收集视频制作需求
- 02规划脚本、分镜与场景
- 03生成视频片段、配音和背景音乐
- 04配置自定义、原生或静音音频
- 05组装片段与音轨并支持复用素材
适用场景
- 01制作产品宣传或演示视频
- 02制作讲解和培训内容
- 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 | 当前目录 | 父目录 |
--duration | 30 | 目标时长(秒) |
--aspect-ratio | 16:9 | 16:9、9:16、1:1、4:3 |
--audio-strategy | custom | custom、veo_audio、silent |
--scenes | 3 | 场景占位符数量 |
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
流水线步骤:
- 生成视频场景(Veo 3.1)
- 从场景中去除音频(使用自定义音频时)
- 生成配音(Gemini TTS)
- 生成背景音乐(Lyria)
- 混合配音和音乐
- 拼接视频片段
- 将音频与视频合并
- 输出最终视频
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 的竖屏格式”