Fun Videos · Anna

AI 科普短视频 · 学习记录

六支短片,和它们的制作过程。

解说骨架由 Gemini Notebook 生成;Claude 找来访谈原声作为证据、核对事实,再合成为成片。

看看是怎么做的

01 · 2026-10-19

非常贝叶斯

理论解析 × 访谈实录

02 · 2026-10-21

NEON

AI 卡通版 vs 官方 MV · 上下分屏

03 · 2026-10-21

AI 有意识吗

科普解析 × 访谈实证

04 · 2026-10-22

NEON ×3

卡通 × MV × 舞台 · 卡拍混剪

05 · 2026-10-24

NEON 双马尾

AI 卡通版 · 只换发型

06 · 2026-10-29

剑来 · 陈平安

吴磊单人高光 · 卡点混剪

工作模式

贝叶斯和 AI 意识两支,用的是同一套流程

  1. 1

    生成骨架

    Gemini Notebook

    把资料生成带旁白的科普短片:纸张底、手绘插画、硬字幕。

  2. 2

    插入证据

    Claude

    每讲完一个论点,切进访谈里对应的原话;用语音识别和音频对齐找准切点。

  3. 3

    核对事实

    Claude

    回到一手来源核对 AI 写的骨架,说法不准的地方加注更正。

  4. 4

    合成成片

    Pillow · ffmpeg

    复刻骨架的画面风格画图层,分段渲染、拼接,统一响度。

制作历程

每支视频背后的关键步骤

左边可以切换素材和成片对照着看。完整的步骤、脚本和提示词都在 GitHub 仓库里。

改造前:Gemini Notebook 生成的骨架,720×1280

012026-10-19 · 骨架 Gemini Notebook · 剪辑 Claude

《非常贝叶斯》理论解析 × 访谈实录

骨架旁白一句都不切断。每讲完一个论点,理论动画停下,切进扎克伯格访谈里对应的原话,再用解析卡把两边的关键词连起来。

访谈原话插入
6段
字幕靠像素差分定位
21句
成片时长(骨架 1:07)
2:08
  1. 从硬字幕读时间轴

    没有跑语音识别:对访谈的英文字幕区逐帧做像素差分,找出字幕切换的时刻,得到 21 句原话的起止。

  2. 复刻骨架的视觉

    从理论片里取色:纸张底色、点阵间距、橙青两色强调。新加的标签、相框、字幕卡、解析卡都沿用这套样式。

  3. 用 EDL 编排

    config.py 记下 8 段理论、6 段证据的入出点和字幕,按 T1 E1 T2 E2 … T8 的顺序排。

  4. 分段渲染,锁死音画

    视频按帧数、音频按采样点裁切,每段单独渲染后再拼接;每个切点前后都检查了音量。

做得好

  • 论点刚说完就是原话:听到“极具魄力”,马上看到 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种
  1. 全局粗定位

    两路音频转成 8 kHz 单声道,做归一化互相关:卡通版对应的是 MV 开头的 0:00–0:23。

  2. 滑窗逐段复核

    1.5 秒窗口、每 0.5 秒一次,屏蔽静音段:全段偏移恒为 40.7 ms,没有越播越偏。

  3. 用画面再确认

    帧差信号做相关,再拼 9 组对照帧检查:16 秒处的 A2O 标志,上下两边在同一帧出现。

  4. 合成两版分屏

    MV 开头补帧对齐,统一 30 fps;完整画面版用模糊填充,铺满版居中裁切,最后上下拼接。

做得好

  • 先粗后细,一次排除“偏移不对”和“越播越偏”两种问题。
  • 两种画面适配一起交付,按使用场景挑。

下次改进

  • 在两半画面加上「AI 卡通版 / 原版 MV」角标。
  • 试试加分隔线或左右对比,看哪种在手机上更清楚。
