READMESource: main@d356498c
dsh-media-kit
从本地音视频里取东西出来,只返回文件路径。不碰模型、不上传、不猜路由。
为什么会有这个插件
我用过一个"全媒体证据"插件:它宣传能读视频,实际把 mp4 当图片附件直传给视觉模型,被端口拒绝后整条链判失败,最后只回一句"内容未分析"。查了很久才发现问题不在 ffmpeg、不在权限,而在它内部的路由选择。
于是反过来做:插件只负责把帧和音轨取出来,路径交给我,我用自己已有的视觉去看。
不包模型,就没有路由可错。
四个工具
| 工具 | 作用 |
|---|---|
media_probe { path } |
时长 / 分辨率 / 编码 / 有没有音轨 |
video_frames { path, count } |
均匀抽 N 张 PNG(1-24,默认 6),返回路径 |
video_frame_at { path, at } |
取指定秒数的一张帧 |
media_audio { path, format } |
抽音轨为 m4a / mp3,返回路径 |
video_scene_frames { path, threshold, maxFrames } |
场景检测抽帧:只在画面实质变化时取一帧,是"逐帧分析"的实用版 |
典型用法:
video_probe → video_frames(count=9) → 逐张看我需要的帧
↓
(我看图,读字幕/找画面)
和市面上那些"能读视频"的插件,差在哪
市场里已经有几个媒体插件了,说清楚区别,省得你装重复的。
| 插件 | 它的做法 | 差别 |
|---|---|---|
| dsh-media-lens | 媒体证据透视 + provider 路由:全模态直传 → 抽帧 → 元数据兜底 | 它把"取素材"和"喂模型"绑在一条链上。没有真正的全模态模型时,auto 会退回 image 分组,把 mp4 当图片附件直传——被硬闸拒绝后整条链判失败,最后只回一句"内容未分析"。本插件不碰模型,所以没有可错的路由 |
| dsh-video-reader | 元数据 + 关键帧 + 字幕 + 多语种转写,首次自动装 ffmpeg / whisper.cpp | 它替你把转写也做了,代价是要装一套 whisper 运行时。本插件只给音轨路径,转写用你已有的工具 |
| dsh-video-vision | 把整片映射成文字(分窗口、切点、语音占比),不画图 | 纯文字摘要。要"看到画面"就得另找路。本插件产出的就是图 |
| dsh-bili-watch | 专做 B 站:字幕、弹幕、评论、本地 ASR、抽帧 OCR | 平台绑定。本插件对任何本地视频一视同仁 |
| dsh-ffmpeg | 十件套:探测/剪辑/拼接/转码/烧字幕/抽帧/GIF… | 通用处理工具箱,抽帧只是其中一项。本插件专注"给 agent 看图"这一件事,并处理了抽帧特有的坑 |
一句话区别:
它们想当分析器(替你看完给出结论),本插件只当取景器(把画面摆出来,你自己看)。
为什么取景器更好用
- 不用配任何 key / provider。看图用的是你当前会话已经有的视觉能力,不额外花钱、不额外失败。
- 成本可控。9 帧就是 9 次视觉调用;想省就用
video_frame_at只取关键秒,或video_scene_frames只取变化点。 - 不会"降级成一句话"。没有路由、没有兜底链,抽帧成功就是成功,失败会明确告诉你卡在哪一步。
还有一处别人没做的:video_scene_frames 用场景检测抽帧。均匀抽帧会漏掉"只变了一秒"的重点,而定长视频里那往往是正片开始的地方;场景检测实测能把 5 分钟视频压到 100 处左右变化,再按需取样。
三个刻意的设计
- 输出目录绝不用
%TEMP%。新版 ffmpeg 在部分环境写%TEMP%会Permission denied;默认落在~/.dsh/media-kit/work/,可用workDir改。 - 不依赖 PATH 找 ffmpeg。按
配置 ffmpegDir → 环境变量 FFMPEG_DIR → 已知目录 → PATH顺序找,全失败才报错,且报错直接告诉你该配哪个字段。 - 先探测再动手。抽音轨前先看有没有音轨——DASH 拆分的视频常常只有画面没有声音,直接跑 ffmpeg 会抛一句谁都看不懂的
Output file does not contain any stream。
装
dsh plugin --profile web add <本仓库地址>
首次使用需要本机有 ffmpeg。没有的话,下载解压后把 ffmpegDir 指到含 ffmpeg.exe / ffprobe.exe 的 bin 目录。
它不做什么
- 不抽音频文字(转写交给你的 ASR,它只管把音轨抽出来)
- 不上传任何文件
- 不替你判断内容,只把素材摆在你面前
License
MIT
No comments yet. Be the first to write one.