dsh-video-storyboard - 把一段视频压成一张分镜图加一份带时间码的文本清单
dsh-video-storyboard 是 SAOS-3624 维护的 MIT 许可插件,把视频画面压成一张宫格分镜图,并配一份按时间对齐的文本清单,让多模态模型据此回答「第几分钟发生了什么」。提供 video_probe、video_storyboard、video_zoom、video_locate 四个工具,依赖本机 ffmpeg,ASR 与 yt-dlp 可选。
dsh-video-storyboard 是一个面向多模态模型的视频理解插件:它不逐帧抽图,也不只喂字幕,而是把一段视频的画面压成一张宫格分镜图,旁边配一份按时间对齐的文本清单,每格写明起止时间、这一格里的台词、切了几刀。模型拿到的不是 600 张图,而是「这 90 秒里发生了什么、大概在第几秒」,需要细节时再放大某一段。它适合已经在用 DSH、希望让模型真正「看过」一段片子的用户,也适合需要把长视频快速转成可引用时间码的剪辑、内容整理场景。
维护者与状态
项目由 SAOS-3624 维护,仓库创建于 2026-10-26,最后提交时间为 2026-10-30。最新正式版本为 v0.4.5,发布于 2026-10-29。截至 2026-10-30,仓库星标数为 255。许可证为 MIT。
主要能力
据项目自述,插件提供四个工具,分别对应不同的调用时机:
- video_probe:只读容器头,返回时长、分辨率、帧率、有无音轨与字幕、是否已分析过。项目建议第一次接触一部片子时先调它,因为它不消耗图片 token。
- video_storyboard:主体功能,输出宫格图加文本清单。
- video_zoom:只看某一段,用更小的时间窗和更密的格,适合清单里发现某段重要后再放大。
- video_locate:纯文本工具,把一句话映射到时间码,用于「知道说了什么、但不知道在第几分钟」的情况。
据项目说明,清单只给原材料、不下结论:不说「这是高潮」「这里是角色 A」,只给时间、刀数与台词,判断留给模型。项目还称,当数字不可信时会明确写出来,例如连续运镜被逐帧切碎时标注 cut count unreliable here,而不是让模型把切点数当节奏依据。
输入方面,README 中称既支持本地文件,也支持贴 B 站、YouTube 等链接,插件会自行下载并缓存,竖屏、DASH、多分P 均已处理。参数上提供 from / to 时间窗、cells 格数、sheets 分图数、scanGap 粗扫间隔、pick 取帧策略、detail 每格台词预算等选项。
转写是可选能力。据项目自述,优先级为:视频自带字幕轨优先直接读取,其次是用 transcriptFile 喂入已有的 SRT / VTT / JSON,最后才调用 ASR 服务。默认后端为 sherpa 搭配 paraformer-zh 系列模型,也可切换到 funasr 或任意 OpenAI 兼容的云端转写接口。开启 detail: high 时,插件会用画面里的硬字幕对 ASR 结果做抽检校正,项目明确说明这是抽检而非全片校对。
使用入口
仓库地址:SAOS-3624/dsh-video-storyboard。
据项目说明,安装前需要本机具备 ffmpeg 与 ffprobe,这是必须项;yt-dlp 仅在贴链接时需要;ASR 服务不装也能出图,只是清单里没有台词。插件本身不打包 ffmpeg 与 yt-dlp,只调用用户自己安装的那一份,找不到时会给出安装指引而非静默失败。项目建议装完后先运行自检脚本 node bin/doctor.mjs,它会检查 ffmpeg、yt-dlp、ASR 与缓存目录,并逐条说明缺什么、怎么补。
命令行调用示例(摘自项目文档):
node bin/storyboard.mjs film.mp4 --cells 9 --out film.png node bin/storyboard.mjs film.mp4 --batch 300 --out film.png
项目另有一个独立的陪看插件 dsh-watch-together,README 中强调它不在本包内,本包不 import 它的任何一行代码,只需要视频识别能力时安装本包即可。
许可与限制
许可证为 MIT。
据项目自述,使用前有几项边界需要注意:
- ffmpeg 与 ffprobe 为硬性依赖,缺失时第一步就会报错;yt-dlp 与 ASR 服务为可选项。
- 需要登录态的视频(例如高清或遇到风控报错时)需自行导出 cookies 文件并在配置中指定;项目提醒 cookies 中的登录凭证等同于账号凭据,不应提交到仓库或公开分享。不想配置 cookies 时,可直接下载视频后喂本地路径。
- 贴链接模式跑的是下载的 360p 扫描副本,硬字幕本就模糊,清单会标注来源;想要更准的硬字幕校正应使用本地高清文件。
- 硬字幕校正依赖
rapidocr_onnxruntime,未安装时会静默跳过并在清单中注明,不会当作成功。 - 热词功能仅对 funasr 后端有效,sherpa 后端的 paraformer 没有热词接口,同音字需通过
terms表后处理。
以上能力与参数均来自项目自述,实际表现以仓库文档与自身环境为准。