- 两首 flac 母带移入 masters/(gitignore,不入库),转 Opus 128k VBR:3.35 + 3.16 MB - xilian 三张真 PNG RGBA → 无损 WebP(3.39→1.80、5.01→2.83、3.38→1.76 MB) - kv37_xilian.png → 无损 WebP 5.13→2.75 MB - kv37 五张图本来就是 WebP(扩展名误写成 .png),本次只改名并把 atlas 页名改为 .webp - 删除死文件 dist/jsconfig.json - 新增 tools/rawdiff.mjs(区分可见差异与仅透明下差异)、tools/atlas-pages.mjs 验证:check-paths 11/11;0 个非 favicon 的 404;无损 WebP 可见像素 0 差异; libwebp 会改写完全透明像素下的 RGB(xilian 三图 32-49% 像素),渲染级对拍 与 PNG 版相差 0.052/255、热力图全空,确认未因 Linear 过滤渗色。
2.7 KiB
2.7 KiB
02 体积:音频转码 + 未引用资源归位
Status: resolved
现状
dist合计 105.1 MB,其中音频占 77.3 MB:昔涟立绘/audios/「再度和你」.flac37.3 MB / 205.1 s / 1.52 Mbps昔涟立绘/audios/昔涟.flac37.7 MB / 186.7 s / 1.69 Mbps(此前零引用,现已声明为第二音源)「成为昨日的明天」/audios/pv37.mp32.3 MB / 81 s
- CEF 的解码白名单含 vorbis / libopus / flac / mp3 / pcm_*(不含 aac,
m4a大概率不可用)。
步骤
- 无损母带移出
dist/,存到masters/(已 gitignore,不入库)。 - 两首 flac 转 Opus(
libopus128k VBR)。保留pv37.mp3原样。 - 核对转码未截断、无解码错误。
- 图片转码仅在对拍证明无可见差异后决定(atlas 页要整组转,并同步改
.atlas里的页名)。
验收
dist总体积 ≤35 MB。check-paths全绿;转码后的音频可完整解码。- 每个比例的对拍像素无回归。
结果
dist 105.1 MB → 28.92 MB。
- 音频:
再度和你.ogg3.35 MB、昔涟.ogg3.16 MB,均通过完整解码与电平检查。昔涟.flac源文件末尾一帧损坏(186.671 s 处 invalid frame header),但全长音频都在。 - 图片:全部走无损 WebP(放弃有损路线,因为目标已达成,没必要冒险)。
- xilian 三张真 PNG RGBA → 无损 WebP:3.39→1.80、5.01→2.83、3.38→1.76 MB
kv37_xilian.png→ 无损 WebP 5.13→2.75 MB- kv37 的五张图本来就是 WebP,只是扩展名写成
.png,本次只改名——这也顺带证明 WebP 在本机 WE 环境可用(线上版本一直在用) - atlas 页名同步改为
.webp(tools/atlas-pages.mjs;注意这两个 .atlas 是 CRLF 行尾)
- 删除死文件
dist/jsconfig.json;README.txt是 Workshop 描述(BBcode),保留。
验证
check-paths:11/11 声明路径存在。- 浏览器:0 个非 favicon 的 404。
- 无损 WebP 与源 PNG 的可见像素 0 差异。libwebp 会改写完全透明像素下的 RGB
(
tools/rawdiff.mjs证实 xilian 三张图有 32–49% 像素属此类),而本项目贴图是 Linear 过滤、 透明像素 RGB 会渗进边缘,所以额外做了渲染级对拍:与 PNG 版同冻结设置相比 0.052/255、热力图全空,确认无渗色。 - 全尺寸矩阵留档于
tools/shots/step02/。
教训
先验证再删除。中途 -preset default 让无损编码退化成有损(产物只剩 0.03–0.54 MB),
而源 PNG 当时已被删除;只因为源都在 git 里(09ff322)才得以还原。
另外 -quality 在这个 ffmpeg 的 libwebp 封装里被忽略,要用 -q:v;-exact 选项不存在。