先看成片,
9 段都能直接播。
下面就是我审片用的预览页,和 Remotion 渲染 4K 时跑的是同一份场景代码,这里看到的就是成片。点段落切换;勾选「带上配乐音效」能听到成片里的音效和配乐,口播同步播放;勾选「叠上头像和字幕」能看到剪辑时头像和字幕压在哪里。
为了在网页里流畅播放,预览里的口播和配乐是 MP3,录屏片段是压缩过的 MP4;成片是 3840 × 2160 / 30fps。第一次打开要加载约 30 MB 素材。哪些画面是示意、不是实录,写在预览页最下面。
我只给了四样东西。
最终逐字稿
剪辑后的字幕,268 条,全片 7 分 40 秒。Agent 靠它知道每句话在什么时间说。
已经实录的区间
01:00–01:19、01:51–02:30、03:04–03:45、04:06–04:16。这四段是我在 Windows 上录的,不用做。
口播
从母版导出的口播。预览时同步播放,方便我边听边看画面对不对。
截图
10 张抖音和 B 站的评论截图、两期播放数据、GitHub 源码页。官网和 logo 是 Agent 自己用 ego-browser 抓的。
其余时间都要用 B-roll 盖住,因为这期母版里只有提词器和右上角的头像。算下来 9 段、约 350 秒,占了全片七成多。
开工前还先砍了一刀:Agent 按这个 Skill 的分工,把飞书里的录屏清单从 6 条减到 3 条。动画能讲清楚的就不录,比如“半路接管”这种两边对比的画面。
这个 Skill 怎么干活
scenes.js 里写 HTML 和动画声明。预览页和 Remotion 跑同一份代码,所以预览里确认的就是成片。
版式、配色、字体、音色、配乐都在模板里。换模板不用重写内容,这一点后面帮了大忙。
预览确认之前反复改;确认之后不再写方案,一路渲染到交付。
第一套模板,
我直接否了。
Agent 先用了我在主题库里存过的「纸白信号橙」,拿第 02 段做样板。我看完只回了一句:“模版太丑陋了,我不要这个。”
于是我让它开两个 subagent 对抗。同一段 19 秒,各做一版,做完把对方的作品发过去挑刺:指出最致命的 3 个问题,也承认对方比自己好的 2 点,再各改一轮。
从 Ego Lite 自己的品牌出发:蓝天穹顶渐变、细体配粗体的标题,真实窗口放进透视里,镜头一直慢推。
从我个人网站出发:暖纸底、宋体标题、截图当带图注的插图,结论用手绘圈注。
两边互相挑的刺
暖纸配宋体,跟刚被否掉的纸白信号橙是一个味道。
大面积蓝渐变加极细配粗黑的标题,换个 logo 就能套到任何产品上,看不出是我的频道。
Agent 推荐 B,理由是有频道辨识度、更好延展。我选了 A:这期是产品发布,我更看重发布片那种质感和冲击力。
说到哪个,
画面才出现哪个。
模板定下后,剩下 8 段分给 4 个 Agent 并行开发,约半小时后出了第一版全片。我看完的反馈是:有时候我说的台词跟画面对不上。
Agent 第一次理解成“标题出早了”,写脚本把 102 条上屏文字和字幕时间比了一遍,修了十几处。但我说的不是这个,于是截了一张图给它:
我还提了第二点:图片用得太多,来来回回就是那几张截图换来换去。不合理的地方应该用 HTML 自己搭界面和动画,这样更真实。
这一轮整体重做,做了四件事:
- 逐句分镜表:9 段约 230 句台词,每句定好画面,标明用真实素材还是 HTML 搭。截图只用在需要证明的地方(评论、播放数据、源码、Excel 结果、官网、实录片段),同一张全片最多出现两次。
- 台词锚点:每个图标、窗口、截图都写成“说到某个词时出现”,时间按字幕查到词,默认提前 0.12 秒,不再手写秒数。
- 公共界面组件库:浏览器窗口、Space 标签条、光标点击、终端逐字输入、表格逐行填入、验证码、Token 计量……4 个 Agent 共用一套,质感统一。
- 两道检查:脚本比对每个元素的出现时间和说出那个词的时间,差超过 0.45 秒就报出来;再截“台词 | 画面”逐句对照图,逐格看。
锚点是怎么写的(节选自本期 scenes.js)
// scenes.js 头部(节选):按 SRT 查出某个词开口的时间
function SAY(seg, word, nth) { … }
// 相对当前场景的秒数,默认比开口早 0.12 秒
function AT(sc, seg, word, off, nth) {
return +Math.max(0, SAY(seg, word, nth) - (sc && sc.from || 0) + (off == null ? -0.12 : off)).toFixed(2);
}
// 第 01 段「把 Chrome 替换掉」这一页(节选)
// 说到“Chrome”时 Chrome 图标才出现,“替换掉”时被划掉、向左推走,ego 图标从右边顶进来。
build: function () {
var tC = at(this, 'Chrome'), tX = at(this, '替换'), tR = at(this, '替换掉');
return … + TT('把 <b class="hl">Chrome</b> 替换掉了', tC) +
UI.icon('chrome', { t: tC, strike: tX, out: tR + .15, outFx: 'left', label: 'Google Chrome' }) +
UI.icon('ego', { t: tR + .2, fx: 'right', label: 'ego (lite)' }) + …;
}
同步核对脚本对成片版本的实际输出
$ node broll-sync-audit.mjs http://localhost:8877/ 0,1,2,3,4,5,6,7,8
-- seg0: 29 个锚定元素
-- seg1: 1 个锚定元素
-- seg2: 19 个锚定元素
-- seg3: 28 个锚定元素
-- seg4: 14 个锚定元素
-- seg5: 25 个锚定元素
-- seg6: 40 个锚定元素
-- seg7: 25 个锚定元素
-- seg8: 28 个锚定元素
NOSAY seg7 [04 速度与省 Token] 省很多 Token @54.43
(NOSAY:有入场动画、但没锚到台词的元素,逐个人工确认,节选一条)
锚定元素全部同步 重做后的 v4,208 个画面元素锚到了台词上,偏差全部在 0.45 秒以内(成片版本是 209 个)。拿开头举例:说“高强度去用”时,Ego Lite 里标签页一个接一个打开;说“改成默认浏览器”时,系统设置里选中 ego lite;说到“Chrome”那一刻 Chrome 图标才出现,接着被划掉推开。
看完全片,
我换成了便签复盘。
v4 每句都对齐了。我看完整片,最后说:“我们选择便签复盘这个。”晴空只是在一段 19 秒的样板里赢了,铺满 9 段之后,我更想要方格纸、粗黑标题、橙色强调这种复盘的感觉。
因为场景写的是内容,换模板代价不大。Agent 在便签复盘上加了一层兼容样式,让晴空时期的场景也能套上新样式。内容和对时全部沿用,换完重跑核对,依然全部同步。
只有“Windows 版终于来了”那一页保留了晴空版式。换完我觉得它不如原来好看,就把晴空的发布页版式移植了回来,也就是文章开头那张图。
最后几处,
都是我盯出来的。
① 截图没铺满窗口
源码截图在窗口里只占了一角。Agent 自己截图检查时是正常的,换到我的浏览器就短一截,原因是 3840 宽的原图靠偏移裁切。改成先用 PIL 裁好再放进窗口。
② 图标有 AI 味
渐变底加四角星的 Agent 图标,我一眼就说“太像 AI 生成的了”。全片去掉了渐变,Agent 换成终端图标。这条也记进了 Agent 的长期记忆。
③ 评论只放了 4 张
“Windows 用不了”那页原来只放了 4 张评论。我说评论那么多,应该慢慢堆起来、加上音效。现在从说到“评论区”开始,10 张评论每 0.26 秒落下一张,每张带一声落卡音效,压在下面的逐渐变暗。
④ 预览切段要缩放一下才正常
切到第二段时画面比例乱了,要把浏览器缩放到 110% 再恢复才正常。原因是切段时重设舞台样式,把缩放也一起清掉了;在构建完成后补一次 fit() 就好。这个修在 Skill 的预览外壳里,以后的工程都受益。
确认之后,
一口气渲染到交付。
我说“可以渲染成片了”之后就没再介入。Agent 用 Remotion 渲染了 9 段 4K 成片,文件名就是要盖住的时间段,附一份替换对照表,我直接拖进剪辑时间线对位。
3840 × 2160 30fps配乐比口播低 16 dB峰值 ≤ -18 dBFS成片不含口播
1_Windows终于来了_00-00-40,767~00-01-00,200_字幕33-43.mp4
交付时它说清楚了验证到哪一步
每段帧数等于区间长度,分辨率、帧率、命名正确,响度和峰值在范围内。
渲染前抽了 68 帧和预览比对,录屏片段确认在动,没有停在第一帧。
Agent 没有试听,明确让我自己听一遍,尤其是评论堆那 10 声卡片音效。
想自己做,
从这几步开始。
npx skills add NanmiCoder/ajiang-vibe-coding-skills --skill ajiang-video-broll- 01
安装 Skill,把最终版 SRT、初剪视频或口播音频交给 Agent。
- 02
标出已经有实录、不用做 B-roll 的时间段,其余的才交给它做。
- 03
先挑一段做样板。模板不满意,就让两个 Agent 各做一版、互相挑刺。
- 04
样板确认后再并行开发其他段。要求每个图标、窗口、截图都锚到说出它的那个词,并跑同步核对。
- 05
看完整片再定模板。截图先预裁,少用渐变和四角星这类有 AI 味的图标。
- 06
预览确认后再渲染 4K。Agent 只能测响度,声音要自己听一遍。
我给的只是字幕和音频,真正花时间的,是一句一句说清楚哪里不对。
素材与画面来源说明
交互预览与成片使用同一份场景代码和素材,口播、配乐与录屏片段为网页压缩版。文中成片截图从这份预览截取。晴空 v4、A/B 两版的截图,用当时保留的工程和场景代码重新构建后截取;纸白信号橙当时的样板没有保留,用的是模板库封面。“修之前”的三张是我审片时的原始截图。
官网的 Windows 下载页、默认浏览器设置、Codex 窗口、验证码、半路接管和速度对比等是示意画面,不是实录;完整清单在预览页底部。本期使用的「便签复盘」兼容层是为这期做的,Skill 里公开的是便签复盘原模板。