Files
hoelee-blog/docs/consultant-review-2026-10-22-3-video-posts.md
T
hoelee bebc3272ce
Deploy / build (push) Successful in 1m4s
docs(state): record the consultant-review round as it actually shipped
§4d now carries the real commit chain (f32ae90 → 04a1082 → cf4504e), the
verification that matters (Actions 292/293/295, six pages 200, artwork md5 vs
live, check-assets 162/162) and an owner queue with three items.

The task doc is rewritten around that queue: (1) confirm whether the four stage
timings (14.2 / 2.1 / 32.4 / 48.6 s) were measured — they have no trail in the
repo and the reviewer's complaint was exactly about unmeasured numbers;
(2) supply the before/after jitter clips; (3) decide which session owns edits to
these three posts, since two sessions on the same files put one session's
paragraphs into the other's commit.

Also drops a claim inherited from the parallel session's completion block: the
reviewer's meta descriptions were never adopted, the frontmatter keeps the
originals.
2026-10-22 23:09:02 +08:00

106 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 顾问对三篇视频文的意见:核对、落地与未决(2026-10-22)
对象:`how-i-built-an-automated-music-video-pipeline` / `uploading-large-videos-to-youtube-via-cdp` /
`debugging-remotion-video-jitter`,EN + ZH 共 6 个文件(`src/content/posts/` 与 `src/content/posts/zh/`)。
---
## 0. 需要你处理的(就三件,其余都已办完或可代办)
| # | 事 | 为什么只有你能定 | 你给了之后我做什么 |
|---|---|---|---|
| **1** | **耗时表里那四个秒数是不是实测的**:歌词对齐 **14.2 s**、分镜留白校验 **2.1 s**、Studio 上传 **32.4 s**、8 语字幕 **48.6 s**(渲染 218.3 s 与落盘 1.89 s 有出处) | 仓库里**没有这四段的测量痕迹**(另一条会话写进去的)。顾问挑的正是「有没有实测」—— 编一个数字比留空更伤可信度 | 你说「是实测」→ 原样保留;你说「估的」→ 改成区间并标 `estimated`,或整列删掉只留渲染 + 落盘 |
| **2** | **修复前后的抖动 / 暗闪对比视频**(原片,或各 20–30 秒两条片段) | 素材只在你手里;顾问第 2.1 条点名要 GIF/短视频,静态截图证明不了抖动 | 剪成 720p GIF + MP4、压到 1MB 内,插进第三篇正文(中英各一份) |
| **3** | **指定一条线改这三篇** | 我推 `f32ae90` 时另一条会话正在写同一批文件,它的段落被卷进我的提交;随后它又追加 `04a1082`。内容没打坏,但两条线改同一组文件迟早互相覆盖 | 你指定主改方,另一边只读;这条已写进技能 |
> 两个小确认(不阻塞):① 文中 1.89 秒写的是「single run, warm container, SSD target on Synology NAS」—— 对不对?
> ② 三篇 description **没有**按顾问给的英文重写(他给的三条与现有覆盖基本重合,我判断不值得改;原文档里那句「已采纳」是错的,已删)。
---
## 一、他的判断哪里对、哪里错
### 对(已全部落地)
| 他的问题 | 核对结果 |
|---|---|
| 三分钟承诺与 218 秒冲突 | **比他说的严重**:两篇都写同一支 4 分钟片;218 秒纯渲染已是 3 分 38 秒,第一篇却说「三分钟后…已渲染并自动发布」 |
| 「38% speedup」术语错 | 352→218.3 是**耗时少 38.0%**、**吞吐 1.61×**(352÷218.3 = 1.6125) |
| 「microsecond-accurate」过度承诺 | 30 fps 一帧 33.3 ms,词级时间戳到不了微秒 |
| `Zero Jitter` / `Zero Light Flashing` 绝对化 | 改成「消除本片可观察到的抖动/暗闪」口径 |
| 三篇没有互相带流量 | **实测内链 0 条**;现三篇开头各一段 TL;DR + 正文双向互链 |
| `io.BytesIO` 整包进内存 + 凭据/端口安全 | 已写进「运维注意事项与安全清单」 |
| 缺成品演示、缺基准条件 | 已补成片链接(《糖画小仙》1080p / 8 语字幕)+ 基准表 + 宿主环境 |
### 错 / 偏
| 他的说法 | 实情 |
|---|---|
| `ti.mode = 0o 666` 是 Python 语法错误,「最高优先级」 | **不成立**。源码与线上 HTML 都是 `0o666`(页面把它拆成 `<span>0o</span><span>666</span>`,他抓正文时被插了空格),且 `0o666` 在 Python 合法。改 `0o644` 仍然做了 —— 是权限卫生,不是修 bug |
| 「Chrome 没内存峰值 ≠ 整个流程不占内存」 | 原文已限定 *in Chrome*;不过「0 MB」这个绝对数字确实该改,客户端整包缓冲也是真问题 |
### 不建议照做
* **重写 meta description**:三篇都已有 description,他给的三条与现有关键词覆盖基本重合。
* **「代码示例逐段执行验证」**:要真跑就得有 Chrome 容器 + Portainer + 那台 DSM,本机没有这条栈;改成补异常捕获、入参校验与限制说明。
---
## 二、已上线(提交链 + 实测验证)
| 提交 | 谁 | 内容 |
|---|---|---|
| `f32ae90` | 本轮 | 24 处事实修正(三分钟→几分钟 + 218 秒尺度、微秒→帧级、38%→38.0%/1.61×、绝对化措辞、`0o644`、内存口径、TL;DR + 互链)+ 三篇重出的图 + 本任务书 |
| `04a1082` | 另一条会话 | 基准表(352.0→218.3 s、7,830 帧、22.24→35.87 fps、i9-13900K + RTX 3060 + 64GB)、端到端耗时表、图层合成数学(α=0.75)、上传方案对比表、ZH 合成示意图 |
| `64e8410` | 另一条会话 | TTS 两篇占位图换 Ideogram 4 渲染(与本任务无关) |
| `cf4504e` | 本轮 | 单页只留一个数:38.1% → **38.0%**(基准表按 218.3 秒算 = 37.98%) |
**验证(本机实测,不是推断)**
* Gitea Actions:run 292(`f32ae90`)、293(`04a1082`)、295(`cf4504e`)全部 success。
* 六个页面 EN/ZH × 三篇:全部 **HTTP 200**。
* `38.1%` 残留 **0 处**;中英第三篇各 **3 处 38.0%**。
* 图片不是缓存旧图:`banners/debugging-…jpg`、`og/zh-uploading-…jpg`、`og/thumb/how-i-…-400.webp` 的 **md5 与线上逐一致**。
* `node scripts/check-assets.mjs` → **162 published posts OK**(每篇 og card + banner + webp + 两张 thumb)。
* `npx astro build` → **277 页**通过。
---
## 三、数字来源审计(顾问关心的就是这个)
| 数字 | 可核性 |
|---|---|
| 352.0 s → 218.3 s、−38.0%、1.61× | 自洽:`(352−218.3)/352 = 37.98%`、`352/218.3 = 1.6125` |
| 7,830 帧 / 261 秒(4 分 21 秒)@30 fps | 自洽:`7830 ÷ 30 = 261 s`;`7830 ÷ 352 = 22.24 fps`、`7830 ÷ 218.3 = 35.87 fps` |
| 128.85 MB、1.89 s | 有出处(原文既有);已补「单次、热容器、NAS SSD」 |
| 14.2 / 2.1 / 32.4 / 48.6 s(四段) | **无出处 —— §0 第 1 条,需你确认** |
| ~5.3 分钟总计、98% 无人值守 | 求和自洽:`14.2+2.1+218.3+1.89+32.4+48.6 = 317.49 s = 5.29 min`;渲染占 68.8% |
---
## 四、仍未做
| # | 项 | 卡在哪 |
|---|---|---|
| 1 | 抖动/暗闪前后对比 GIF | 要原片(§0 第 2 条) |
| 2 | 四段秒数的出处 | 要你确认(§0 第 1 条) |
| 3 | 「测试版本 / 最后验证日期」小字 | 正文现在只有 `Remotion v4.0.x`、`Node v20.x` 这类范围;要准确小版本与最后验证日期,得你给实际环境值 |
| 4 | 流式 tar 的完整替代代码 | 现在只在安全清单里说「多 GB 要改流式」,没给完整代码;要不要补由你定 |
---
## 五、复验命令(下次自己看时用)
```bash
cd /d/dev/hoelee-blog
node scripts/check-assets.mjs # 162 posts OK
for u in /posts/debugging-remotion-video-jitter/ /posts/zh/debugging-remotion-video-jitter/; do
curl -s --compressed -o live-check.html -w "%{http_code} $u\n" "https://blog.hoelee.com$u"
grep -o "38\.0%" live-check.html | wc -l # 应为 3
done
rm -f live-check.html
```
⚠ 本机两条坑(写进技能了):`curl` 是原生程序,`-o /tmp/x.html` 写到的位置 MSYS 的 `grep` 读不到 ——
一律写当前目录的相对路径并加 `--compressed`;行内标记可能被标签或软换行拆开,断言前先剥标签、合并空白。