Communitygithub.com

竖版短视频工作室

一个基础、可复用的指南,用于制作带旁白的竖版(9:16)解说视频,适配 Instagram Reels、Threads、TikTok 或 YouTube Shorts,基于 Remotion 构建,并可选配 ElevenLabs 语音旁白。涵盖调研、用户批准的脚本草稿、语音旁白、动态文字场景、Reels 安全导出、质量检查、字幕和封面选项。

竖版短视频工作室 是什么?

此技能提供了一个结构化的自动化工作流,用于使用 Remotion 和 ElevenLabs 创建专业、带旁白的竖版视频(适用于 Reels、Shorts 等)。它会通过 `brand.config.json` 提示用户输入其品牌配置(如用户名、水印、行动号召、语音偏好),然后引导用户完成从调研和脚本撰写到渲染和导出的完整过程。该工作流强调事实核查、用户对脚本的批准,以及严格的输出后质量检查,以确保视频符合技术标准(尺寸、编解码器、响度)和内容标准(安全区、无截断文本)。最终成果包括最终的 MP4 文件、字幕、封面图和一个来源列表,并可选择使用匹配的钩子和文本进行社交发布。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ahmadaryanto/vertical-reels-video-studio/tree/HEAD/skills/vertical-reels-video-studio

在你喜欢的 AI 中提问

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

文档

竖版短视频工作室(基础版)

一个简单、逐步的流程,用于制作 30–90 秒的竖版视频。

0. 首次运行:向用户询问他们的设置(切勿使用默认值)

在制作第一个视频之前,如果 brand.config.json 缺失、包含 "configured": false 或仍然包含 @yourhandle, 请询问用户(一次一个问题)并将答案保存到 brand.config.json:

  1. 社交账号:他们使用的 Instagram、Threads、TikTok、X。
  2. 水印文字(按需显示,例如 @yourhandle 或 @ig / @x)和位置(bottom-center、bottom-left、top-left、top-right)。
  3. 行动号召 文本及其提及的账号。
  4. 语音:他们的 ElevenLabs 语音 ID + 模型 + 语言,或“我将录制自己的语音”。API 密钥仅作为 ELEVENLABS_API_KEY 密钥请求。
  5. 语言和语气;语音应如何说出他们的名字/账号。

然后设置 "configured": true。切勿编造账号,切勿重复使用他人的账号(包括此工具包的作者),也切勿渲染仍然显示 @yourhandle 的水印。

以下占位符映射到 brand.config.json:

占位符配置键含义
{{HANDLE}}handles.*用户自己的账号
{{WATERMARK}}watermark.text、watermark.position水印文本和位置,按用户提供的方式
{{LANGUAGE}}language、tone语音旁白和字幕的语言和语气
{{VOICE_ID}}voice.voiceId用户选择的语音
{{TTS_MODEL}}voice.modelElevenLabs 模型,例如 eleven_multilingual_v2
{{CTA}}cta.text、cta.handle用户的行动号召

API 密钥始终来自环境变量 ELEVENLABS_API_KEY。切勿打印它,切勿将其写入提交的文件中。

流程

  1. 询问用户的设置(首次运行) → 1. 主题 → 2. 调研和事实核查 → 3. 脚本草稿 → 4. 用户批准 →
  2. 语音旁白 → 6. 时间轴 → 7. 构建场景 → 8. 渲染 → 9. Reels 安全导出 →
  3. 质量检查 → 11. 封面和字幕 → 12. 交付。 如果用户要求更改,请返回到更改所触及的最早步骤(一行新文本意味着仅对那一行重新生成语音旁白)。

1–2. 主题和调研

  • 每个视频只讲一个故事。为初学者撰写。
  • 对照主要来源(官方页面、作者自己的帖子、带有日期的截图)检查每个数字、日期、名称和引用。删除任何无法验证的内容。切勿编造事实。
  • 保留一个简短的 sources.md 文件,包含你使用的链接。

3–4. 草稿,然后等待

  • 为前 2 秒提供 2–4 个钩子选项(一个疑问或一个令人惊讶的对比)。
  • 编写一个计时表格:时间 | 屏幕文本 | 语音旁白。目标时长为 45–65 秒,切勿超过 90 秒。
  • 暂停并将草稿发送给用户。在获得用户批准之前,不要生成音频或渲染。

5. 语音旁白

  • 使用 {{VOICE_ID}} 生成已批准的脚本(参见 scripts/tts.py)。保留两个文本:显示文本(字幕显示的内容)和 TTS 文本(为语音拼写,例如将“AI”拼写为 A.I.,数字写成单词)。
  • 听一遍。仅重新生成有错误的行。切勿在音频中留下同一行的两个副本。
  • 如果你没有 ElevenLabs 帐户,请录制自己的语音。效果同样好。

6. 时间轴

  • 获取单词时间戳(ElevenLabs 对齐,或对音频使用 Whisper)并保存 timing.json:{duration, words:[{w,s,e}], scenes:[{id,start}]}。
  • 动画在其单词被说出的帧上开始:frame = Math.round(seconds * 30)。

7. 构建场景 (Remotion, 1080 × 1920, 30 fps)

  • 深色背景,一种浅色文本颜色,一种强调色。每个节拍一个大标题。
  • 动态文字: 每个标题单词在其被说出的单词上弹出(缩放 0.6 → 1,带轻微过冲)。
  • 每 1.5–3 秒在屏幕上显示一个新内容。数字至少保持 1.5 秒,以便人们可以阅读。
  • 钩子文本从第 0 帧开始可见,因此第一帧可以用作静态帧。
  • 安全区:将文本保持在 y = 200 和 y = 1500 之间。将 {{WATERMARK}} 文本以较小的字号放置在用户选择的位置(底部默认:y ≈ 1430)。
  • 使用真实的截图和徽标并注明来源。将模拟图标记为“插图”。

8–9. 渲染和导出

npx remotion render src/index.ts <CompositionId> out/raw.mp4
bash scripts/reels-export.sh out/raw.mp4 out/final-reels.mp4

导出会生成:1080 × 1920,H.264 High ≤ 4.1,yuv420p (TV range),BT.709,恒定 30 fps,8–12 Mbps,AAC 48 kHz,+faststart,-14 LUFS / ≤ -1 dBTP。将视频保持在 90 秒以内。

10. 质量检查(始终执行,在交付之前)

运行 bash scripts/qa-check.sh out/final-reels.mp4 并查看 scripts/contact-sheet.sh 的输出。检查:

  • 音频:词语清晰,无剪切,无重复行,响度 ≈ -14 LUFS。
  • 视频:无截断文本,无超出安全区的内容,无冻结片段,开头或结尾无空白秒。 在发送任何内容之前修复并重新渲染。

11–12. 封面、字幕、交付

  • 2–4 个封面选项,1080 × 1920 以及一个 1080 × 1350 网格版本。一个大钩子,一个主要图像,最多 2–3 个小数字卡片。将关键文本保持在中心 1080 × 1080 区域内。
  • 字幕:Instagram(钩子、正文、{{CTA}}、一些主题标签),Threads(更短,无主题标签),TikTok。
  • 交付最终的 MP4 文件、一个小预览文件(< 40 MB)、封面、字幕、.srt 文件和来源列表。

规则

  • 切勿发布、上传或购买任何内容。将文件交给用户。
  • 无编造事实。注明你展示的每个来源和每个开源作者。
  • 仅使用你拥有使用权的音乐、片段和语音。

Individual skills in this repo

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

相关技能