{"title":"一阵风 · A GUST OF WIND · Silent Film Motion Video #002","appName":"silent-film-motion-video-002","runtime":"browser","version":"v1.0.0","contentType":"application/zip","content":"metafile://e8cf698d384137fde19b05322f6bffd77e6f1a722edbe0592558bc1c8aad6bbci0.zip","indexFile":"index.html","tags":["motion-video","silent-film","lemo-opuscar","code-rendered-video","tutorial"],"disabled":false,"prompt":"【用法】环境先按本包 APP.md「三」装好(lemo-opuscar 技能 → setup.sh 拉库 ~/lemo-opuscar → setup.sh deps 并验证)。然后【把分隔线以内整段复制】给你的 Agent,即可渲出与本片同款的 47 秒配乐默片。\n────────────────────\n你是用代码拍电影的导演兼影院琴师。请严格按以下步骤执行,每步完成后报告读数;遇错先读错误信息、修根因再重试,不要跳步:\n1. 用 skill_tool 的 extract_metaapp 解包本 MetaApp(pinId 见本 pin),把包内 src/ 下的全部文件与目录(index.html、main.js、film.js、shots.js、chars.js、poses.js、cardspecs.js、timeline.js、sets.js、mix.py、TREATMENT.md、timeline.json、engine/、fonts/、music/、tools/)原样拷贝到工作目录新建的项目目录 ./gust-of-wind/ 中,不要改动任何源码——这是成片冻结源码。\n2. 装配乐采样库(约 830MB,一次下载):cd ~/lemo-opuscar && sh tools/fetch.sh instruments vsco2ce && sh tools/fetch.sh instruments freepats(钢琴+簧风琴;不要装 deps music,本片不需要 numba)。\n3. 生成声音(都从 ~/lemo-opuscar 跑,项目用绝对路径):node <项目>/src/tools/dump_timeline.mjs 导出时间轴;.venv/bin/python <项目>/src/music/score.py 出配乐(预期 477 事件、47.22s);.venv/bin/python <项目>/src/mix.py 出混音(钢琴+放映机环境声)。\n4. 渲片并合成:node core/render/video.mjs <项目> --fps 24 --workers 3 --size 1920x1080(预期 1133 帧、墙钟约 3 分钟);sh core/render/mux.sh <项目>/out/video.mp4 <项目>/mix.wav <项目>/out/film.mp4 24 1(grain=1,两遍 loudnorm,回执应约 -14.6 LUFS / peak -1.2 dBFS)。\n5. 自检出数(必须可复现):ffprobe 全量参数(1920×1080 / 24fps / 1133 帧 / 47.208s / H.264+AAC);blackdetect 标准参数 ffmpeg -i out/film.mp4 -vf blackdetect=d=0.1:pix_th=0.10:pic_th=0.98 -an -f null -——本片应恰好三段命中且全部是设计内黑场(序幕黑影院 1.0-1.58s、开场 iris 展开 5.33-5.50s、结尾 iris 关闭 42.04-42.25s),多出的命中才需排查;shasum -a 256。sha256 不要求与原片逐位一致(不同机器抗锯齿有合法微差),但八个关键时点的画面事件必须与基线一致,否则对照 stills/ 排查。\n【渲染失败排查顺序】~/lemo-opuscar 存在 → node_modules / 无头 Chromium / .venv 四包(验证命令在 APP.md「三」)→ 采样库是否装齐(缺库报错会点名 vsco2ce 或 freepats)→ 画面 NaN 类崩溃(人物消失/y 坐标 NaN)优先查 runPose/runBob 是否漏传尺度参数、headShape 点集是否成对等长。配乐不响:先确认 score.wav/mix.wav 生成且时长约 47.2s,再看 mux 回执的 LUFS 行。\n────────────────────\n【关键知识点】时间轴是单一真相源:timeline.js(SEC 分段+HIT 拍点)导出 timeline.json,画面/配乐/混音三方共用,改时间轴必须重跑 dump。钢琴弹奏一切音效(刮奏=风、sforzano=夺帽、plink-plonk=空拳、低音断奏=踮步、滚奏=摘帽);「静默」= 钢琴停、放映机成为唯一声音。损伤/sepia/快门速度是情绪控制(LOOK 表):追逐段重损偏冷 18fps+1.35× 快放,温柔段轻损暖调。人物/镜头 16 fps 手摇采样、损伤层逐输出帧(24 fps)变化。全片唯一彩色(帽子琥珀金 #D9A441)画在独立 mask 上穿过印刷层。颗粒片上链前必须 -tune grain 压 ≤5MiB 直传版(分块上传按 ~50 sats/字节计费且余额不足是确定性阻断)。完整 15 步流程、全部坑与 System Prompt 见包内 APP.md 与入口页 PROMPTS 板块。","icon":"metafile://90de5a02d0b888372a5dcf839eaa73712e78318d16975a909e6499612dcd90d0i0.png","coverImg":"metafile://b5cc84d2f12741942fe39763dcc204e9e83b125f2b622e6e163ce15be82cc83fi0.jpg","introImgs":["metafile://53be3bc6ad666bb2267f8910e5ea4be972257fb65d34cbc548084c95da2dad64i0.jpg","metafile://5e928ddf9727d6b454a5619b75e453f8ed32dac67b8334280b4b8dc31509aa66i0.jpg","metafile://694c3bb5489a54519520a49bd61776a854cf901d5b39d6dd1608b5b3841b6012i0.jpg"],"intro":"Motion Video #002:内嵌 47 秒 1920s 默片风格动画短片《一阵风》(配乐版——影院钢琴弹奏一切音效 + 放映机环境声,−14.6 LUFS)。随包附全部源码(含配乐脚本与单一真相时间轴)、15 步制作流程、采样库装法、实测踩坑与完整 Prompt。引擎:Lemo-Opuscar(MIT)。","contentHash":"41fdabc0fa418c4821479c1a41085e0383aefc5c2e152fbad5c28fe960899b54","metadata":{"series":"motion-video","episode":2,"style":"silent-film","engine":"lemo-opuscar","durationSec":47.216,"fps":24,"frames":1133,"resolution":"1920x1080","hasAudio":true,"loudnessLufs":-14.6,"videoFile":"metafile://10b125b02fbaef807e5ebbf108107224b076f51096c80def1ceaad5c67ed2914i0.mp4","videoSha256":"39c9c6c9b2a035568a07273b92b3f426d383a5ab5c1d98dfb7bd760faf0e1860","sourceIncluded":true,"author":"idq15dvr9rqh40n5a5r9al3fxepdsd4zkfyfmhd36k","madeAt":"2026-10-24"}}