Communitygithub.com

michaelboeding/skills

使用此技能可创建包含画外音和音乐的完整视频。

skills 是什么?

该技能是一个编排型技能,能够将脚本生成、语音合成、背景音乐、视频片段生成以及最终组装整合在一起,创建完整的视频。它通过交互式提问过程收集用户需求,包括主题、时长、风格、现有素材、音频策略、语音语调、音乐氛围、宽高比、分辨率和模型选择。支持多种输出格式(16:9、9:16、1:1)和分辨率(720p、1080p),并利用Veo模型(veo-3.1、veo-3.1-fast、veo-3、veo-3-fast)生成视频片段。项目初始化后创建标准文件夹结构,包含配置文件、故事板、场景视频、音频资产和最终输出。用户可以通过init_project.py初始化项目,并通过assemble.py执行完整的视频组装流程,支持跳过生成步骤以重用现有文件。该技能适用于营销视频、产品演示、品牌故事等多种场景。

兼容平台✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/michaelboeding/skills/tree/HEAD/skills/video-producer-agent

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

视频制作人

创建包含配音、背景音乐和视觉效果的完整视频。

这是一种编排型技能,结合了:

  • 脚本/故事板生成 (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 秒)
风格视觉提示和音乐选择
素材生成 vs 使用现有
音频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 "产品发布视频" \
  --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          # 配置:场景、配音、音乐、设置
├── storyboard.md         # 视频规划文档
├── scenes/               # Veo 生成的视频片段
│   ├── scene1_intro.mp4
│   ├── scene2_features.mp4
│   └── scene3_cta.mp4
├── audio/                # 音频素材
│   ├── voiceover.wav     # 生成的配音
│   ├── background_music.wav  # 生成的音乐
│   └── final_mix.mp3     # 混音音轨
├── work/                 # 中间文件(自动生成)
│   ├── silent_scene1.mp4
│   ├── video_concatenated.mp4
│   └── ...
└── output/               # 最终交付物
    └── product_launch_video_final.mp4

脚本

init_project.py

初始化新的视频项目,包含文件夹结构和模板。

# 基础项目
python3 init_project.py --name "我的视频" --duration 30

# 在指定目录创建
python3 init_project.py --name "演示视频" --output ~/Videos/

# 竖屏社交媒体视频
python3 init_project.py --name "Instagram Reel" --aspect-ratio 9:16 --duration 15

# 使用 Veo 原生音频(无自定义配音/音乐)
python3 init_project.py --name "电影场景" --audio-strategy veo_audio

# 更多场景
python3 init_project.py --name "长视频" --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

编排完整的视频合成流水线。

# 完整流水线(生成所有内容+合成)
python3 assemble.py --project ~/my_project/

# 跳过生成(使用已有的场景/音频文件)
python3 assemble.py --project ~/my_project/ --skip-generation

# 试运行(仅显示要执行的操作)
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": "产品发布视频",
  "duration_target": 30,
  "aspect_ratio": "16:9",
  "resolution": "720p",
  "audio_strategy": "custom",
  
  "scenes": [
    {
      "id": 1,
      "name": "scene1_hero",
      "prompt": "产品特写镜头缓慢推近,戏剧性光线,高端广告风格",
      "duration": 6,
      "notes": "仅音乐,无配音"
    },
    {
      "id": 2,
      "name": "scene2_features",
      "prompt": "产品功能演示,流畅动画,现代科技美学",
      "duration": 8,
      "notes": "配音从这里开始"
    },
    {
      "id": 3,
      "name": "scene3_cta",
      "prompt": "产品搭配Logo,纯色背景,行动号召时刻",
      "duration": 6,
      "notes": "音乐渐强,配音结束"
    }
  ],
  
  "voiceover": {
    "enabled": true,
    "text": "迎接音频的未来。清澈的声音。全天舒适。体验不同。",
    "voice": "Charon",
    "style": "专业、自信、高端品牌声音"
  },
  
  "music": {
    "enabled": true,
    "prompt": "现代电子、高端、流畅、产品展示、微妙低音",
    "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 "无线耳机宣传" --duration 30

第 2 步:规划故事板

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

## 场景 1:主视觉亮相 (0-5s)
- 画面:耳机从阴影中出现,高级光线
- 音频:仅音乐(戏剧性开场)

## 场景 2:音质展示 (5-12s)
- 画面:声波,享受音乐的人
- 音频:配音:“清澈的声音。沉浸式低音。”

## 场景 3:舒适体验 (12-20s)
- 画面:佩戴特写,正在跑步的人
- 音频:配音:“全天舒适。稳固贴合。”

## 场景 4:行动号召 (20-30s)
- 画面:产品+Logo
- 音频:配音:“体验不同。”+音乐渐强

第 3 步:配置 project.json

根据故事板填写场景提示、配音文本和音乐风格。

第 4 步:合成

python3 assemble.py --project ~/wireless_earbuds_promo/

第 5 步:审查与迭代

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

# 使用现有场景重新运行(仅重新混音音频)
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:   主画面 (仅音乐)
5-15s:  功能展示 (配音+音乐)
15-25s: 生活方式/使用场景 (配音+音乐)
25-30s: Logo + 行动号召 (音乐淡出)

解释视频 (60 秒)

0-5s:   吸引/问题陈述
5-20s:  解决方案介绍
20-45s: 工作原理 (3 个步骤)
45-55s: 优势总结
55-60s: 行动号召

推荐视频 (45 秒)

0-5s:   介绍/姓名卡片
5-35s:  推荐语 (多个场景)
35-45s: 产品镜头 + 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 "你的配音文本..." \
  --voice Charon \
  --style "专业、温暖"

生成音乐:

python3 ${CLAUDE_PLUGIN_ROOT}/skills/music-generation/scripts/lyria.py \
  --prompt "现代电子、高端" \
  --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(仅 8 秒支持 1080p)

错误处理

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

示例提示

简单:

“为我的新咖啡机创建一个 30 秒的产品视频”

详细:

“为我们的新款无线耳机创建一个 45 秒的产品视频。高级、奢华感。我附上了产品照片。专业男性配音。现代电子音乐。16:9 用于 YouTube。”

附带项目:

“初始化一个名为‘应用演示’的视频项目,5 个场景,总时长 60 秒,竖屏格式用于 TikTok”

相关技能