dsh-video-see:让 DSH Agent 用自己的眼睛看视频

前言

在 DeepSeek Harness (DSH) 中,当询问视频内容时,Agent 需要的是画面。

现有的方案基本只有两类:使用视觉桥插件(把帧发给云端 VLM,只返回文字结论,需要 API key 且结论是二手的),或者让 Agent 自己拼 ffmpeg 命令(需要处理时间戳和边界,容易出错)。

dsh-video-see 提供了第三条路:不调用外部 VLM,不需要任何 API key,画面不离开机器。它使用 ffmpeg 抽取帧,作为真实图像返回给 Agent,并附带时间戳。

这是什么

dsh-video-see 是 DeepSeek Harness 的一个插件。它使用 ffmpeg 对视频进行抽帧,返回真实的图像内容块,并标记时间戳。作者是 HongtaoWang75,许可证为 MIT。

核心功能

  • 使用 ffmpeg 抽取视频帧。
  • 将真实图像返回给 Agent。
  • 为每帧标记时间戳。
  • 不需要视觉 API 或 API key。
  • 所有处理都在本地完成,不离开机器。
  • 支持多种参数:input, times, every, count, start, end, width, mode。
  • 可通过 cordis.patch.yml 配置:ffmpegPath, ffprobePath, maxFrames, maxWidth, maxPixels, quality, timeoutMs, toolTimeoutMs, graceMs。
  • 包含单元测试和契约验证脚本。

安装与启用

  1. 执行安装命令:
dsh plugin --profile web add dsh-video-see
  1. 重启 dsh web(插件树在进程启动时组合)。
    前置条件:必须安装 ffmpeg / ffprobe(或在配置中指定绝对路径)。插件零运行时依赖,没有构建步骤,也不联网。

典型用法

安装后,直接提问即可。Agent 会调用 video_see。
示例:
- “D:\videos\demo.mp4 里发生了什么?”
- “第 14 秒画面上那行小字写的是什么?”
- “这条片子剪了几个镜头?”

主要参数:
- input:视频路径(必填)。
- times:定点抽取秒数或时钟串,优先级最高。
- every:每 N 秒一帧。
- count:等分抽取帧数(1-64,默认 8)。
- start / end:指定时间窗。
- width:单帧宽度上限。
- mode:frames(每帧一张图)或 sheet(拼成一张图版)。

适用场景与注意

  • 无音频转录:不转写音频,hasAudio 仅报告音轨存在。
  • 不经过 ctx.fs:input 路径直接交给 ffmpeg,文件沙箱对此读取不生效。
  • 离散快照:帧是离散的,运动或一闪而过的细节可能被漏掉。
  • 依赖 ffmpeg:必须安装 ffmpeg。
  • 边界处理:自动处理帧边界、旋转检测、竖屏按面积缩放、仅在必要时缩放。
  • 临时文件:临时帧会立即删除。
  • 错误提示:提供用户友好的失败信息。

短结尾

该插件将视频帧以真实图像形式交还给 DSH Agent,配合本地模型的原生视觉能力,避免了二次翻译和 API 成本。如需了解详情,可查看目录页或 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