From d5b430f275eb84e1a9574dca421c90622bc4ea0a Mon Sep 17 00:00:00 2001 From: hoelee Date: Tue, 13 Oct 2026 21:58:41 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=8E=A7=E5=88=B6=E9=9D=A2=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=E6=94=B9=E5=90=8D=20->=20D:\dev\hevc-transcode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 2 +- STATE.md | 10 +++++----- docs/WHY.md | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index fe97c98..df7870c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -75,7 +75,7 @@ structural gate and confirm on the Apple device. ## 6. Related work -- **`hoelee-resource-transcode`** — the TubeSync archive this tool was extracted from. It +- **`hevc-transcode`** — the TubeSync archive this tool was extracted from. It owns the DB-driven pipeline (`tsconv.py` / `tsfix.py`) and the deeper frame-timing forensics. `tsconv.flat_timing()` is that repo's copy of the detector: **keep the two in step**, and note that the missing-`ctts` shape was once missed by three duplicated copies diff --git a/STATE.md b/STATE.md index fcc6f0c..fc54e2a 100644 --- a/STATE.md +++ b/STATE.md @@ -39,13 +39,13 @@ python cache/vmaf_native.py --original <快照原档> --converted <线上档> -- ⚠ 比较 mean 必须同帧数:偏移搜索上限 1200 帧 —— 同一配对 1500 帧读 0.9808、1200 帧读 0.9832。 ⚠ 原生 ffmpeg/ffprobe 读不了 CJK 路径(`Illegal byte sequence`),复核线上档要用 Python `subprocess` 传路径。 -**现在由队列仓控制**(`D:\dev\hoelee-resource-transcode`:supervisor 看板 8790 + 三 lane)。2026-10-11 13:35 业主恢复转换, +**现在由队列仓控制**(`D:\dev\hevc-transcode`:supervisor 看板 8790 + 三 lane)。2026-10-11 13:35 业主恢复转换, cpu + gpu 两条 lane 在跑(`autostart_lanes=[cpu,gpu]`)。**本仓不要自己起编码** —— 引擎只作为 lane 的子进程被调用, 单档启动器(`run/relaunch_x265.sh` 等)只在看板不参与时应急用。 ## 2026-10-13:闸门配对修复 / preset 可选 / 子进程亲和真相 / run_pinned 事故 -(控制面侧的对应记录见 `D:\dev\hoelee-resource-transcode\docs\OPERATIONS.md` 同名小节) +(控制面侧的对应记录见 `D:\dev\hevc-transcode\docs\OPERATIONS.md` 同名小节) ### 1. `run_pinned` 把 `capture_output` 传给 `Popen` → 三个 lane 秒失败 64 项(`eb4b0bd`) @@ -116,7 +116,7 @@ nvenc(cq 31):p1/p2/p3 10.23 MB · p4/p5 9.49 · p6 9.44 · p7 9.41(同 c ## 现在在跑什么 -**运行方式以控制面为准**:`D:\dev\hoelee-resource-transcode` 的 supervisor(看板 `http://127.0.0.1:8790/`) +**运行方式以控制面为准**:`D:\dev\hevc-transcode` 的 supervisor(看板 `http://127.0.0.1:8790/`) 负责排程;它拉起**三个并行的 x265 worker**(cpu / cpu2 / cpu3,核集互不重叠、各自 `--lock-tag`), 本文件旧版的"单档启动器"只是控制面缺席时的手跑后备方式。 @@ -237,7 +237,7 @@ live = HEVC hvc1 **且**音轨是 AAC(真能播)**且**本次是从快照原 4. **安装只用 ffprobe 元数据复核** → RaiDrive 返回**缓存属性**,rename 没落地也说成功(实测"ok 1085→478 MB"而线上仍是原档)→ 改**安装后回读哈希**。 5. **源拷贝只校验字节数** → 加 **SHA-256 比对共享盘副本**(长度对内容错是真风险)。 6. **probe 单次失败即判文件失败** → 加**重试 3 次**。 -7. **看门狗用 stderr 管道**(本轮最贵的 bug)→ ffmpeg `-stats` 每 0.5 s 一行,64 KB 管道几分钟塞满 → ffmpeg 阻塞在 write() → 输出不增长 → 看门狗**误杀好编码**(整夜 ~270 杀、只转成 24 个、GPU 0%)。修:**stderr 写文件**,阈值 5→15 分钟。自检脚本 `D:\dev\hoelee-resource-transcode\cache\watchdog_selfcheck.py`。 +7. **看门狗用 stderr 管道**(本轮最贵的 bug)→ ffmpeg `-stats` 每 0.5 s 一行,64 KB 管道几分钟塞满 → ffmpeg 阻塞在 write() → 输出不增长 → 看门狗**误杀好编码**(整夜 ~270 杀、只转成 24 个、GPU 0%)。修:**stderr 写文件**,阈值 5→15 分钟。自检脚本 `D:\dev\hevc-transcode\cache\watchdog_selfcheck.py`。 8. 看门狗**保留**(它要防的是真实场景:用户更新 NVIDIA 驱动会把在跑的 NVENC 冻死 1.5 小时且不报错)。 9. **Hermes 后台进程会随会话一起被杀** —— 两个档在 10:37 同时死在编码中,日志里没有 `PASS-DONE`;改脱管启动(见上)。 @@ -248,7 +248,7 @@ live = HEVC hvc1 **且**音轨是 AAC(真能播)**且**本次是从快照原 要么接受原档,要么单独走"源档缺陷"口径。同类还有 3 项 `engine-skip`(park 满 2 轮)。 - [ ] **cpu(x265)档门槛问题**:crf29 在 bpp 0.0147–0.0293 带成立(0.9958/0.9968),但 **bpp ≳0.05 那一带 4/4 落到 0.9926–0.9946**(720p、源 ~1.17 Mbps)→ 每项白烧 2 次整片编码后 park。选项 A `cpu_crf→24` / B 放行到 0.990。 -- [ ] 两档跑完 → **全库落地审计**:`D:\dev\hoelee-resource-transcode\cache\install_audit.py`(核对线上文件真实大小 + 编码器;曾一次抓到"报告成功没落地")+ `copy_land_check.py`(copy 档用音轨 aac/mp3 判定)。 +- [ ] 两档跑完 → **全库落地审计**:`D:\dev\hevc-transcode\cache\install_audit.py`(核对线上文件真实大小 + 编码器;曾一次抓到"报告成功没落地")+ `copy_land_check.py`(copy 档用音轨 aac/mp3 判定)。 - [ ] 失败项:无需清单,新一轮自动重做(失败时文件原样)。 - [ ] `2022年/0723 《走出强迫症》/走出强迫症.mp4` 用新下载(`D:\Download\0723走出强迫症.mp4`,618,696,954 B)已转好装好(450,502,893 B,HEVC+AAC,SSIM min 0.997,时长 3399.81 s)✓。**快照里那份仍是坏的**(618,697,011 B,moov 缺失)→ 待定:是否用干净副本替换快照里的坏档,以免将来"从原档重转"踩坑。 - [ ] 目标文件夹里曾出现一个 0 字节的 `0723走出强迫症.mp4`(现已不在)—— 若是用户自建请告知命名约定。 diff --git a/docs/WHY.md b/docs/WHY.md index 1b3dd73..c46bcac 100644 --- a/docs/WHY.md +++ b/docs/WHY.md @@ -121,5 +121,5 @@ Why this is safe to schedule: Before pointing it at a live library, `--dry-run` prints the plan and encodes nothing. > **TubeSync specifically:** use that project's own DB-driven pipeline -> (`hoelee-resource-transcode`: `tsconv.py` / `tsfix.py`) — it also updates the database +> (`hevc-transcode`: `tsconv.py` / `tsfix.py`) — it also updates the database > rows. This tool is for everything outside it.