Communitygithub.com

andyluu98/VideoMotion

为已有语音和分镜的 VideoMotion 项目构建画面:加载风格字体、配置配色、并行分配每个场景给 vm-canh agent 处理、合并、技术检查、渲染、合成音轨和字幕。用于 /videomotion 的第 7 步,或当用户说“重新构建场景”、“渲染”、“导出视频”、“修改场景 X 的画面”时。

VideoMotion 是什么?

该技能是 VideoMotion 工作流程的最终构建步骤,负责将已有语音和分镜的项目转化为完整的视频输出。它自动执行从风格化字体下载、CSS 主题配置到并行场景渲染、技术合规性检查、视频渲染、音频合成和字幕集成的复杂编排。主要支持 CLI 工具和 agent 系统(如 Claude Code 或 Cursor),利用 vm-canh 专用 agent(配置为 Sonnet 模型、medium 努力级别)实现高效并行场景构建。技能通过 Hyperframes 工具进行严格的检查,确保零错误,同时自动处理 ffprobe 验证和音频同步等质量保证。它在 resource agent 系统内运行(可通过 VV 和 PY 配置),是 VideoMotion 流水线的第七步,也可通过特定用户短语触发,如“渲染视频”或“修改场景 X 的画面”。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/andyluu98/VideoMotion/tree/HEAD/skills/vm-dung

在你喜欢的 AI 中提问

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

文档

构建并导出视频

VV、PY 与 videomotion 技能中相同。HF 为 npx -y [email protected]。输入位于 <du-an>:storyboard.json、words.json、timeline.json、mix.wav。

1. 根据风格准备

  1. 风格标签的字体(标签中的 Google Fonts 行): "$PY" "$VV/tools/fonts.py" <du-an> "VT323" "Be Vietnam Pro:400,700" 输出到 fonts/ 和 fonts.css。
  2. theme.css:标签颜色表中的 :root 变量:--bg、--ink、--accent、辅助颜色、--cap-bg、--cap-ink(字幕达到 4.5:1 对比度)。
  3. 风格具有贯穿视频的连续背景(地图、纸张、黑板、网格):编写 compositions/_nen.html(id _nen),各个场景保持透明背景。
  4. "$PY" "$VV/tools/assemble.py" <du-an>:创建 index.html,复制字体,为尚未创建的场景生成占位文件。
  5. "$PY" "$VV/tools/packets.py" <du-an>:打包每个场景的任务包 checks/packets/<id>.md。

2. 并行分配场景

在同一条消息中发送所有场景,每个场景一个 agent,agent 类型为 videomotion:vm-canh(已声明 model: sonnet、effort: medium:始终使用最新的 Sonnet)。分配指令简短:

构建场景 <id>。任务包:<du-an>/checks/packets/<id>.md。模板:$VV/templates/scene.html。写入正确文件 <du-an>/compositions/<id>.html。

如果没有 vm-canh agent(技能未通过插件安装,或使用其他工具):使用通用 agent,设置 model: "sonnet"、effort: "medium",并要求其先阅读 $VV/agents/vm-canh.md。工具不支持子 agent 的,则按该文件依次自行构建。

少于 3 个场景则自行构建,无需分配。

3. 合并与技术检查

"$PY" "$VV/tools/assemble.py" <du-an>
cd <du-an> && npx -y [email protected] check

修改直到 Check passed,0 错误(场景文件中的错误,直接修改该文件)。字幕的 timeline_track_too_dense 警告属正常。无需审核单或人工审核;用户想预览则运行 npx -y [email protected] preview --background。

4. 渲染与音频合成

"$PY" "$VV/tools/assemble.py" <du-an> --no-audio
cd <du-an> && npx -y [email protected] render --output renders/raw.mp4 > renders/render.log 2>&1
"$PY" "$VV/tools/audio/mix.py" srt <du-an>
"$PY" "$VV/tools/audio/mix.py" final <du-an> --video <du-an>/renders/raw.mp4 --name <slug>-<ddmmyyyy>
"$PY" "$VV/tools/assemble.py" <du-an>

渲染在后台运行(每秒钟视频约需 2 秒机器时间)。--no-audio 是必需的:mix.py final 会完整合成 mix.wav。最后的 assemble 命令将 index.html 恢复为带音频的版本供预览。

5. 最终检查

ffprobe renders/<ten>.mp4:尺寸正确,包含音频流,时长等于 words.json 中的 total。使用 ffmpeg 抽取视频中间的一帧并目视检查。交付 renders/<ten>.mp4 和 phude.srt。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

相关技能