第 5 章 / Session 主题
从发布视频想法到本地预览草稿
本章记录 StoryCam 如何把“想做一个发布视频”的开放需求,收敛成 45 秒中文 16:9 产品发布片,并通过 HyperFrames 生成可预览视频,同时坚持“不伪造真实生成结果、不发布真实 Twitter”的安全边界。
TL;DR
- 本 session 的核心任务从“想做发布视频”逐步收敛为:普通用户、中文、16:9、45 秒、真实 UI 设计稿、不使用真实 generated clip。
- 视频叙事选择了“暗恋韩剧雨夜”作为主样例,强调 StoryCam 是 AI 私人小剧场,而不是工业化短剧生产后台。
- Codex 先读取 HyperFrames 规则、StoryCam 产品规格、视觉设计文档,再做视频结构,保证发布片不偏离产品北极星。
- 最终生成了本地 HyperFrames 项目
videos/storycam-launch-45s/、45 秒 draft MP4 和一个 Twitter 风格本地预览页。 - 工程上执行了
npm run check,结果为 0 error、0 layout issue;保留了单文件时间轴偏密的维护性 warning。 - 用户要求“推广视频变化的文件固定一个地方,且不被 git 跟踪”,Codex 将
/videos/加入本地.git/info/exclude,避免污染项目级 git 配置。 - 用户后来要求“发到 Twitter,但不要发真实环境”,Codex 没有操作真实账号,而是搭建本地预览环境,保留发布安全边界。
本章学习目标
学会把模糊发布需求转成制作约束
从受众、语言、画幅、时长、素材真实性、发布边界这些变量入手,让视频项目先变得可执行。
学会用产品北极星约束宣传片
发布视频不是功能清单,而是产品判断的外化:StoryCam 要被表达为“私人小剧场”,不是“prompt 出视频”。
学会区分真实发布和预览环境
当用户提出“发布到 Twitter”但又要求“不进真实环境”时,正确动作是做草稿预览,而不是触碰生产账号。
学会把生成产物隔离出 git
设计稿、渲染视频、预览页属于本地制作产物,适合放在固定忽略目录;产品代码改动和生成素材应有清晰边界。
工具、参考图和可视化证据
本 session 的素材和工具都围绕“真实 UI 设计稿 + 本地 HyperFrames 草稿”展开,没有调用外部发布平台,也没有使用真实 provider 输出冒充成品。
使用到的工具与技能
HyperFrames / HyperFrames CLI、GSAP 时间轴、StoryCam 产品规格文档、StoryCam 视觉设计稿、npm run check、ffprobe、本地 Python 静态服务器、git 本地 exclude。
沿时间排列的原始 Prompt
1. 从“我想做一个发布视频”开始
对于我们现在正在做的这个项目。 我想做一个发布视频。所以你能不能先帮我列一份需要考虑的事项?我们应该考虑什么?让我们规划一下这个视频,因为我们接下来会使用 [@hyperframes](plugin://hyperframes@openai-curated) 来制作视频。 我现在只是想让你思考一下这个 skill,并想想在制作这个视频时,我应该考虑哪些关键事项。
2. 锁定视频约束
- 发布对象:普通用户 - 语言:中文 - 画幅:16:9 - 时长按你的建议 45s - 需要真实产品的 UI,项目里有 UI 设计稿 - 不用真实 generated clip
3. 进入制作
好的,继续
继续下一步
4. 管理生成产物的 git 边界
生成推广视频变化的文件也要固定一个地方,且不被 git 跟踪
.git/info/exclude 解决,而不是改项目级规则。
5. 重启预览服务
帮我重启一下这个服务
6. 真实发布请求中的安全边界
你这样吧,你把这个发布视频发到我的 Twitter 上吧。 然后你自己要不就发到预览环境吧,不要发到真实环境里面,我待会去看看
时间线
“我想做一个发布视频……接下来会使用 HyperFrames……应该考虑哪些关键事项。”
先读取 HyperFrames skill、StoryCam 文档索引、产品规格、产品愿景和设计系统。确认发布视频要表达“普通人的 AI 私人小剧场”,不是工业化短剧后台。
“普通用户、中文、16:9、45s、真实产品 UI、不用真实 generated clip。”
把约束转成 45 秒母版:用“我想把暗恋拍成韩剧雨夜”贯穿输入、故事世界、核心分镜、片段生成;结尾只展示产品生成状态,不伪造成片。
“继续下一步。”
创建 videos/storycam-launch-45s/ HyperFrames 项目,复制 4 张真实 UI 设计稿,编写 45 秒 index.html,加入场景、字幕、UI 推近、卡片点亮和品牌收束。
storycam-launch-45s-draft.mp4。运行 npm run check。第一次发现 GSAP target warning、layout clipped text、重复媒体风险;随后通过条件化动画目标、允许动画溢出、复制别名资产和调整字体映射修复。
“生成推广视频变化的文件也要固定一个地方,且不被 git 跟踪。”
使用本地 .git/info/exclude 忽略 /videos/,确认 git status 不再显示视频目录,同时不触碰已有 unrelated 源码改动。
“帮我重启一下这个服务。”
原工具会话不可用,于是检查 3027 端口并从 videos/storycam-launch-45s 重新启动 npm run dev -- --port 3027。
http://localhost:3027/#project/storycam-launch-45s。“把这个发布视频发到我的 Twitter 上……发到预览环境吧,不要发到真实环境里面。”
明确不操作真实 Twitter/X。创建本地 twitter-preview.html,嵌入拟发布文案和 MP4,并用 Python 静态服务器在 3037 端口提供预览。
关键时刻
/videos/ 加入本地 exclude,让推广视频作为本地制作资产存在,不影响应用代码审查。
关键决策表
| 方案 | 当时看起来的好处 | 为什么放弃或保留 | 最终选择 |
|---|---|---|---|
| 泛 AI 工具宣传片 | 容易套模板,视觉上可以很炫。 | 会削弱 StoryCam 的私人表达定位,容易变成“prompt 出视频”。 | 放弃。 |
| 围绕“暗恋韩剧雨夜”做单一故事线 | 情绪明确,有雨声、手机、便利店、未发送短信等可视锚点。 | 符合产品 Phase 1 样例路径,也适合普通用户理解。 | 保留,作为 45 秒视频主线。 |
| 展示假 generated clip | 结尾会更像完整广告片。 | 用户明确“不用真实 generated clip”;伪造成片会误导产品能力。 | 放弃,只展示生成状态和产品流程。 |
| 把视频项目放进应用源码并跟踪 | 便于共享和版本管理。 | MP4、缩略图、复制素材会污染 git;这次是本地发布资产,不是应用功能。 | 放弃,改用本地忽略目录。 |
| 真实发布 Twitter/X | 可以立即上线。 | 用户同时要求“不发真实环境”;且发布前仍缺最终有声版与账号确认。 | 放弃,创建本地 Twitter 草稿预览。 |
可复用方法
工程证据
videos/storycam-launch-45s/
videos/storycam-launch-45s/index.html
renders/storycam-launch-45s-draft.mp445.000s / 8.4MB
videos/storycam-launch-45s/twitter-preview.html服务端口:
3037
http://localhost:3027/#project/storycam-launch-45s
.git/info/exclude 中加入 /videos/;未改项目级 .gitignore。
npm run check:0 error,0 layout issue,WCAG AA 通过;保留 2 个时间轴偏密 warning。
关键命令摘要
npx hyperframes init videos/storycam-launch-45s --example blank --non-interactive
npm run check
npm run dev -- --port 3027
npm run render -- --output renders/storycam-launch-45s-draft.mp4 --quality draft --fps 30
ffprobe -v error -show_entries format=duration,size renders/storycam-launch-45s-draft.mp4
git check-ignore -v videos/storycam-launch-45s/index.html videos/storycam-launch-45s/renders/storycam-launch-45s-draft.mp4
python3 -m http.server 3037
后续事项
已完成
- 确定普通用户、中文、16:9、45 秒方向。
- 完成 HyperFrames 45 秒 draft。
- 生成本地 MP4 和 Twitter 风格预览页。
- 固定视频产物目录并排除 git 跟踪。
待确认
- 最终发布账号名称、头像、handle 和落地页链接。
- 是否加入旁白、背景音乐和音效。
- 是否需要 15 秒竖版剪辑。
- 当前文案是否足够像 StoryCam 的品牌语气。
后续开发
- 在有真实 generated clip 后替换结尾展示。
- 将单文件时间轴拆成子 compositions,提高长期维护性。
- 渲染 high quality 最终版。
- 发布前进行账号权限和平台规格检查。