educational-video-creator by skindhu/skind-skills
npx skills add https://github.com/skindhu/skind-skills --skill educational-video-creator使用 Remotion 创建具有 Kurzgesagt/回形针视觉风格的专业教育视频。
此技能需要 remotion-best-practices 用于 Remotion 技术实现。
检查并安装(必须在第一阶段前完成):
# 检查是否已安装,若未安装则安装
npx skills list 2>/dev/null | grep remotion-best-practices || npx skills add https://github.com/remotion-dev/skills --skill remotion-best-practices
安装完成后,阅读 remotion-best-practices 技能 以将 Remotion API 详细信息加载到上下文中。这至关重要——没有它,第 4 阶段的代码将出现不正确的 Remotion API 使用。
外部依赖项(第 4.5 阶段音频生成所需):
# ffmpeg(提供用于测量音频时长的 ffprobe)
brew install ffmpeg # macOS
# apt install ffmpeg # Linux
# edge-tts(用于旁白生成的 Python TTS 引擎)
pip install edge-tts
此技能在当前工作空间内的专用 remotion_video 子目录中创建视频。
首次设置(推荐——非交互式):
# 创建视频项目目录
mkdir -p remotion_video
cd remotion_video
# 无交互提示初始化
npm init -y
npm install remotion @remotion/cli @remotion/google-fonts @remotion/transitions react react-dom
npm install -D typescript @types/react
# 创建最小项目结构
mkdir -p src public/audio/narration
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
然后创建所需的入口文件:
src/Root.tsx — 主合成注册表src/index.ts — 带有 registerRoot(Root) 的 Remotion 入口点remotion.config.ts — Remotion 配置tsconfig.json — TypeScript 配置替代方案(交互式——在自动化环境中可能阻塞):
mkdir -p remotion_video && cd remotion_video
npx create-video@latest --blank
npm install
注意:
npx create-video可能会提示输入项目名称、包管理器等。在 CLI/自动化上下文中,请使用上述非交互式方法以避免阻塞。
现有项目:
cd remotion_video
npm install # 确保依赖项已安装
项目结构:
your-workspace/
├── remotion_video/ # 视频项目根目录
│ ├── src/
│ │ ├── Root.tsx # 主合成注册表
│ │ └── YourVideo/ # 视频特定组件
│ │ ├── index.tsx
│ │ ├── scenes/
│ │ └── components/
│ ├── public/ # 静态资源
│ └── package.json
└── ... (其他工作空间文件)
remotion_video 目录每次对话轮次都可能发生上下文丢失(压缩、新会话)。在进行任何工作之前:
remotion_video/PROGRESS.md 是否存在
remotion_video/script.md(如果第 1.5+ 阶段已完成)remotion_video/storyboard.md(如果第 2+ 阶段已完成)src/<Composition>/constants.ts(如果第 3+ 阶段已完成——包含 COLORS、SCENES、NARRATION、AUDIO_SEGMENTS)跳过此协议会导致重复工作或文件损坏。请始终首先运行它。
⚠️ 此协议不可协商。跳过更新会导致上下文丢失和重复工作。
使用 progress-template.md 维护 remotion_video/PROGRESS.md。在第 1 阶段开始时创建它。在决策表中记录决策,并将每个创建的文件添加到"已创建文件"中。
每次完成 PROGRESS.md 中的一个复选框项目后,你必须立即:
[x] 并添加简要说明请勿批量处理多个项目。完成一个项目 → 一次更新 → 下一个项目。
在开始任何新阶段之前,你必须:
PROGRESS.md 并验证前一阶段的所有项目都是 [x]⚠️ 首先:完成前提条件部分(安装 remotion-best-practices 技能并阅读它)。然后从 progress-template.md 创建
remotion_video/PROGRESS.md并填写项目信息。
开始前,向用户确认以下基本细节:
详细的提问模板,请参阅 requirements-guide.md。
⚠️ 检查点规则生效:完成此阶段的每个复选框项目后,立即更新
PROGRESS.md。请勿批量更新。
在设计故事板之前撰写完整的叙事脚本。此阶段纯粹关注讲故事——说什么以及如何说好——而不必担心视觉规格、帧数或动画参数。
重要:撰写完整的旁白文本——将要说的每一个字。请勿撰写摘要、要点或占位符。脚本是最终的口语内容。
脚本必须包括:
[.](短)、[..](中)、[...](长)、[PAUSE] 或 [BEAT](戏剧性)标记停顿——参见 script-and-narration.md 第 3 部分了解时长语义质量门控:将完整脚本呈现给用户以获得批准。在用户明确批准叙事之前,请勿进入第 2 阶段。
为什么先写脚本:
输出:将批准的脚本保存为 remotion_video/script.md
有关视频结构模板、叙事技巧、写作技巧和 TTS 说明,请参阅 script-and-narration.md。
⚠️ 检查点规则生效:完成此阶段的每个复选框项目后,立即更新
PROGRESS.md。请勿批量更新。
将批准的脚本转换为可用于生产的故事板。脚本提供说什么;故事板定义如何展示它。
输入:完成的脚本(在第 1.5 阶段批准)
任务:
认知负荷远低于从头开始创建一切——叙事已经确定,因此您只需专注于视觉执行。
输出:将完成的故事板保存为 remotion_video/storyboard.md,用于设计可追溯性和迭代参考。
模板请参阅 storyboard-template.md。字幕格式和 TTS 说明请参阅 script-and-narration.md 第 4 部分。
⚠️ 检查点规则生效:完成此阶段的每个复选框项目后,立即更新
PROGRESS.md。请勿批量更新。
应用 Kurzgesagt/回形针风格。具体步骤:
constants.ts — 按照 design-tokens.ts 第 3 节定义 COLORS、TYPOGRAPHY、SCENES、NARRATION 和预估的 AUDIO_SEGMENTS@remotion/google-fonts 中的 loadFont()(参考 design-tokens.ts 第 2 节)风格原则:
完整的视觉标准请参阅 style-guide.md。构图和布局请参阅 visual-principles.md。
⚠️ 检查点规则生效:完成此阶段的每个复选框项目后,立即更新
PROGRESS.md。请勿批量更新。在"已创建文件"中记录关键文件路径。
使用 Remotion 实现场景:
useCurrentFrame()字幕和旁白规则(对第 4.5 阶段兼容性至关重要):
constants.ts 的 NARRATION 对象中——切勿在场景 TSX 文件中硬编码文本constants.ts 中创建预估的 AUDIO_SEGMENTS 和近似时间。第 4.5 阶段将用基于音频的实际时间覆盖它AUDIO_SEGMENTS.sceneKey——切勿使用带有硬编码帧号的内联段数组AUDIO_SEGMENTS 中的 startFrame/endFrame 必须使用场景本地帧号(每个场景从 SCENE_PAD=15 开始),不是全局帧号。因为 AudioLayer 和 SubtitleSequence 都在场景的 <Sequence> 内部运行,useCurrentFrame() 返回的是本地帧号。如果使用全局帧号,后续场景的字幕会延迟或完全不显示rebuild-timeline.ts --write 可以在不修改任何场景文件的情况下更新时间视觉-旁白对齐规则(防止动画-字幕不同步):
startFrame 必须从 AUDIO_SEGMENTS 对应段的 startFrame 派生,不能凭"视觉节奏"硬编码const liftArrowStart = AUDIO_SEGMENTS.forces[0].startFrame;(升力箭头在旁白说"升力"时出现)const liftArrowStart = 30;(凭感觉写的帧数,和旁白无关)元素尺寸规则(防止"缩略图综合症"——大画布上的微小元素):
背景规则(防止过渡期间的透明/棋盘格帧):
<AbsoluteFill> 背景层(使用 COLORS.background),位于所有场景之后,并且从不参与过渡fade() 过渡期间,两个场景的透明度都会降低——如果没有持久背景,透明帧在预览中会显示为棋盘格图案,在渲染中显示为黑色视觉丰富度规则(防止类似 PPT 的输出):
颜色规则(对第 5 阶段样式扫描合规性至关重要):
constants.ts 中的 COLORS 对象引用(例如,COLORS.accent.rose)——切勿在 TSX 文件中直接写入十六进制值rgba()(例如,字幕背景的 rgba(0, 0, 0, 0.7))完整的 constants.ts 结构(COLORS、SCENES、NARRATION、AUDIO_SEGMENTS、字体加载)请参阅 design-tokens.ts 第 3 节。组件模式请参阅 svg-components.md。时间和缓动请参阅 animation-guide.md。
⚠️ 检查点规则生效:完成此阶段的每个复选框项目后,立即更新
PROGRESS.md。请勿批量更新。
完成动画编码后,生成视频音频并同步时间线:
generate-tts.ts 从 NARRATION 提取文本生成 mp3rebuild-timeline.ts --write 根据实际音频时长更新 constants.tsnewDuration / oldDuration 比例缩放public/audio/bgm.mp3详细步骤、命令参数、AudioLayer 模板见 audio-guide.md。
⚠️ 检查点规则生效:完成此阶段的每个复选框项目后,立即更新
PROGRESS.md。请勿批量更新。
完成编码后,执行自动质量检查流程:
详细检查步骤和规则见 quality-checklist.md。
预览看起来正确后,渲染最终视频:
cd remotion_video
npx remotion render src/index.ts <CompositionName> out/video.mp4
选项:
--codec h264(默认)或 --codec h265 以获得更小的文件大小--quality 80 到 100(默认:80)--scale 1(1080p)——如果源资产支持,使用 --scale 2 进行 4K 渲染--log verbose输出文件将在 remotion_video/out/video.mp4。
标准教育视频结构:
1. 钩子(5-10秒) - 吸引注意力的问题或陈述
2. 介绍(10-20秒) - 主题介绍
3. 内容(主体) - 核心解释,分解为多个片段
4. 总结(10-20秒) - 关键要点
5. 结尾(5-10秒) - 行动号召或结束语
详细结构模板请参阅 script-and-narration.md 第 1 部分。
| 文件 | 何时使用 |
|---|---|
| requirements-guide.md | 开始新的视频项目(第 1 阶段) |
| script-and-narration.md | 视频结构、脚本撰写、旁白、字幕/TTS(第 1.5 + 2 阶段) |
| storyboard-template.md | 将脚本转换为视觉场景(第 2 阶段) |
| style-guide.md | 设计视觉元素(第 3 + 4 阶段) |
| visual-principles.md | 布局和构图决策(第 3 + 4 阶段) |
| animation-guide.md | 实现动画(第 4 阶段) |
| svg-components.md | 创建可重用组件(第 4 阶段) |
| audio-guide.md | TTS 生成、时间线重建、AudioLayer 集成详细步骤(第 4.5 阶段) |
| quality-checklist.md | 质量保证 + 样式检查规则(第 5 阶段) |
| design-tokens.ts | 调色板、排版预设、constants.ts 模板(第 3 阶段) |
| progress-template.md | 执行进度跟踪模板(全流程) |
| scene-template.tsx | 场景组件模板(第 4 阶段) |
| subtitle-sequence-template.tsx | 字幕序列组件模板(第 4 阶段) |
| common-icons.tsx | 通用 SVG 图标组件(第 4 阶段) |
| generate-tts.ts | 字幕提取 + TTS 音频生成脚本(第 4.5 阶段) |
| rebuild-timeline.ts | 音频时长测量 + 时间线重建脚本(第 4.5 阶段) |
| style-scan.ts | 代码样式扫描脚本(第 5 阶段) |
| render-keyframes.ts | 关键帧批量截图脚本(第 5 阶段) |
| shared.ts | 脚本共享函数(内部依赖,无需直接调用) |
每周安装次数
168
仓库
GitHub 星标数
24
首次出现
2026年2月3日
安全审计
安装于
opencode152
codex148
gemini-cli145
cursor140
github-copilot139
kimi-cli130
agent-browser 浏览器自动化工具 - Vercel Labs 命令行网页操作与测试
152,900 周安装
OpenClaw看门狗:网关自愈监控系统,自动重启与Telegram警报
152 周安装
重构遗留代码指南:AI辅助提升代码可维护性与性能的最佳实践
152 周安装
LBO模型构建指南与Excel模板:杠杆收购建模规范、公式与最佳实践
152 周安装
人才招聘专家服务 | 招聘策略、候选人寻源、面试设计、录用管理全流程指南
152 周安装
iOS Vision框架开发指南:计算机视觉、OCR、姿态检测与Visual Intelligence集成
152 周安装
cc-skill-continuous-learning:Claude代码模板持续学习技能,提升开发效率与代码质量
152 周安装