# RFC-09：多引擎的产品价值与体验设计

> **Status**: Draft v0.2（产品/体验层 spec，供 studio UI、agent 编排、launch 文案统一口径）
> **Date**: 2026-06-06；**v0.2 定位修正 2026-06-07**
> **Scope**: 回答"hyperframes 和 Remotion 怎么结合""结合的价值是什么""用户怎么用到"——从用户视角定义多引擎体验。
> **关系**: RFC-08 定义 Remotion adapter 的**技术**接法；本 RFC 定义多引擎对**用户**意味着什么、studio 里长什么样。两者互补。
> **来源**: 2026-06-06 与 Joey 的设计讨论（段落混用 / 默认 hyperframes / 数据帧推荐对比）。
> **v0.2 修正**: Joey 2026-06-07 拍板——**Remotion 是用户主动挂的"动效增强插件"，不是 AI 背着用户偷偷换的引擎**。Hyperframes 是基座（所有帧默认走它），Remotion 更像锦上添花的增强。下面所有"AI 自动选引擎 / 引擎名对用户隐形"的旧表述据此降级为"AI 建议 + 用户主动开关"。

---

## 0. 一句话定位（v0.2）

> **做视频不该在"好看"和"准确"之间二选一。html-video 以 hyperframes 为基座快速出片；遇到数据画面，你可以主动给这一帧挂上 Remotion 增强，让数字真的滚起来、柱子按真数据长出来——拼成你要的那一条。**

**定位铁律（v0.2）**：
- **Hyperframes 是基座**——所有帧默认走它，免费、零配置、所见即所得。
- **Remotion 是用户主动挂的增强插件**——不是 AI 背着用户换引擎。用户**明确知道**自己在"给这一帧开增强"，开不开的手始终在用户。
- **AI 退到"建议"**——它可以在数据帧上提示"这段开增强数字会动起来"，但**不替用户决定**，更不静默切换。
- 引擎名可以对用户露出（"用 Remotion 增强这一帧"），因为这是用户主动选的动作，不再是需要隐藏的内部细节。

---

## 1. 用户视角：两类需求，今天的工具逼人二选一

| | 第一类：做"好看"的视频 | 第二类：做"准确"的视频 |
|---|---|---|
| 场景 | 营销短片、产品发布、logo 动画、社交片头 | 数据报告、增长曲线、KPI 周报、批量出片 |
| 用户要什么 | **炫、快、所见即所得**，动画越花哨越好 | **数字对、每次一样、能自动批量** |
| 谁服务他 | hyperframes 路线（浏览器真跑录屏，预览即出片） | Remotion 路线（数据驱动动画、逐帧精确、可云端批量） |

**今天市面工具的痛点**：用 hyperframes 类做不了精确数据动画；用 Remotion 类又得会写 React、做不了白嫖的炫动画。**用户被逼二选一。**

**html-video 的价值 = 用户不用选。** 下面三条价值依次展开。

---

## 2. 技术框架：拆掉"二选一"的错觉（两轴模型）

> 这一节是内部理解，不直接对用户讲。但它是所有结合方案的地基。

把纠缠的两件事拆成两个独立的轴：

**轴 1 — Authoring（用户/agent 写什么）**：`HTML+CSS+GSAP`（现有 27 模板） / `React-tsx`（Remotion 原生）

**轴 2 — Capture（像素怎么变视频）**：
- **实时录屏**：浏览器真跑、录下来（现 hyperframes/playwright）。动画白嫖，但**非确定性**（机器卡了丢帧、时长抖动）
- **确定性 seek**：时钟冻在第 N 帧 → 把动画 seek 到 N → 截图 → 前进。**确定性**，但动画要靠 seek 驱动

两个 adapter 各占一格，中间两格是机会：

| | 实时录屏 | 确定性 seek |
|---|---|---|
| **HTML+GSAP** | ✅ hyperframes（现状） | ⬅ RFC-08 §3.2 桥接在这（HTML 白嫖 + 确定性） |
| **React-tsx** | （没价值的角） | ✅ Remotion 原生（数据动画的家） |

**关键洞察**：RFC-08 的"桥接"不是第三种引擎，它是 `HTML authoring × 确定性 capture`——已经是一种结合体。但真正服务用户价值的结合，发生在**编排层**（§3），不是渲染器内部。

---

## 3. 价值一：一条视频里"该炫的炫，该准的准"（段落级引擎混用）

### 用户故事

