Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/Leoyishou/personal-ai-company --skill video명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | video |
| description | 视频制作与处理 - 支持视频制作、极速发布、章节导航、封面生成等全流程 |
综合视频处理工具,涵盖从制作到发布的全流程。
| 模块 | 功能 | 触发场景 |
|---|---|---|
| 极速发布 | 手机/电脑录制 → 自动转码、ASR、发布 | "快速录一个视频发布" |
| 视频制作 | 铅笔白板风等模板制作 | "做一个科普视频" |
| 章节导航 | 为视频添加章节进度条 | "给视频加章节" |
| 封面生成 | AI 封面 + 内嵌到视频 | 视频导出后自动执行 |
制作视频时,必须遵循以下经过验证的内容设计原则。
开头3秒决定用户去留,必须包含强钩子:
| 钩子类型 | 说明 | 示例 |
|---|---|---|
| 结果前置 | 直接展示最终效果/成品 | 先看成果,再讲过程 |
| 悬念提问 | 提出观众关心的问题 | "你知道为什么...?" |
| 反常识 | 打破认知预期 | "99%的人都做错了" |
| 图案中断 | 视觉信息流突然变化 | 快速镜头切换/强视觉对比 |
执行:视频第一个场景的配音文案必须是钩子,不能有寒暄/铺垫。
主闭环(覆盖全视频):开场提出问题 → 结尾揭示答案
├── 小闭环1(0-30s):提出子问题 → 给出价值
├── 小闭环2(30-60s):新悬念 → 奖励
└── 小闭环3(60-90s):深化 → 总结
| 规则 | 执行标准 |
|---|---|
| 视觉变化频率 | 每5秒至少1次(镜头切换/文字叠加/动画/颜色变化) |
| J-cut 剪辑 | 新场景音频提前0.5s进入,过渡更流畅 |
| 消灭死亡空间 | 任何>3秒无变化的段落必须插入B-roll/文字/动画 |
| 信息密度 | 每句话都服务核心信息,删除一切冗余 |
| 内容类型 | 推荐结构 |
|---|---|
| 知识科普 | 起(问题)→ 承(积累)→ 转(意外)→ 合(解答) |
| 产品对比 | 问题 → 解决方案 → 证明(数据/案例) |
| 技巧教程 | 结果前置 → 步骤拆解 → 总结复用 |
| 故事叙事 | 冲突 → 发展 → 高潮 → 结局 |
手机/电脑一键录制,自动转码、ASR 字幕、发布到 B 站/小红书。
cd ~/.claude/skills/video/tools/instant-video-publisher
./start.sh
| 设备 | 地址 |
|---|---|
| 电脑 | http://localhost:3456 |
| 手机 | http://:3456(可添加到桌面) |
录制 → 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 | 铅笔白板风 | 手绘简笔画 + 铅笔音效擦除 + 配音 | 知识科普、产品对比、列表盘点 |
收到视频制作请求后,确认:
如果用户没有提供完整信息,使用 AskUserQuestion 询问。
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
使用 volc-tts skill 为每个场景生成配音:
cd ~/.claude/skills/api-tts
# 为每个场景生成配音
python scripts/tts.py --voice huopo -o $PROJECT_DIR/public/audio/scene1_raw.mp3 "配音文案"
# 添加首尾静音(开头 0.8s,结尾 1s)
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
使用 draw skill 生成手绘风格图片:
# 铅笔白板风 Prompt 模板:
# Hand-drawn whiteboard sketch style, 9:16 vertical (1080x1920px),
# bold black marker with blue accents, pure white background.
# [具体场景描述]
# 复制到项目
cp 生成的图片.png $PROJECT_DIR/public/slides/01_scene.png
编辑 $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 },
// 场景时长 = 绘制时间(1.5s) + 配音时长 + 缓冲(0.5s)
];
计算场景时长:
# 获取音频时长
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 $PROJECT_DIR/public/audio/scene1.mp3
# 场景时长 = 1.5 + 音频时长 + 0.5
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"
视频导出后必须执行:
VIDEO_FILE="out/${DATE}_${STYLE}_${SUBJECT}.mp4"
COVER_FILE="out/${DATE}_${STYLE}_${SUBJECT}_cover.jpg"
# 方式1: 从视频截取封面(快速)
ffmpeg -y -ss 3 -i "$VIDEO_FILE" -frames:v 1 -q:v 2 "$COVER_FILE"
# 方式2: AI 生成封面(推荐,用 draw skill)
# 内嵌封面到视频
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"
# 验证(应该看到 3 个流:h264 + aac + mjpeg)
ffprobe -v quiet -show_streams "$VIDEO_FILE" | grep -E "codec_type|codec_name"
封面尺寸参考:
| 平台 | 尺寸 |
|---|---|
| B站 | 1280x720 (16:9) |
| 小红书 | 1080x1440 (3:4) |
| 抖音 | 1080x1920 (9:16) |
为视频添加章节导航条,显示当前章节进度和标题。
创建 chapters.json:
{
"chapters": [
{"title": "开场介绍", "start": 0, "end": 10},
{"title": "核心内容", "start": 10, "end": 30},
{"title": "总结", "start": 30, "end": 40}
]
}
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大车型.mp420260128_铅笔白板_保时捷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"