Video Studio - 自动视频制作 是做什么的?
此技能直接生成成品视频,而不仅仅是提供指导。所有操作均通过统一入口:scripts/autovideo.py。
专业知识(镜头角度、节奏、音频、字幕、CapCut、AI电影、实战经验)存放在 references/ 目录下,
以便在规划故事板和阅读QC报告时做出正确决策。
脚本路径:本文件所在目录 + /scripts/(按README安装:~/.claude/skills/video-studio/scripts)。
0. 用户斜杠命令
/video:plan 讨论创意 - 剧本 - 分镜 - 灯光 · /video:make 制作新视频 · /video:revoice 重新配音 ·
/video:subs 字幕 · /video:reframe 更改竖屏/方形画幅 · /video:library 素材库 · /video:qc 检查 ·
/video:voices 按用途选择配音 · /video:fix 修复抖动/fps/摇晃 · /video:critic 独立评审 · /video:slop 检测并修复“AI 废话” · /video:capcut 推送到 CapCut。
用户自然语言描述(不输入命令)时,按照下表执行。
0b. MCP 工具 video-studio(优先使用)
当 mcp__video-studio__* 工具在会话中可用时,直接调用它们,而不是通过 Bash 运行脚本:
- 快速工具:
video_probe,video_qc,contact_sheet,voices_suggest,voices_catalogue,pronunciation_preview,shot_search,motion_stills,slop_check,slop_compare。 - 长任务(返回
job_id,通过job_status/job_list跟踪):make_video,revoice_video,subtitle_video,convert_fps,reframe_video,stabilize_video,motion_graphic,critic_kit,voice_samples。 一次性注册:claude mcp add --scope user video-studio -e PYTHONIOENCODING=utf-8 -- python <repo>/scripts/mcp_server.py。
1. 根据需求选择命令
| 用户想要 | 操作 |
|---|---|
| 根据创意/剧本 + 素材库(视频、图片)制作新视频 | 按照 templates/project_make.json 编写 project.json → autovideo.py make project.json --out TEN_v1.mp4 |
| 给现有视频更换配音/重新录制旁白 | autovideo.py revoice VIDEO.mp4 --script loi.txt [--voice auto --muc-dich thoi_su] --out TEN_v1.mp4 [--subs] |
| 为视频添加字幕 | autovideo.py subs VIDEO.mp4 --script loi.txt --out TEN_sub.mp4(根据语音自动检测时间码) |
| 交付前检查视频 | autovideo.py qc VIDEO.mp4(+ contact_sheet.py 进行视觉检查) |
| 任意帧率转换 24/25/30/50/60/120,慢动作,修复帧率抖动 | fps_convert.py convert SRC OUT --fps 24 [--slowmo 4](RIFE GPU) |
| 横屏→竖屏/方形(智能主体跟踪);虚拟推拉/摇移;防抖 | camera.py reframe / move / stabilize |
| 从素材库中选择最佳镜头,根据描述搜索 | shot_select.py scan / best / search |
| 场景间色彩匹配,电影感调色 | grade.py match / look / apply |
| 按平台导出,检测节拍 | deliver.py export <preset> / beats |
| 在制作前讨论创意、分镜、灯光、镜头角度 | /video:plan + references/11-dien-anh-cao-cap.md |
| 动态图形、章节卡、数据可视化(通过代码生成 motion graphics) | motion_html.py stills/render + templates/motion/*.html,或使用 "nguon": {"html": ...} 场景 |
| 剧本/视频听起来像“AI声音”:空洞、无源数据、空泛断言、节奏单一、特效泛滥 | /video:slop(slop_guard.py 检测 → 新代理提出修复 → compare 重新检测) |
| 交付前评审视频(评审者与制作者不同) | /video:critic(critic.py + 新代理,直至所有项目评分 ≥ 8) |
| 按用途选择配音 | voices.py suggest --muc-dich thoi_su --gioi-tinh nu,生成 2–3 个推荐配音的样本,供用户收听 |
| 发送到 CapCut 进行手动微调 | 在 make/revoice 中添加 --capcut TEN_NHAP,或使用 capcut_api.py build --spec |
| AI 电影/微短剧 | references/09-phim-ai-pipeline.md + storyboard.py jobs |
所有自动化命令:不会覆盖已有文件,中间文件保存在 <out>_work/ 目录,生成 BAO_CAO_QC.md(画面错误、抖动程度、
LUFS、台词与脚本匹配百分比)。发送前务必阅读报告,并在回复中引用具体数据。
2. 为 make 编写 project.json(最重要)
- 每个
canh(场景)对应一句台词。nguon(源)可以是:{"file", "vao", "ra"}(视频),{"anh", "hieu_ung": zoom_in|zoom_out|pan_left|pan_right},{"mau": "#0E2440"}。 - 场景时长自动计算 = max(
thoi_luong,配音时长 + 0.9 秒)。视频场景会自动对齐到原始镜头的内部边界;如果源素材不够干净,则自动缩短场景,而非冻结帧。 - 画面必须严格对应正在说的话(正确的工程、正确的事件)——通过
probe_qc.py --inventory+contact_sheet.py选择源素材,不要根据文件名猜测。 chuyen_canh(转场):同一意念内用cut,切换意念/空间时用dissolve。场景时长 ≤ 7–8 秒。- 台词要像口语一样写;数字和单位保留原样(
119 km,100 km/h)——tts_vi.py会自动标准化(连字符/破折号不会读成“đến”)。 chu_tren_hinh(屏幕文字):简短,仅包含台词中出现的数字/名称;不要使用 "—"。- 高级功能:项目支持任意
fps(不同帧率的源素材会自动通过fps_convert转换),视频场景可设置slowmo、camera(虚拟推拉/摇移)、on_dinh(稳定)、khung_thong_minh(竖屏输出时智能主体跟踪);项目可设置mau(色彩匹配 + 调色)和cat_theo_nhac(按节拍剪辑)。 - 配音不会被强制:
"giong": "auto"(默认)根据"muc_dich"(doanh_nghiep企业、thoi_su新闻、tai_lieu纪录片、quang_cao广告、mang_xa_hoi社交媒体、huong_dan教程、sang_trong优雅、tre_em儿童、su_kien活动)+"gioi_tinh"性别、"vung"地区、"am_sac"音色(低沉/适中/明亮)自动选择, 基于每个配音的测量档案(voices.py profile:朗读准确度、音高、语速)。也可指定:VieNeu 配音名称、{"edge": "vi-VN-HoaiMyNeural"}、{"clone": "mau_giong.wav"}(须经说话人同意),或为每个场景使用真实录音"ghi_am": "cau3.wav"。每个场景/角色可以有独立配音。 在最终确定前,始终提供 2–3 个推荐配音(voices.py suggest)供用户试听。 - 准确性:发音词典
templates/phat_am.json+ 项目特定的"phat_am"(缩写、专有名词);每句台词由 Whisper 回听, 准确度低于"do_chinh_xac"(0.97)的句子会最多重读"doc_lai"次,并报告每句情况;字幕基于实际词语时间戳。 - 制作选项:
"phong_cach"(风格):trang_trong正式 |dien_anh电影感(2.39 letterbox,胶片风格) |tai_lieu纪录片 |nang_dong动态(按节拍剪辑) |mang_xa_hoi社交媒体(智能主体跟踪)。 场景转场选项:cut,dissolve,fade_black,dip_white,wipe_left/right,slide_left/right,zoom_in。 画幅:"khung"(裁切模式):fill全屏裁剪 |fit_blur保持完整画面、背景模糊 |smart智能主体跟踪。"letterbox": 2.39。所有选项可在每个场景中覆盖。 - 动态图形:
"nguon": {"html": "templates/motion/route_map.html", "params": {...}}(路线图逐步绘制、章节卡等)。make会自动额外输出一个仅含音乐的版本_chi_nhac.mp4。 大型项目制作前需有导演简报 +facts.md(references/12)。 - 反 AI 废话:
"facts": "facts.md"(每个数字 + 原文 + 来源文档 + 日期)和"luat": ["~/.video_studio/luat/<客户>.json"](客户规则本,存放在仓库外)。make会自动检查并在报告中添加“反 AI 废话”章节;"chan_khi_slop": true可在存在虚构数字/违反规则时中止制作。 客户手动修改的句子需原样复制到规则本中(slop_guard.py ghi),以便后续项目自动检测(references/13)。 - 自动选择场景:
"kho_canh": "kho.json"(来自shot_select.py scan --clip)和"nguon": {"tim": "aerial view of a highway at sunset"}→ 将选择最匹配、时长足够、未使用且质量评分最高的镜头。搜索描述请使用英文。
3. 不可变更规则
- 不删除/覆盖交付版本。 新版本为
_vN。仅当用户确认时才替换主版本:mv -n将旧版重命名为_luu_<描述>,cp -n复制新版,cmp确认一致。 - 先测量再说——使用
BAO_CAO_QC.md中的数据;未测量的内容需说明尚未测量。 - 内容必须真实:正确的工程/单位,不能使用外国素材、QR码、广告、陌生标语、未经许可出现的人物。
- 翻译必须 100% 准确,保持原意和语境;有疑问的句子需询问。
- 不代替用户输入密码/API 密钥。
- 仅从原始来源下载模型,优先使用
.safetensors,在独立 venv 中安装。 - 使用越南语交流。
- 不交付虚假数字:画面/台词中的所有数字必须来自
facts,或标注[calculate: ...]。由代理编写的修复版本只有在slop_guard.py compare重新检测后才可接受(编写者不得自行确认)。
4. 按需加载参考资料
| 何时需要 | 文件 |
|---|---|
| 流程、版本、客户报告 | references/01-quy-trinh.md |
| 镜头角度、景别、剪辑节奏、转场、静态图像 | references/02-ngon-ngu-hinh-anh.md |
| 抖动、卡顿、坏帧、帧率转换 | references/03-khung-hinh-chuyen-dong.md |
| 色彩、缩放/裁剪、Logo、文件输出 | references/04-hinh-anh-mau-xuat.md |
| 配音、TTS、音乐、LUFS | references/05-am-thanh-giong-doc.md |
| 字幕、翻译、屏幕文字 | references/06-phu-de-dich-chu.md |
| CapCut(MCP、VectCutAPI、Web) | references/07-capcut.md |
| 交付前 QC 检查 | references/08-qc-giao-file.md |
| AI 电影 / 微短剧 | references/09-phim-ai-pipeline.md |
| 已付出的代价(经验教训) | references/10-bai-hoc-thuc-te.md |
| 灯光、镜头、按场景设置光圈/快门/ISO/ND、AI视频提示词、镜头角度、色彩、音频、剪辑 | references/11-dien-anh-cao-cap.md |
| 反“AI 废话”:有源数字、客户规则本、盲审、接受前重新检测 | references/13-chong-ai-slop.md |
| 导演简报、反“AI 式运动”规则、代码生成图形、评审循环、大型项目(GES、3D、现状) | references/12-dao-dien-motion-va-phe-binh.md |
5. 脚本集
| 脚本 | 功能 |
|---|---|
autovideo.py | 主入口:make、revoice、subs、qc |
voices.py | 每个配音的测量档案、按用途推荐配音、多种配音来源(VieNeu、Edge、克隆、录音) |
accuracy.py | 发音词典、逐句回听、自动重读错误句子 |
motion_html.py | 通过 HTML + seek(t)(Playwright)生成动态图形,自动子帧运动模糊 |
critic.py | 独立评审工具包:联系单/电话/条带、死帧、文字停留时间、slop 检测(与 slop_guard 配合) |
slop_guard.py | 确定性反 AI 废话:有源/可推导的数字、空洞断言、空泛断言、节奏、制作一致性问题、客户规则本;compare 接受/拒绝修复版本 |
mcp_server.py | MCP 服务器:21 个工具(快速 + 任务队列),供 Claude 直接调用 |
probe_qc.py | 源素材盘点 / 视频 QC(坏帧、闪帧、重复帧、黑帧、抖动、cadence、LUFS、黑边) |
contact_sheet.py | 每镜头 3 帧的连续画面,用于肉眼审核 |
fps_convert.py | 24-120 fps 转换器、慢动作、180°运动模糊、检测隔行帧(RIFE/光流) |
camera.py | 智能重构(人脸 + 显著度)、虚拟推拉/摇移、vidstab 防抖 |
shot_select.py | 素材库:镜头分割、评分、按描述搜索(CLIP) |
grade.py | 色彩匹配 LUT、自动白平衡、调色;应用 LUT |
deliver.py | 按平台输出预设、检测节拍 |
cadence_fix.py | 通过光流修复分段节奏(旧版,无需 GPU) |
tts_vi.py | VieNeu-TTS 越南语(25 个配音)、文本标准化、在独立 venv 中自动运行 |
speech_check.py | 台词与脚本匹配百分比(Whisper)、方言估计 |
voice_mix.py | 按时间码放置句子、配音处理链、闪避、LUFS、视频合成 |
subs.py | 字幕拆分、SRT/ASS、硬字幕 |
demucs_split.py | 人声/音乐分离 |
capcut_api.py | 通过 VectCutAPI 创建 CapCut 桌面版草稿 |
storyboard.py | 检查故事板、镜头列表、AI 电影任务队列 |
环境(通过 install.ps1 安装):ffmpeg 在 PATH 中;Python 3.12(numpy、opencv、soundfile、librosa、Pillow、faster-whisper、torch、demucs);
VieNeu 在 ~/tools/venv_vieneu(通过 VIENEU_PY 修改);RIFE 在 ~/tools/rife/(RIFE_BIN);YuNet 在 ~/tools/models/(YUNET_ONNX);VectCutAPI 在 ~/tools/VectCutAPI(端口 9001)。