用户做一条"本周增长复盘"视频：
- **开头**：炫酷品牌片头（hyperframes 实时录屏，白嫖 GSAP 动画）
- **中间**：真实 star 增长曲线，数字一个个跳上去、柱子按真数据涨（Remotion 原生数据动画）
- **结尾**：品牌收尾（hyperframes）

→ ffmpeg 拼成**一条连贯 MP4**。用户**完全不知道**中间换了引擎，只觉得"又能做炫片头、又能做准数据，还拼成了一条"。**竞品做不到这个组合。**

### 能不能做？✅ 能，架构已支持

- content-graph（RFC-06）本来就是"每节点出一帧 → ffmpeg concat 拼成片"，`exportMp4` 多帧路径已在走 concat。
- 今天所有节点喂同一个引擎。**改动 = 把"用哪个引擎"从项目级提升为节点级属性**，不同段走不同 adapter。
- 输出层天然兼容：两个引擎最后都吐标准 MP4 帧，ffmpeg 不在乎是谁渲的。
- **v0.2 强调**：这里"片头炫 / 数据准"的分配**不是 AI 背着用户自动切**，而是 **基座 = hyperframes，用户在数据帧上主动开 Remotion 增强**。混流是结果，主动权在用户、AI 只建议。

```
片头帧 (hyperframes 基座)              ┐
数据帧 (用户主动开 → remotion 增强)    ├─→ ffmpeg concat ─→ 一条 MP4
片尾帧 (hyperframes 基座)              ┘
```

> **2026-06-07 已落地（Phase A+B）**：这套混流已在 CLI 层跑通——`FrameRecord.engine`/`nativeTemplateId`/`data` + `orchestrator.enhanceFrameNative()` + `exportMp4` 按帧解析 + 混流重编码 concat。一条 8s MP4 里数据帧是原生 Remotion（柱子按真数据生长 + 数字滚动）、邻帧是 hyperframes，全解码无错、时长精确。首个原生模板 = `templates/frame-data-rollup`。studio 开关 UX 待下一轮。

### 不能做什么？❌ 同一画面叠加两个引擎

"Remotion 数据图叠在 hyperframes 动画背景上、同一画面合成"——**不做**。两引擎各跑各的浏览器、各有时钟和坐标系，像素级实时合成等于自写合成器，复杂度爆炸。真有这需求 → 在**单个引擎内部**做图层叠加。

> **一句话**：拼接式结合（段与段）能做、架构已支持；叠加式结合（同一画面）不做、单引擎内部解决。

---

## 4. 价值二：用户成长路径上不用换工具

- **个人 / ≤3 人团队**：免费、本地跑、做炫视频，够用（默认 hyperframes，free-osi）。
- **团队大了 / 要每天自动出一百条数据视频**：同一个工具，后台切云端批量渲染（Remotion Lambda），不用推翻重学。
- license 由 agent 诚实提示：团队 ≥4 人用到 Remotion 商用路径时，提醒需授权（RFC-08 §6）。

**"省钱省心"——普通人听得懂的价值。** 工具陪用户从个人长到团队。

---

## 5. 价值三：默认 hyperframes + 数据帧推荐 Remotion + 并排对比

这是把多引擎落成**用户能控制的体验**的核心交互。

### 体验流

1. **默认全程 hyperframes** —— 免费、零配置、人人能用。不让所有人一上来碰 Remotion license。
2. **AI 只在"值得"的帧上提示** —— agent 扫一遍视频，识别数据类帧（柱状图 / 增长曲线 / KPI 数字），标记：
   > 💡 这一帧是数据展示，用 Remotion 渲数字会一个个精确跳动、更专业。要不要试试看效果？
3. **用户点一下，同一帧两个版本并排看** —— 左 hyperframes 版 / 右 Remotion 版，自己挑哪个留下。**AI 只推荐不强迫，用户始终掌控。**

### ⚠️ 设计上的关键约束（否则功能是空的）

"并排对比"要有意义，**两边必须真的看起来不一样**：

- 若 Remotion 走**桥接**（渲同一份 HTML）→ 两边几乎一模一样 → 用户："这俩没区别啊？" → **功能白做**。
- 只有 Remotion 渲**原生数据动画**（数字 `interpolate` 从 0 滚到目标、柱子按真数据生长）→ 对比才有看头：左边"静态图表"，右边"数字活起来了"。

**结论**：本功能依赖 RFC-08 **Phase 2（原生 tsx 数据动画）**，不是 Phase 1（桥接）。用户的产品直觉恰好指向 Remotion 真正该用的地方——**数据帧**。

