Commit 77fc25b6c7b569357808aa19b7bade452b1f5353
1 parent
a4462054
Fold the live.html portrait-resolution correction into the docs directly
Previously left as inline "勘误" patch notes; now the baseline doc (docs/done) states the current 480x832 default outright, and the dance-room docs describe live.html/dance.html as two independently configured H3_GEN_PARAMS that happen to agree, rather than flagging an erratum. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SdtXTsDRz5QWMjvt1HBXLz
Showing
4 changed files
with
27 additions
and
47 deletions
docs/done/live-channel-v1.md
| ... | ... | @@ -36,9 +36,11 @@ |
| 36 | 36 | 审核)→ 通过后 `submitPromptToQueue`: |
| 37 | 37 | - 命中素材库(中/英文 prompt 精确或子串匹配)→ 直接进入待播队列 |
| 38 | 38 | (`status: matched`)。 |
| 39 | - - 未命中 → 调用 H3 Console `POST /v1/videos`(文生视频,832x480/120帧/ | |
| 40 | - 20步)异步生成,`status: generating`,生成完成后自动写入 | |
| 41 | - `library.json` 并推入待播队列(`status: ready`)。 | |
| 39 | + - 未命中 → 调用 H3 Console `POST /v1/videos`(文生视频,480x832 竖屏/ | |
| 40 | + 120帧/20步——第一期默认横屏 832x480,后改为竖屏移动端优先,见 | |
| 41 | + commit `1dc7084`)异步生成,`status: generating`,生成完成后自动 | |
| 42 | + 写入 `library.json` 并推入待播队列(`status: ready`)。存量片段 | |
| 43 | + 保留生成时的原比例,播放器 `object-fit: contain` 兼容混合比例。 | |
| 42 | 44 | - 生成是完全后台化的(H3 自建集群单次约 200s),绝不阻塞直播时刻表或 |
| 43 | 45 | HTTP 响应。 |
| 44 | 46 | - `POST /api/prompt` 是同一条提交路径的非聊天版本(供测试/直接调用)。 |
| ... | ... | @@ -113,7 +115,7 @@ |
| 113 | 115 | "promptEn": "...", // 可选,英文短 prompt |
| 114 | 116 | "fullPrompt": "...", // 完整生成 prompt(H3 结构化 prompt 或用户原话) |
| 115 | 117 | "videoUrl": "...", // 可选,外部视频地址(manual 或后台改过播放源) |
| 116 | - "width": 832, "height": 480, | |
| 118 | + "width": 480, "height": 832, // 当前默认竖屏;早期/存量片段可能是 832x480 横屏 | |
| 117 | 119 | "duration": 5, // 秒 |
| 118 | 120 | "partition": "text", // text | ref2va | fl2va | manual |
| 119 | 121 | "likes": 0, | ... | ... |
docs/structure/architecture.md
| ... | ... | @@ -195,14 +195,15 @@ v2 必须挪到服务端 `.env`,不能再让 key 走浏览器。 |
| 195 | 195 | 前第一步就是用真实调用验证这条路径,而不是假设它一定按预期工作 |
| 196 | 196 | (`docs/todo` 第 8.2 条)。 |
| 197 | 197 | |
| 198 | -### 2.4 视频规格:默认竖屏,移动端优先(仅 `dance.html`) | |
| 199 | - | |
| 200 | -`dance.html` 的生成请求默认用 **480×832**(`live.html` 现有默认 | |
| 201 | -832×480 的宽高对调),总像素量与现状完全一致,理论上不会拖慢 H3 | |
| 202 | -Console/fal.ai 的生成耗时(`docs/todo` 4.4 节)。`live.html` 现有横屏 | |
| 203 | -内容/默认值不变,两个直播间的规格是独立配置,不共享同一份 | |
| 204 | -`H3_GEN_PARAMS`。播放器 UI 上,`dance.html` 需要一套按 9:16 设计的 | |
| 205 | -播放器容器,不能直接复用 `live.html` 现有横屏播放器的宽高比。 | |
| 198 | +### 2.4 视频规格:默认竖屏,移动端优先 | |
| 199 | + | |
| 200 | +`dance.html` 的生成请求默认用 **480×832**(早期横屏默认 832×480 的 | |
| 201 | +宽高对调),总像素量与现状完全一致,理论上不会拖慢 H3 Console/fal.ai | |
| 202 | +的生成耗时(`docs/todo` 4.4 节)。两个直播间的规格是各自独立的 | |
| 203 | +`H3_GEN_PARAMS` 配置,互不共享——`live.html` 一侧后来也独立改成了 | |
| 204 | +竖屏默认(`docs/done` 2.2 节),只是刚好两边选型一致,不是同一份配置 | |
| 205 | +联动的结果。播放器 UI 上,`dance.html` 需要一套按 9:16 设计的播放器 | |
| 206 | +容器,不能直接复用 `live.html` 现有播放器的宽高比假设。 | |
| 206 | 207 | |
| 207 | 208 | ### 2.5 与现状的集成点 |
| 208 | 209 | ... | ... |
docs/todo/dressup-dance-room-mvcp.md
| ... | ... | @@ -116,7 +116,7 @@ |
| 116 | 116 | | `backend` | enum | `h3_console` \| `fal`(4.3 节双算力策略,记录这条具体是哪条算力路径生成的,便于追溯成本) | |
| 117 | 117 | | `priority` | enum | `normal` \| `paid_boost`(`paid_boost` = 付费新人物内容,排播时走 2.6 节"插队"通道,不参与投票) | |
| 118 | 118 | | `requestedByUserId` | string \| null | 付费请求必填,免费匿名请求为 null(用 `legacyUid` 兜底) | |
| 119 | -| `width`/`height` | number | `dance` 频道默认 480×832,`live` 频道现状默认已同步改为 480×832(见文末"勘误"一节) | | |
| 119 | +| `width`/`height` | number | `dance` 频道默认 480×832;`live` 频道走独立的 `H3_GEN_PARAMS`,目前也是 480×832(`docs/done` 2.2 节),两者不共享同一份配置 | | |
| 120 | 120 | |
| 121 | 121 | ### M.8 直播时刻表状态(非持久化数据库表,`live-state.json` 风格的内存+落盘结构,`dance.html` 独立一份) |
| 122 | 122 | |
| ... | ... | @@ -400,20 +400,3 @@ sequenceDiagram |
| 400 | 400 | 3. **人物到期检测**:每次消费完 `priorityInbox` 里某人物的一段后, |
| 401 | 401 | `remainingSegments -= 1`,归零则置 `characters.status = expired` |
| 402 | 402 | 并从后续排播候选中过滤掉(架构文档 2.7节)。 |
| 403 | - | |
| 404 | ---- | |
| 405 | - | |
| 406 | -## 勘误:`live.html` 分辨率现状更新 | |
| 407 | - | |
| 408 | -写这份需求文档时(`docs/todo/dressup-dance-room.md` 4.4节)记录的是 | |
| 409 | -"`live.html` 现状横屏 832×480 不变,只有 `dance.html` 默认竖屏"。但 | |
| 410 | -`server.js` 的 `H3_GEN_PARAMS` 在另一次改动中已经被改成 | |
| 411 | -`{ width: 480, height: 832 }`(commit `1dc7084`,`live.html` 侧的 | |
| 412 | -说明是"未来生成的新片段走竖屏,存量片段保留原比例,播放器 | |
| 413 | -`object-fit: contain` 兼容混合比例")——也就是说 **`live.html` 现在 | |
| 414 | -新生成的内容其实也已经是竖屏了**,只是存量片段还是横屏混着播。 | |
| 415 | - | |
| 416 | -`dance.html` 侧的设计不受影响(本来就是独立的 `H3_GEN_PARAMS` 配置, | |
| 417 | -见架构文档 2.4节),但需求文档 2/4.4节"live.html 现状横屏不变"这句 | |
| 418 | -描述已经不准确,建议后续同步一次勘误(不在本次技术设计文档范围内, | |
| 419 | -先在此记录,避免依赖这份文档的人被误导)。 | ... | ... |
docs/todo/dressup-dance-room.md
| ... | ... | @@ -27,9 +27,8 @@ |
| 27 | 27 | 不是同一个直播间的两个 tab——它们是两条并行的产品线,共用后端的 |
| 28 | 28 | 素材库/生成流水线/账号体系等基础设施。 |
| 29 | 29 | - **`dance.html` 默认竖屏、移动端优先**——具体规格见第 4.4 节。 |
| 30 | - (勘误:`live.html` 一侧此后也已独立改成竖屏默认,见 4.4 节末尾说明, | |
| 31 | - 两个频道各自的 `H3_GEN_PARAMS` 配置互不影响,只是当时判断的"横屏不变" | |
| 32 | - 前提已经过时。) | |
| 30 | + `live.html` 一侧此后也独立改成了竖屏默认(`docs/done` 2.2 节),两个 | |
| 31 | + 频道各自维护自己的 `H3_GEN_PARAMS`,互不影响、互不依赖对方的改动。 | |
| 33 | 32 | |
| 34 | 33 | ## 3. 观众体验流程(已确认:使用已有资产库免费,新增资产付费) |
| 35 | 34 | |
| ... | ... | @@ -110,14 +109,16 @@ |
| 110 | 109 | Stage1(换装图合成)在两条路径下大概率都是 fal.ai(H3 Console 不产图), |
| 111 | 110 | 只有 Stage2(视频生成)真正分叉成两条算力。 |
| 112 | 111 | |
| 113 | -### 4.4 视频规格:默认竖屏,移动端优先(已确认,仅 `dance.html`) | |
| 112 | +### 4.4 视频规格:默认竖屏,移动端优先(已确认) | |
| 114 | 113 | |
| 115 | -- `dance.html` 生成的视频**默认竖屏**(`live.html` 现有横屏内容不受影响, | |
| 116 | - 两个直播间各自独立的规格,见第 2 节)。 | |
| 117 | -- **默认分辨率 480×832**——现有 `server.js` 里 `H3_GEN_PARAMS` 的横屏 | |
| 118 | - 默认是 832×480(总像素量 ≈ 40 万),480×832 只是宽高对调,总像素量 | |
| 119 | - 完全不变,理论上不会因为改成竖屏而拖慢生成耗时(H3 集群单条本来就 | |
| 120 | - 约 200s,见 `H3-CONSOLE.md`,竖屏化不能再让这个数字变得更差)。 | |
| 114 | +- `dance.html` 生成的视频**默认竖屏**,与 `live.html` 各自维护独立的 | |
| 115 | + `H3_GEN_PARAMS` 配置(第 2 节)——`live.html` 一侧后来也独立改成了 | |
| 116 | + 竖屏默认(`docs/done` 2.2 节),两边不是同一份配置,只是刚好选型 | |
| 117 | + 一致。 | |
| 118 | +- **默认分辨率 480×832**——总像素量 ≈ 40 万,与早期横屏默认 832×480 | |
| 119 | + 完全一致(只是宽高对调),理论上不会因为竖屏化而拖慢生成耗时(H3 | |
| 120 | + 集群单条本来就约 200s,见 `H3-CONSOLE.md`,竖屏化不能再让这个数字 | |
| 121 | + 变得更差)。 | |
| 121 | 122 | - 更高分辨率(576×1024/720×1280 等)画质更好,但会明显增加生成耗时, |
| 122 | 123 | **不作为默认**,可以作为后续付费选项预留(呼应第 7.2 节"新增资产才 |
| 123 | 124 | 消耗积分"的思路——高清可以是另一档付费能力,不是本期范围,先不做)。 |
| ... | ... | @@ -126,13 +127,6 @@ Stage1(换装图合成)在两条路径下大概率都是 fal.ai(H3 Console |
| 126 | 127 | `live.html` 现有横屏播放器的宽高比,否则会出现大黑边——这是 |
| 127 | 128 | `dance.html` 相对 `live.html` 除了"没有文字输入框"之外的第二个视觉 |
| 128 | 129 | 差异点。 |
| 129 | -- **勘误**:`server.js` 的 `H3_GEN_PARAMS`(`live.html` 使用的那份) | |
| 130 | - 之后被单独改成了 `480×832`(commit `1dc7084`),也就是说 `live.html` | |
| 131 | - 新生成的内容现在其实也是竖屏了,存量片段仍是原比例混播(播放器靠 | |
| 132 | - `object-fit: contain` 兼容)。这是 `live.html` 那条独立产品线自己的 | |
| 133 | - 改动,跟 `dance.html` 的配置互不影响,但上面"仅 `dance.html`"的表述 | |
| 134 | - 已不完全准确,记录于此,详见 `docs/todo/dressup-dance-room-mvcp.md` | |
| 135 | - 文末"勘误"一节。 | |
| 136 | 130 | |
| 137 | 131 | ### 4.5 失败/超时处理 |
| 138 | 132 | ... | ... |