阅读视频的维护记录
这是阅读视频背后的维护记录。用脚本时不用看,出问题或者要改做法时再看。
从哪来
- 2026-10-17 用户定下「视频笔记拆成下载、分析、输出,下载和分析归 agent-io」,
video_read.py就是分析这一段 - 选帧、抽帧、联系图照搬视频笔记的
extract_video_keyframes.py:每P中间先取一帧,其余按总时长均匀撒;-ss放-i前面;竖屏用竖格子 - 转写照搬视频笔记
agent_io.py里的那套:抽 16 kHz 单声道 32 kbps mp3,10 分钟一块,verbose_json加词级时间戳和diarization,一个人讲的整块只回一个 segment,按词级时间戳和标点重新切成字幕行 - 输入换成解析分享链接的文件夹,读
meta.json的parts,不再自己下视频;也收单个视频文件
这次补的
- 静音不送转写:三轮新 agent 都自己用
volumedetect判断有没有声音。静音音轨照样计费、转回来是空的,所以最大音量低于 -50 dB 就跳过 - 图文拼图:三轮 agent 都自己拼过多图。其中一轮用图片序列直接接
tile,碰到尺寸不同的图悄悄截断,第一次拼出来的图不全;脚本先把每张缩放补边到 300×400 的格子,再拼,左上角标序号 - 按张数定行列:不满 12 张的拼图原来照样是 4×3,最后一张只有 1 张图时大半是空白;改成张数少就少几行、少几列
- 短视频按画面切换取帧:分析段验收时,抖音那条 46 秒教程把三段提示词全屏放在 6–9 秒,均匀撒的 12 帧落在 5.3 秒和 9.7 秒,正好漏掉;口播每分钟 394 字,按字数也报不了警。改成 3 分钟以内按画面切换取:提示词卡那次切换的分数是 1.0,全片最高。第一版取在切换后 0.4 秒,卡片是逐字打出来的,只拍到一半;改成取在下一个切换之前,三段拍全
- 单帧不缩小:原来单帧缩到 540 宽再补边,2160×2880 的录屏界面字读不了;改成长边最多 1920,只有拼联系图时才缩
- 重复帧:原来先在每P中间取一帧、再均匀撒,单P视频两种取法撞在同一时刻,12 格只有 11 张不同的图;改成先均匀撒,再给没分到的P补一帧
- 补空档、手动补帧:端到端验收时,同一条抖音 17–28 秒是录屏里 Agent 对话慢慢滚动,没有一处画面切换,一帧都没取到,验收的 agent 只好自己用 ffmpeg 补抽,补的帧进不了证据索引。改成超过 6 秒没切换就每 4 秒补一帧;另加
--at按时间点补帧,补的帧进keyframes.json。原来--force连转写一起重做、重新扣钱,拆成--force只重做取帧、--retranscribe才重新转写 - 临时文件:原来用系统临时目录,本机根分区满了;改成写在输出文件夹里
- 每分钟字数:3 分钟以上的视频每分钟不到 80 字时提醒内容在画面上;阈值是自己定的,视频笔记原来按字幕密度算画面依赖,这里只留一句提醒
实测
2026-10-17,输入是解析分享链接刚取下的文件夹:
| 输入 | 结果 |
|---|---|
| B 站单P 31 秒、2P 公测 PV、小红书 37 秒真视频、抖音 45 秒,一次跑完 | 都成功,64 秒;4 条都没有字幕,都转写了,共 0.0105 美元;小红书那条是纯音乐,转写为空,有提示 |
| 小红书 4 张图的图文、B 站 25 张图的图文 | 分别拼成 1 张、3 张,序号对得上 |
| 单个视频文件(小红书那条静音录屏) | 写进 dsh_read/;最大音量 -91 dB,没送转写 |
--frames 5 | 联系图 4 列 2 行 |
| 修完后:抖音 46 秒教程 | 按画面切换取 13 帧,第 5 帧在 8.667 秒,三段提示词完整;单帧 1440×1920 |
| 修完后:B 站 2P 公测 PV,262 秒 | 均匀撒 12 帧,每P 6 帧,没有重复的时间点 |
| 补空档后:同一条抖音 | 17 帧,17–28 秒补了 20.6、24.2 秒两帧,33–41 秒补了两帧;--at 19,25.5 再补两帧,转写没重做,花费 0 |
没做的
- 没有 OCR:联系图和单帧交给能看图的模型,模型看不了图就只能读转写
- 长视频没实测:50 分钟的课这次只取了元数据,没下视频、没转写
- 帧是按时间均匀取的,不是按画面切换取的;PPT 类视频可能漏页