2026-06-26 反诈柜台短视频 pilot 从 0 到 1 复盘
入档:2026-06-26 项目:《反诈柜台》竖屏短视频管线 pilot,案件「这次预警是真的」 工程:
fraud-desk-demo/_video(独立 Remotion,与游戏同仓) 性质:把 短视频批量分发方案_蒙眼剪辑法xRemotion_v1 的方案书,第一次真跑通成片的执行复盘。
事实记录(不可修改区)
- 链路打通:文稿 → ElevenLabs 自定义音色配音 → 读真实时长写
src/timing.generated.ts(音频先行)→ Playwright 竖屏录屏(?case=定向)→ Remotion 母版三层合成 → 渲染。 - 成片:
_video/out/fraud-desk-pilot.mp4,1080×1920,30fps,约 43.6s,H.264 + AAC。 - 母版三层(下→上):游戏竖屏录屏(
<OffthreadVideo>)→ 逐句蹦字字幕(安全带)→ 旁白<Audio>(5 段 beat)。 - 录屏:Playwright headless,viewport 540×960(触发移动端 CSS)+ locale zh-CN +
localStorage.fd_lang=zh,故意点「诈骗」(真消息)触发「误判 + 信任−18%」,webm → ffmpeg lanczos 2× → 1080×1920。 - 音色迭代:Jason Chen(账号现成,广播腔,被否)→ 自定义 v1「反诈夜班·讲述者」(深夜讲述)→ v2(自然口语,
wevdvTMhOykP337VqyPu,stability 0.38)。 - 游戏侧改动:
drawRound()加?case=<序号|标题关键词>确定性单案加载钩子(commitbfaf6b8);结算页「完整版收录」误导占位改为诚实文案(commit940d46a)。 - 立项:管线一度建在知识库
07_skill存档/remotion,按约定迁到fraud-desk-demo/_video(KB 只留方法论)。
可迁移方法论
1. Playwright 录屏不吃 deviceScaleFactor
核心:Playwright 的视频录制按 CSS 视口尺寸录,忽略 deviceScaleFactor;recordVideo.size 与 viewport 不一致会把画面塞到左上角 + 留灰边。
来源:首次用 viewport 540×960 + dsf2 + recordVideo 1080×1920,成片游戏只占左上 1/4。
操作规则:
- 要竖屏 + 移动端布局:viewport 取能触发移动端 CSS 的宽度(本游戏 ≤600),如 540×960(精确 9:16)。
recordVideo.size必须 = viewport,dsf 设 1。- 清晰度靠 ffmpeg
scale=W:H:flags=lanczos整数倍放大(540→1080 即 2×),别指望 dsf。 - 要原生 1080 更锐,改用 screenshot(吃 dsf)+ Remotion 做动效,代价是丢失游戏内动画。
边界:截图法适合静态/少动状态;有重要的盖章/转场动画时仍用录屏。
2. 随机内容的程序,必须给确定性入口
核心:案件随机抽取的游戏,要做定向视频(更别说批量 314 条)必须有「确定性加载某一条」的入口。
来源:CASES 是模块级 let,Playwright 的 page.evaluate 改不到它(函数声明能调、let 绑定改不了)。
操作规则:在抽取函数最前面读 URL 参数(?case=<序号|标题子串>),命中就只装这一条并重置状态、提前 return;不命中走正常随机。零侵入正常游玩,且天然是一条可分享的 deep-link。
边界:批量渲染时,这个参数就是每条视频的”主键”。
3. 音色的”机械感”有两个旋钮:描述 + stability
核心:TTS 听着像机器,不一定是音色选错,更多是 Voice Design 描述写成了”播音/有声书” + stability 太高(=平板、节拍器感)。
来源:Jason Chen(broadcaster)被否「太广播员」;自定义 v1 仍「机械、不像真人」;v2 重写描述 + 降 stability 后改善。
操作规则:
- Voice Design 描述往”真人随口说”写:
breaths / micro-pauses / uneven conversational rhythm / thinking as he speaks / a few words thrown away / intimate;显式排除broadcaster / audiobook narrator / news anchor / theatrical / even cadence(这些是反面词,会拉向机械)。 - TTS
voice_settings:stability 调低到 ~0.35–0.4(增加人类变异),style 调高(~0.45),use_speaker_boost。高 stability=稳但平。 - 中文用
eleven_multilingual_v2最稳(eleven_v3更有表现力但中文易飘);自定义音色用eleven_multilingual_ttv_v2设计。
边界:stability 太低(<0.3)中文易出错字/破音;0.35–0.4 是自然度与稳定的平衡点。
4. 音频先行要落成”数据驱动”,不是口头原则
核心:配音脚本读每段真实时长,写一个 生成文件(timing.generated.ts),字幕分页、合成时长、各 beat 起点全部 import 它。
来源:换音色后各段时长全变(reversal 段 11s→12.2s),但因为时长是生成的、组件派生,改音色只需重跑配音 + 重渲染,不用手改任何帧数。
操作规则:文本/section 静态手写,startFrame/duration 一律来自生成文件;beats = generated.map(merge 文本);composition 时长 = reduce(beats)。
5. 反转视觉:让”判错”发生在屏幕上
核心:反诈反转片,录屏要故意点错(把真消息判成诈骗),触发「误判 + 信任暴跌」,让”你也会判错”的解说有同步画面;比”判对”更抓人。
来源:pilot 在判定页揭晓(误判 + 信任−18% + 三条破绽)正好压在”没让你点链接…”旁白上,反转落地。
操作规则:录屏的裁决动作服务叙事钩子,不一定是”正确答案”;判定页揭晓点对齐转折旁白(本片 trim 录屏头部使判定页落在 turn beat)。
6. 知识库只放方法论,项目执行另立项归档
核心:知识库 仓库 = 方法论/技能/参考;项目的可执行工程不进知识库,按 NN_/独立仓库立项归档。
来源:pilot 一度建在 知识库/07_skill存档/remotion,用户要求迁出;最终落 fraud-desk-demo/_video(与游戏强耦合,放游戏仓库)。
操作规则:执行工程随其最强耦合对象走(视频↔游戏→放游戏仓库);知识库里只留方案书/复盘,并用双链互指。
蒙眼剪辑法 v4 的验证点
这次是 蒙眼剪辑法_方法论笔记 v4「母版 + 批量」的首个执行验证:把感性判断(音色、节奏、配图方向)前移到一条母版,母版反复打磨(音色就迭代了 3 版),母版锁定后才谈批量。pilot 证明全链路可跑,母版尚在打磨(待接 MJ + Seedance 2.0 的 B-roll 替换干巴游戏画面、逐词字幕升级)。
待办(承接下一轮)
- MJ 关键视觉锚 + Seedance 2.0 转动态,做 2 段 B-roll(钩子=凌晨母亲看手机、反转刺点),占位→替换(用户生成素材)。
- 逐词字幕(Whisper)升级当前的逐句蹦字。
- 时长 43.6s 偏长,抖音版考虑 1.1× 或砍铺垫到 ≤34s。
- 母版锁定后
dataset-render批量扩到 314 案件。