完整画面版逐帧预览:上方卡通版,下方官方 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
  1. 拼出骨架

    Gemini Notebook 生成的方案三和方案四,在 Clipchamp 里拼成 2:22 的主片。

  2. 处理 1.16 GB 源片

    超过单文件传输上限。本机脚本抽出 16 kHz 音轨用来转写,并把视频无损切成 7 段,按需上传。

  3. 两路语音识别

    中文旁白用 SenseVoice 划出 13 个论述句群;英文访谈用 Parakeet-TDT 拿到词级时间码,再按关键词找原话。

  4. 切在停顿里

    主片切点按 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
  1. 先确认是同一段音乐

    舞台版对 MV 做滑窗互相关:它就是 MV 开头的 0:00–0:22,早 1.06 秒开始。再和卡通版的偏移做闭环校验,三个数首尾相接。

  2. 求拍点网格

    频谱通量找起音,最小二乘拟合出 129.98 BPM。drop 在 7.58 秒,间奏在 22.35 秒;每个切点都写成「第几小节第几拍」。

  3. 动态版式

    三分屏和全屏之间对面板位置和取景参数做缓动插值;全屏之间用霓虹光线扫过,卡通版和 MV 构图相同的地方,用扫描线把卡通“变成”真人。

  4. 跟拍同一个人

    竖屏只容得下一个人:按头发的暗像素分出左右两人,三个版本都跟拍同一位成员,切换时视线不用跳。

做得好

  • 结构跟着歌走,切点都落在小节的重拍上。
  • MV 画面出现「Stage 1」字样时,切进真正的舞台版。

下次改进

  • 第一版预览里双人镜头居中裁切只拍到白墙。全屏段要逐帧检查取景。
  • 出一个不带文字的纯净版;把版式引擎抽成通用工具。
成片逐帧预览:三分屏和全屏交替出现

前后对照:每两排一组,上排原版,下排双马尾,同一时刻

052026-10-24 · 改发型 Kling 4.0 Video Edit · 合成 Claude

NEON 双马尾:给 AI 卡通版娃娃换发型

卡通版本来就和官方 MV 同步。这次不重新生成动作,只用视频编辑把两个娃娃的长发换成高位双马尾。视频编辑不动时间轴,画风、动作、镜头和节奏都照原片,和真人 MV 的同步也就保住了。

5 次 Kling 运行一共
512credits
舞蹈段画面对原片
±1帧
音频对原片音轨
5ms
  1. 只送有头发的镜头

    先逐帧找出原片的切点。手部特写和 A2O 图形段直接用原片;其余按帧剪出、缩放到 1280×720、补到整秒再上传:Kling 按整秒计费,长度对上,时间轴才不会被拉伸。

  2. 参考图让双马尾从第 0 帧开始

    先拿甩头发最多的双人舞测试,娃娃只在甩头发的瞬间才变发型,棕发娃娃到 4.3 秒才变。把这一版里两个娃娃都已变好的一帧当参考图 @Image1,后面四次都从第一帧起就是双马尾。

  3. 量出 Kling 的延迟

    Kling 输出 24 fps,固定晚 1–2 帧。运动能量互相关会对到舞蹈半拍后的重复动作上;改成只比较画面下方 40%(腿和裤子,编辑不会动到),每秒一个窗口,结果才稳定。

  4. 补回字样和签名

    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
  1. 逐镜头认人

    预告里大量叠化和暗场,scdet 在 102–124 秒之间一个切点都没报出来。改看 1 fps 拼图,可疑段落再按 4 fps 细看;另一位演员的镜头、只露下半张脸的斗笠持剑、角色出场卡和双人打斗都排除了。

  2. 台词只留他本人的

    从硬字幕读出每句台词的时间,再用声谱图确认人声的起止。四句独白撑起前 10 秒;别人的台词,比如女声的「见天地」,音频分段时避开。

  3. 量出重拍网格

    频谱通量找起音,再做自相关:高潮段 101.9 BPM,重拍每 1.1775 秒一个。一拍一刀,最后提速到四分之一个重拍,每 0.29 秒一刀。

  4. 取景和特效

    9:16 窗口按脸定位;有硬字幕的镜头窗口贴顶,底边停在字幕上方,水印在解码时用 delogo 去掉。闪白、冲击缩放、RGB 错位、火星粒子和逐字落下的字幕,都在 Python 里逐帧叠上。

做得好

  • “刚毅果决”靠他自己的独白立住,画面跟着台词走,再接高潮段的纯音乐。
  • 认不出是谁的镜头不用;字幕和水印在取景和解码阶段就处理掉,不靠后期遮挡。

下次改进

  • 发布前在抖音 / 视频号的真实界面上看一遍字幕和底部按钮的位置。
  • 有字幕的镜头要放大 2.2 倍,画面偏软:找 4K 源,或者试试 AI 超分。
成片逐帧预览:从独白段、高潮段到片尾标题