把两小时录屏学通透:长视频课程笔记工作流
把两小时录屏学通透:长视频课程笔记工作流
一、目标不是摘要,是能照着复现的笔记
培训课程、技术录屏动辄一两个小时,「看一遍」等于没看。我的目标是产出能照着复现的笔记:命令、代码路径、参数、排错全保留,而不是「本节课讲解了 XXX」这种摘要。
这套工作流是把 RAGFlow 源码课(两小时+)学通时定型的,核心思路一句话:机器干机器的活,人(和子代理)只看该看的。
二、摸清素材
动手先花五分钟摸底:
- zip 课件直接读:pptx 就是 zip,
namelist()看结构,文字在ppt/slides/slideN.xml的<a:t>,图片在ppt/media/。先读文字再决定要不要看图,别急着全解开; - 视频信息:
ffmpeg -i in.mp4抓 Duration; - 先算帧数再决定策略:两小时按 5 秒抽 = 1400+ 帧,绝不可能全部人肉读图——这个数字直接决定后面必须走「去重 + 子代理」路线。
三、抽帧:一次解码,大小图双出
1 | ffmpeg -y -i IN.mp4 \ |
一次解码同时出两种图:1440 宽大图(代码可读性与 token 成本的平衡点,再窄就读不出代码了)和 48×30 灰度小图(每帧 1440 字节,给下一步去重用)。2.5 小时视频约 10~20 分钟抽完,放后台跑。
四、差分去重:1900 帧砍到 300 张
纯 Python 读 tiny.raw,逐帧与「上一个保留帧」比平均绝对差:
1 | keep = [0]; last = frames[0] |
两条阈值各管一种场景:画面突变(切页/切代码)必留;渐变(滚动、动画)最多 45 秒留一张。实测 2.5 小时课程:1900 帧 → 300~450 关键帧。时间戳 t = i * interval,与大图编号对应。
顺带解决了两个意外场景:课前无关桌面帧会保留一两张(无妨);推流故障的大段灰屏被自动跳过,笔记里标注「该时段无内容」即可。
五、分批派子代理读图(关键:别自己读)
按关键帧顺序切批,每批 35~60 张,并行派子代理,每批一个,逐张读图后写带时间戳的笔记。
提示词三要素:课程主题、可能出现什么画面(PPT/IDE/终端/浏览器)、输出文件路径,外加一句硬要求——「逐字记录命令与代码」,以及最后只回一行 done,别把笔记复述回主上下文。
必须按文件存在性复核,因为子代理有三种静默失败:① 不写文件 ② 被分到不支持读图的模型(报错 current model does not support images)③ 写错路径。每批结束列目录核对,缺哪批补派哪批。主上下文因此只增长 N 行 done,几百张图的 token 全在子代理里烧掉。
六、二次压缩:几十万字变六份摘要
原始笔记总量常达几十万字,主上下文读不下。再派 6 个压缩子代理,每个吃 23 份原始笔记,按固定 schema 输出 50006000 字:
1 | A 时间段与主题 B 关键知识点(保留讲师结论与「为什么」) |
schema 固定是压缩质量的关键——每个子代理都按同一个骨架输出,最后合成才不会漏项。
七、两份交付物
主代理读 6 份摘要,合成两份东西:
- 知识总纲:架构、链路、参数、二次开发入口——回答「这门课讲了个什么系统」;
- 一天跑通手册:本机环境探测 + 时间表 + 命令 + 检查点 + 排错表 + 验收清单——回答「我怎么把它跑起来」。
跑通手册必须先探测本机环境(docker/ollama/GPU/磁盘/代理)再写,拒绝通用版——本机没有 ollama 就别让人家装模型,本机代理吞 localhost 就先给绕法。
八、收尾与坑位
- 按约定删除抽帧图片(通常几千张),临时脚本、探针输出一并清掉,只留笔记;
- 写工作区记忆:素材路径、课程主题、关键环境结论、踩到的坑;
- 本机坑位照抄:PATH 里通常没有 ffmpeg(剪映目录里有裁剪版,够用);PowerShell 不回传 stdout,输出写文件再读;脚本统一 UTF-8 写文件;
wsl.exe可能被安全策略拦截,别在脚本里调。
九、小结
这套工作流的本质是流水线思维用在学课上:抽帧去重是「粗筛」,子代理读图是「精读并行化」,schema 压缩是「结构化」,两份交付是「分层输出」。课程越长,相对人工的优势越大。下一篇讲录屏逆向——看到别人的视频,怎么拆成可复现的配方。

