| name | video |
| description | 视频制作与处理 - 支持视频制作、极速发布、章节导航、封面生成等全流程 |
视频制作与处理
综合视频处理工具,涵盖从制作到发布的全流程。
功能模块
| 模块 | 功能 | 触发场景 |
|---|
| 极速发布 | 手机/电脑录制 → 自动转码、ASR、发布 | "快速录一个视频发布" |
| 视频制作 | 铅笔白板风等模板制作 | "做一个科普视频" |
| 章节导航 | 为视频添加章节进度条 | "给视频加章节" |
| 封面生成 | AI 封面 + 内嵌到视频 | 视频导出后自动执行 |
内容设计方法论(必读)
制作视频时,必须遵循以下经过验证的内容设计原则。
1. 黄金三秒法则
开头3秒决定用户去留,必须包含强钩子:
| 钩子类型 | 说明 | 示例 |
|---|
| 结果前置 | 直接展示最终效果/成品 | 先看成果,再讲过程 |
| 悬念提问 | 提出观众关心的问题 | "你知道为什么...?" |
| 反常识 | 打破认知预期 | "99%的人都做错了" |
| 图案中断 | 视觉信息流突然变化 | 快速镜头切换/强视觉对比 |
执行:视频第一个场景的配音文案必须是钩子,不能有寒暄/铺垫。
2. 好奇心闭环结构
主闭环(覆盖全视频):开场提出问题 → 结尾揭示答案
├── 小闭环1(0-30s):提出子问题 → 给出价值
├── 小闭环2(30-60s):新悬念 → 奖励
└── 小闭环3(60-90s):深化 → 总结
- 每30-45秒设置一个小闭环,给观众多巴胺奖励
- 每个小闭环关闭前,先打开下一个悬念
3. 完播率优化
| 规则 | 执行标准 |
|---|
| 视觉变化频率 | 每5秒至少1次(镜头切换/文字叠加/动画/颜色变化) |
| J-cut 剪辑 | 新场景音频提前0.5s进入,过渡更流畅 |
| 消灭死亡空间 | 任何>3秒无变化的段落必须插入B-roll/文字/动画 |
| 信息密度 | 每句话都服务核心信息,删除一切冗余 |
4. 字幕规范
- 每块字幕 15-20 个字符(认知最优长度)
- 关键词用大号/不同颜色强调
- 字幕与语音同步偏差 < 200ms(用 Whisper 确保精度)
- 即使有声音也要加字幕(双通道信息留存率更高)
5. 叙事结构选择
| 内容类型 | 推荐结构 |
|---|
| 知识科普 | 起(问题)→ 承(积累)→ 转(意外)→ 合(解答) |
| 产品对比 | 问题 → 解决方案 → 证明(数据/案例) |
| 技巧教程 | 结果前置 → 步骤拆解 → 总结复用 |
| 故事叙事 | 冲突 → 发展 → 高潮 → 结局 |
一、极速发布(Instant Publisher)
手机/电脑一键录制,自动转码、ASR 字幕、发布到 B 站/小红书。
启动服务
cd ~/.claude/skills/video/tools/instant-video-publisher
./start.sh
访问方式
工作流程
录制 → WebM转MP4 → ASR字幕 → 生成封面 → (可选)烧录字幕 → 发布
视频存储位置
~/Videos/instant-publish/
├── 2026-01-31T08-33-26_测试.webm # 原始录制
├── 2026-01-31T08-33-26_测试.mp4 # 转码后
├── 2026-01-31T08-33-26_测试.srt # ASR 字幕
├── 2026-01-31T08-33-26_测试_cover.jpg # 封面
└── 2026-01-31T08-33-26_测试.json # 任务元数据
二、视频制作
素材库位置
| 素材类型 | 路径 |
|---|
| Skill 模板 | ~/.claude/skills/video/templates/ |
| 内容公关部素材库 | ~/.claude/agents/content-pr-department/assets/ |
| BGM | ~/.claude/agents/content-pr-department/assets/audio/bgm/ |
| 音效 | ~/.claude/agents/content-pr-department/assets/audio/sfx/ |
| 铅笔音效 | ~/.claude/agents/content-pr-department/assets/audio/sfx/pencil_writing.mp3 |
| 口播 BGM | ~/.claude/agents/content-pr-department/assets/audio/bgm/calm/口播背景_轻柔.mp3 |
项目输出位置
/Users/liuyishou/usr/projects/inbox/{项目名}/out/{YYYYMMDD}_{风格}_{主题}.mp4
支持的风格模板
| 风格ID | 名称 | 特点 | 适用场景 |
|---|
pencil-whiteboard | 铅笔白板风 | 手绘简笔画 + 铅笔音效擦除 + 配音 | 知识科普、产品对比、列表盘点 |
视频制作工作流(必须遵循)
Step 1: 确认需求
收到视频制作请求后,确认:
- 风格:用户指定的风格(如"铅笔白板风")
- 主题:视频主题(如"保时捷5大车型")
- 场景列表:每个场景的标题和配音文案
如果用户没有提供完整信息,使用 AskUserQuestion 询问。
Step 2: 创建项目
PROJECT_NAME="porsche-models"
PROJECT_DIR="/Users/liuyishou/usr/projects/inbox/$PROJECT_NAME"
SKILL_DIR="$HOME/.claude/skills/video"
cp -r "$SKILL_DIR/templates/pencil-whiteboard" "$PROJECT_DIR"
ASSETS_DIR="$HOME/.claude/agents/content-pr-department/assets"
cp "$ASSETS_DIR/audio/sfx/pencil_writing.mp3" "$PROJECT_DIR/public/audio/pencil.mp3"
cp "$ASSETS_DIR/audio/bgm/calm/口播背景_轻柔.mp3" "$PROJECT_DIR/public/audio/bgm.mp3"
cd "$PROJECT_DIR"
npm install
Step 3: 生成配音
使用 volc-tts skill 为每个场景生成配音:
cd ~/.claude/skills/api-tts
python scripts/tts.py --voice huopo -o $PROJECT_DIR/public/audio/scene1_raw.mp3 "配音文案"
cd $PROJECT_DIR/public/audio
ffmpeg -y -i scene1_raw.mp3 -af "adelay=800|800,apad=pad_dur=1" scene1.mp3
rm scene1_raw.mp3
Step 4: 生成图片
使用 draw skill 生成手绘风格图片:
cp 生成的图片.png $PROJECT_DIR/public/slides/01_scene.png
Step 5: 配置场景
编辑 $PROJECT_DIR/src/scenes.ts:
export const scenes: Scene[] = [
{ slide: "slides/01_hook.jpg", audio: "audio/hook.mp3", duration: 7.5 },
{ slide: "slides/02_scene1.png", audio: "audio/scene1.mp3", duration: 8 },
];
计算场景时长:
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 $PROJECT_DIR/public/audio/scene1.mp3
Step 6: 渲染导出
cd $PROJECT_DIR
npx remotion render Main out/output.mp4
DATE=$(date +%Y%m%d)
STYLE="铅笔白板"
SUBJECT="主题名"
mv out/output.mp4 "out/${DATE}_${STYLE}_${SUBJECT}.mp4"
Step 7: 生成封面并内嵌(必须)
视频导出后必须执行:
VIDEO_FILE="out/${DATE}_${STYLE}_${SUBJECT}.mp4"
COVER_FILE="out/${DATE}_${STYLE}_${SUBJECT}_cover.jpg"
ffmpeg -y -ss 3 -i "$VIDEO_FILE" -frames:v 1 -q:v 2 "$COVER_FILE"
ffmpeg -y -i "$VIDEO_FILE" -i "$COVER_FILE" \
-map 0:v -map 0:a -map 1 \
-c:v copy -c:a copy -c:2 mjpeg \
-disposition:2 attached_pic \
"out/${DATE}_${STYLE}_${SUBJECT}_with_cover.mp4"
mv "$VIDEO_FILE" "out/${DATE}_${STYLE}_${SUBJECT}_no_cover.mp4"
mv "out/${DATE}_${STYLE}_${SUBJECT}_with_cover.mp4" "$VIDEO_FILE"
rm "out/${DATE}_${STYLE}_${SUBJECT}_no_cover.mp4"
ffprobe -v quiet -show_streams "$VIDEO_FILE" | grep -E "codec_type|codec_name"
封面尺寸参考:
| 平台 | 尺寸 |
|---|
| B站 | 1280x720 (16:9) |
| 小红书 | 1080x1440 (3:4) |
| 抖音 | 1080x1920 (9:16) |
三、章节导航条
为视频添加章节导航条,显示当前章节进度和标题。
导航条样式
- 位置:视频底部(可配置)
- 高度:80px
- 背景:半透明黑色 (rgba(0,0,0,0.8))
- 进度条:蓝色 (#4A90E2)
- 文字:白色,24px
使用方法
1. 准备章节配置
创建 chapters.json:
{
"chapters": [
{"title": "开场介绍", "start": 0, "end": 10},
{"title": "核心内容", "start": 10, "end": 30},
{"title": "总结", "start": 30, "end": 40}
]
}
2. 生成导航条
python ~/.claude/skills/video/scripts/add_chapter_nav.py \
--input "输入视频.mp4" \
--output "输出视频.mp4" \
--chapters "chapters.json"
参数说明
| 参数 | 说明 |
|---|
--input | 输入视频路径 |
--output | 输出视频路径 |
--chapters | 章节配置文件路径 |
--style | 导航条样式 (default/minimal/full) |
--position | 导航条位置 (top/bottom) |
四、参数配置
视频制作参数
| 参数 | 默认值 | 说明 |
|---|
| 绘制时长 | 1.5s | wipe 动画时长 |
| 铅笔音量 | 0.5 | 铅笔音效音量 |
| BGM 音量 | 0.08 | 背景音乐音量 |
| 转场时长 | 10帧 | 淡入淡出时长 |
| 分辨率 | 1080x1920 | 竖版视频 |
| 帧率 | 30fps | - |
| TTS 音色 | huopo | 活泼女声 |
| TTS 静音填充 | 开头 0.8s,结尾 1s | - |
章节导航条参数
| 参数 | 默认值 | 说明 |
|---|
| 高度 | 80px | 导航条高度 |
| 背景透明度 | 0.8 | 背景透明度 |
| 进度条颜色 | #4A90E2 | 进度条颜色 |
| 文字大小 | 24px | 章节标题字号 |
| 位置 | bottom | 导航条位置 |
五、文件命名规范
{YYYYMMDD}_{风格}_{主题}.mp4
{YYYYMMDD}_{风格}_{主题}_cover.jpg
示例:
20260128_铅笔白板_保时捷5大车型.mp4
20260128_铅笔白板_保时捷5大车型_cover.jpg
六、快速命令
~/.claude/skills/video/scripts/create-project.sh <项目名> <风格>
python ~/.claude/skills/video/scripts/add_chapter_nav.py \
--input "原视频.mp4" \
--output "带导航视频.mp4" \
--chapters "chapters.json"
依赖
- Node.js + Remotion(视频制作)
- FFmpeg(视频处理)
- Python 3.8+(脚本工具)
- volc-tts skill(配音生成)
- draw skill(图片生成)