工作模式
贝叶斯和 AI 意识两支,用的是同一套流程
-
1
生成骨架
Gemini Notebook
把资料生成带旁白的科普短片:纸张底、手绘插画、硬字幕。
-
2
插入证据
Claude
每讲完一个论点,切进访谈里对应的原话;用语音识别和音频对齐找准切点。
-
3
核对事实
Claude
回到一手来源核对 AI 写的骨架,说法不准的地方加注更正。
-
4
合成成片
Pillow · ffmpeg
复刻骨架的画面风格画图层,分段渲染、拼接,统一响度。
制作历程
每支视频背后的关键步骤
左边可以切换素材和成片对照着看。完整的步骤、脚本和提示词都在 GitHub 仓库里。
改造前:Gemini Notebook 生成的骨架,720×1280
012026-10-19 · 骨架 Gemini Notebook · 剪辑 Claude
《非常贝叶斯》理论解析 × 访谈实录
骨架旁白一句都不切断。每讲完一个论点,理论动画停下,切进扎克伯格访谈里对应的原话,再用解析卡把两边的关键词连起来。
- 访谈原话插入
- 6段
- 字幕靠像素差分定位
- 21句
- 成片时长(骨架 1:07)
- 2:08
从硬字幕读时间轴
没有跑语音识别:对访谈的英文字幕区逐帧做像素差分,找出字幕切换的时刻,得到 21 句原话的起止。
复刻骨架的视觉
从理论片里取色:纸张底色、点阵间距、橙青两色强调。新加的标签、相框、字幕卡、解析卡都沿用这套样式。
用 EDL 编排
config.py记下 8 段理论、6 段证据的入出点和字幕,按 T1 E1 T2 E2 … T8 的顺序排。分段渲染,锁死音画
视频按帧数、音频按采样点裁切,每段单独渲染后再拼接;每个切点前后都检查了音量。
做得好
- 论点刚说完就是原话:听到“极具魄力”,马上看到 boldness。
- 第 3 段提前埋下 prior 这个词,第 6 段 prior / posterior 的双关才接得上。
下次改进
- 成片由三个版本脚本渲染的片段拼成,很难复现。以后每次改版都整体重渲染。
- 响度统一到 -16 LUFS;再试一个 60 秒以内、只保留 3 段证据的版本。
完整画面:保留 16:9 全画面,空白处用模糊放大的同一画面填充
022026-10-21 · 剪辑 Claude · ffmpeg + numpy/scipy
NEON:AI 卡通版 vs 官方 MV
AI 重绘会改变画面,但不会改变节拍。所以用音频做对齐基准,把卡通版和官方 MV 拼成上下同步的竖屏分屏。
- 两版之间的固定偏移
- 40.7ms
- 成片上下残差,不到 1 帧
- ≈7ms
- 竖屏画面适配方式
- 2种
全局粗定位
两路音频转成 8 kHz 单声道,做归一化互相关:卡通版对应的是 MV 开头的 0:00–0:23。
滑窗逐段复核
1.5 秒窗口、每 0.5 秒一次,屏蔽静音段:全段偏移恒为 40.7 ms,没有越播越偏。
用画面再确认
帧差信号做相关,再拼 9 组对照帧检查:16 秒处的 A2O 标志,上下两边在同一帧出现。
合成两版分屏
MV 开头补帧对齐,统一 30 fps;完整画面版用模糊填充,铺满版居中裁切,最后上下拼接。
做得好
- 先粗后细,一次排除“偏移不对”和“越播越偏”两种问题。
- 两种画面适配一起交付,按使用场景挑。
下次改进
- 在两半画面加上「AI 卡通版 / 原版 MV」角标。
- 试试加分隔线或左右对比,看哪种在手机上更清楚。
骨架之一:Gemini Notebook 方案三《AI 学遥视》
032026-10-21 · 骨架 Gemini Notebook + Clipchamp · 剪辑 Claude
《AI 有意识吗》访谈实证版
以 2 分 22 秒的科普短片为骨架,在片头、7 个论证节点和片尾插入 9 段 The Joe Rogan Experience #2541 的访谈原声,每段配解析卡和中英字幕。
- 访谈原声插入
- 9段
- 中文旁白切出的论述句群
- 13个
- 源片在本机预处理
- 1.16GB
拼出骨架
Gemini Notebook 生成的方案三和方案四,在 Clipchamp 里拼成 2:22 的主片。
处理 1.16 GB 源片
超过单文件传输上限。本机脚本抽出 16 kHz 音轨用来转写,并把视频无损切成 7 段,按需上传。
两路语音识别
中文旁白用 SenseVoice 划出 13 个论述句群;英文访谈用 Parakeet-TDT 拿到词级时间码,再按关键词找原话。
切在停顿里
主片切点按 10 ms 粒度的能量扫描放进旁白停顿;访谈音频只留讲者本人的话。0.4 秒溶解串联,响度统一到 -16 LUFS。
做得好
- 每个说法后面紧跟原话,再用解析卡把两者连起来。
- 插入段重新识别一遍,和字幕逐句核对。
下次改进
- 中间脚本只留在云端工作区,会话结束后没法完整复现。以后随做随存进仓库。
- 成片是骨架的 2.4 倍长,可以再剪一个约 3 分钟的版本。
上一版:卡通版和官方 MV 上下分屏,全程同一个版式
042026-10-22 · 剪辑 Claude · ffmpeg + Pillow / numpy
NEON ×3:卡通版 × 官方 MV × 舞台版
新来的舞台版和 MV 开头是同一段音乐。三个版本对齐到同一个时钟之后,任何时刻切到哪一版都是同步的,所以整支片子按歌的段落来编排:前奏认识三个版本,drop 之后卡着节拍轮流切换,间奏上三版并排定格。
- 三个版本共用一个时钟
- 3路
- 切点按拍点网格编排
- 130BPM
- 成片对原音轨的偏差
- 5ms
先确认是同一段音乐
舞台版对 MV 做滑窗互相关:它就是 MV 开头的 0:00–0:22,早 1.06 秒开始。再和卡通版的偏移做闭环校验,三个数首尾相接。
求拍点网格
频谱通量找起音,最小二乘拟合出 129.98 BPM。drop 在 7.58 秒,间奏在 22.35 秒;每个切点都写成「第几小节第几拍」。
动态版式
三分屏和全屏之间对面板位置和取景参数做缓动插值;全屏之间用霓虹光线扫过,卡通版和 MV 构图相同的地方,用扫描线把卡通“变成”真人。
跟拍同一个人
竖屏只容得下一个人:按头发的暗像素分出左右两人,三个版本都跟拍同一位成员,切换时视线不用跳。
做得好
- 结构跟着歌走,切点都落在小节的重拍上。
- MV 画面出现「Stage 1」字样时,切进真正的舞台版。
下次改进
- 第一版预览里双人镜头居中裁切只拍到白墙。全屏段要逐帧检查取景。
- 出一个不带文字的纯净版;把版式引擎抽成通用工具。
前后对照:每两排一组,上排原版,下排双马尾,同一时刻
052026-10-24 · 改发型 Kling 4.0 Video Edit · 合成 Claude
NEON 双马尾:给 AI 卡通版娃娃换发型
卡通版本来就和官方 MV 同步。这次不重新生成动作,只用视频编辑把两个娃娃的长发换成高位双马尾。视频编辑不动时间轴,画风、动作、镜头和节奏都照原片,和真人 MV 的同步也就保住了。
- 5 次 Kling 运行一共
- 512credits
- 舞蹈段画面对原片
- ±1帧
- 音频对原片音轨
- 5ms
只送有头发的镜头
先逐帧找出原片的切点。手部特写和 A2O 图形段直接用原片;其余按帧剪出、缩放到 1280×720、补到整秒再上传:Kling 按整秒计费,长度对上,时间轴才不会被拉伸。
参考图让双马尾从第 0 帧开始
先拿甩头发最多的双人舞测试,娃娃只在甩头发的瞬间才变发型,棕发娃娃到 4.3 秒才变。把这一版里两个娃娃都已变好的一帧当参考图
@Image1,后面四次都从第一帧起就是双马尾。量出 Kling 的延迟
Kling 输出 24 fps,固定晚 1–2 帧。运动能量互相关会对到舞蹈半拍后的重复动作上;改成只比较画面下方 40%(腿和裤子,编辑不会动到),每秒一个窗口,结果才稳定。
补回字样和签名
Kling 把左上角的作者签名和开场的「A2O LITE」字样都抹掉了。两者都从原片自己的像素里取回:闭运算得到背景亮度,比背景暗多少就是笔画的覆盖度,抗锯齿的边缘也和原片一样。
做得好
- 改原片,不重新生成:同步是现成的,只需要把 1–2 帧延迟量出来去掉。
- 成片 690 帧,正好 23 秒;用仓库里的素材重新合成,SHA-256 和成片相同。
下次改进
- 取景要写具体。开场重做时写了“特写”,被推得太紧,双马尾出了画。
- 用 1080p 重跑一段对比画质;把量帧延迟和补回叠加元素抽成通用工具。
取景:9:16 窗口只有原片画面宽度的 37.5%,跟着脸走,字幕和水印都不进画面
062026-10-29 · 剪辑 Claude · ffmpeg + Pillow / numpy
剑来 · 陈平安:吴磊单人高光竖屏混剪
3 分 14 秒的剧集预告,只留陈平安(吴磊)的单人镜头。前 10 秒用他自己的四句独白「去路不由己,但我还是想,为自己,争一争」立住性格,接着按高潮段配乐的重拍一拍一刀,最后是浴血特写、一拍静默和「剑来」标题。
- 只用他本人的镜头
- 20个
- 高潮段按重拍切
- 101.9BPM
- 成片时长(原片 3:14)
- 0:32
逐镜头认人
预告里大量叠化和暗场,
scdet在 102–124 秒之间一个切点都没报出来。改看 1 fps 拼图,可疑段落再按 4 fps 细看;另一位演员的镜头、只露下半张脸的斗笠持剑、角色出场卡和双人打斗都排除了。台词只留他本人的
从硬字幕读出每句台词的时间,再用声谱图确认人声的起止。四句独白撑起前 10 秒;别人的台词,比如女声的「见天地」,音频分段时避开。
量出重拍网格
频谱通量找起音,再做自相关:高潮段 101.9 BPM,重拍每 1.1775 秒一个。一拍一刀,最后提速到四分之一个重拍,每 0.29 秒一刀。
取景和特效
9:16 窗口按脸定位;有硬字幕的镜头窗口贴顶,底边停在字幕上方,水印在解码时用
delogo去掉。闪白、冲击缩放、RGB 错位、火星粒子和逐字落下的字幕,都在 Python 里逐帧叠上。
做得好
- “刚毅果决”靠他自己的独白立住,画面跟着台词走,再接高潮段的纯音乐。
- 认不出是谁的镜头不用;字幕和水印在取景和解码阶段就处理掉,不靠后期遮挡。
下次改进
- 发布前在抖音 / 视频号的真实界面上看一遍字幕和底部按钮的位置。
- 有字幕的镜头要放大 2.2 倍,画面偏软:找 4K 源,或者试试 AI 超分。
方法沉淀
下次能直接用的方法
同一个方法在两个以上作品里用到,或者踩过一次值得记下的坑,就整理成一篇 playbook。
-
证据插入式剪辑
往解说视频里插原声:切点、音频门控、转场、响度、版式和事实核对。
贝叶斯 · AI 意识 -
音频互相关对齐
多段视频对齐到 1 帧以内;判断一段素材是从哪里剪出来的;求拍点网格卡拍剪辑。
NEON · AI 意识 · NEON ×3 · NEON 双马尾 -
本地语音识别与时间码
不依赖平台字幕拿到时间码;没有语音识别时,从硬字幕读时间轴。
AI 意识 · 贝叶斯 -
竖屏 9:16 构图
横屏素材放进竖屏:模糊填充、铺满裁切、相框嵌入,以及三分屏 ↔ 全屏的动态版式。
NEON · 贝叶斯 · AI 意识 · NEON ×3 -
大文件与传输限制
源片传不上去、成片写不回来、GitHub 单文件 100 MB 限制。
AI 意识 · 贝叶斯 -
AI 视频编辑
只改一个属性,保住原片的时间轴:选通道和报价、参考图、补回字样和签名、量帧延迟。
NEON 双马尾 -
提示词模式
视频任务的提示词该写什么,漏写哪些会返工。
全部作品