### 对用户的一句话

> "默认帮你快速出片。遇到数据画面，AI 会提示'这段换种方式能让数字动起来，要对比看看吗？'——你看完两个版本，挑你喜欢的。"

---

## 6. AI 编排：用户说要什么，AI **建议**（v0.2 修正：不是替用户选）

用户说"帮我做个本周数据周报视频"，agent：
- 整片以 **hyperframes 基座**生成（默认、免费、零配置）。
- 在数据段**建议**："这几帧是数据，开 Remotion 增强数字会动起来、更专业，要开吗？"——用户点头才挂增强。
- 团队 ≥4 人用到 Remotion 商用路径 → 提示"这段商用需授权"。

依据 = adapter 的 `capabilities`（`licensing` / `renderTarget` / `bestFor`，RFC-01）。AI 用这些字段**判断该不该建议**，而**不是静默路由**。
- ❌ 旧 v0.1 的"整片自动选引擎 / 引擎名隐形"已废弃——那等于 AI 替用户决定，与 v0.2 定位冲突。
- ✅ 正确形态：基座固定 hyperframes，AI 在"值得"的帧上给一个可拒绝的增强建议，用户主动开。

---

## 7. 诚实的落地排序（北极星 vs 近期能做）

> 把"理想体验"和"现在能落地的"分清，避免为了"显得多引擎"硬塞。

**前提链条（§5 体验的依赖）**：
1. ~~先有第二个真引擎出真帧~~ ✅ **已落地**：Remotion adapter 桥接（RFC-08 Phase 1）+ 原生 tsx 数据模板（Phase 2，`frame-data-rollup`）。
2. ~~且得是原生数据动画版~~ ✅ **已落地**（2026-06-07，Phase A+B）：原生柱状图生长 + 数字滚动，CLI 跑通混流 MP4。
3. ⏳ **下一轮**：studio 加"数据帧上的增强开关 + （可选）并排对比" UI。

**近期能先做、不依赖 Remotion 的**：

| 步骤 | 做什么 | 依赖 | 价值 |
|---|---|---|---|
| **① 数据帧识别** | agent 标出哪些帧是 `data` 节点、值得特殊处理（content-graph 已有 entity/data/text 节点，RFC-06） | 无 | §5 体验的"识别"前半段先就位，UI 占位 |
| **② 段落级 engine 字段** | content-graph 节点加 `engine` 属性 + concat 混流（先用 hyperframes 两态占位：实时 / 确定性） | 无（RFC-08 §3.2 seek helper 抽进 core 即可给 hyperframes 加确定性模式） | §3 段落混用的骨架，纸面变可演示 |
| **③ Remotion 桥接** | 接 Remotion adapter | 想上 Lambda / 多轨音频时 | on-ramp 到 Remotion 基础设施 |
| **④ Remotion 原生 tsx** | 数据动画模板 | ③ 之后 | §5 对比功能真正成立、§3 数据段真正精确 |
| **⑤ studio 对比 UI** | 逐帧引擎推荐 + 并排对比 | ④ | §5 体验完整落地 |

**诚实提示**：若近期不上 Lambda、不做数据动画，Remotion 桥接（Phase 1）ROI 不高——更该先做 ① ②（段落混用 + hyperframes 确定性模式），用现有架构见效，不引入 Remotion license 包袱。Remotion 在你真需要它的基础设施（Lambda / 数据动画）时才进场。

---

## 8. 对外口径（launch / 介绍统一用）

- **主标语**：见 §0。
- **三句价值**（对应 §3/§4/§5，v0.2 口径）：
  1. "以 hyperframes 为基座快速出片；遇到数据画面，主动给那一帧挂 Remotion 增强，让数字活起来——拼成一条。"
  2. "从个人到团队，同一个工具陪你长大，不用换、不用重学。"
  3. "AI 会建议哪段值得增强，但开不开由你——主动权始终在用户手里。"
- **纪律（v0.2）**：① 默认/基座永远是 free-osi 的 hyperframes，Remotion 是"用户主动挂的增强"，保护开源自由定位；② **不再讲"引擎名隐形"**——增强是用户主动动作，可以明说"用 Remotion 增强这一帧"，但避免把它讲成"AI 自动换引擎"；③ 不夸"叠加合成"，我们做的是"段落拼接"；④ Remotion 商用 license 由 AI 诚实提示，是相对"只会 Remotion 的工具"的优势。
