VideoSeek 本地离线图、文检索视频桌面软件,踩坑记录!
2026/7/5 1:41:01 网站建设 项目流程

很久之前我发过一篇VideoSeek的初版介绍——那时候它还是「抽帧 + CLIP + 向量索引,能把截图对应到本地视频」的小工具。

那篇文章里的动机我至今还记得:

领导甩来一张截图,让我在硬盘里找原片;网上搜不到,记忆也靠不住,只能自己写。

那个痛点没变。变的是:VideoSeek 不再只是「搜一下试试」,而是慢慢长成了我日常真的会打开的本地视频素材库

这篇不重写旧文,只聊聊:从「能跑」到「能长期用」,走了那些路。


一、初版解决了什么

最早那版,核心就四件事:

  1. 文本描述 → 找相似画面
  2. 上传图片 → 以图搜视频
  3. 维护多个本地视频目录
  4. 命中后预览片段

很直白:FFmpeg 抽帧 → ONNX 跑 CLIP → 建向量索引 → 相似度搜索。

当时能跑、能演示、能救命,就已经值了。


二、用着用着,问题也来了

自己用 + 给朋友用之后,现实很快教育人:

「搜到了」不够,还要「搜得准、搜得快、库大了也不崩」。

陆续遇到的真实需求:

  • 库里有几千个文件,只想在某几个文件夹里搜
  • 领导给的是裁剪过的截图,不是整帧,普通图搜经常飘
  • 同一套素材,有人想用中文 CLIP,有人更习惯SigLIP
  • 索引更新到一半被打断,不能悄悄坏掉
  • 视频改名、换文件夹,不想整片重算向量
  • 删库之后磁盘占用还在,得真的释放空间
  • 除了自己点 UI,还想让Cursor / 其它 Agent调本地搜索

这些都不是「再加一个按钮」能糊弄过去的,得动架构。


三、怎么解决这些问题

1. 索引与搜索:从 FAISS 实验栈,到 Lance 主线

早期为了快,向量检索走FAISS + 全局索引那条路,写 demo 很爽;库一大、要分库搜、要删库回收,维护成本就上来了。

现在本地搜索主线已经收敛到Lance 向量库

  • 同步视频库 → 抽帧、embedding、直接写 Lance
  • 搜索 → 从 Lance 加载,在内存里做检索
  • 删库 → 删向量行 + 压缩存储,占用会下来

对用户来说,界面还是「同步 / 搜索」;对开发者来说,少了很多「全局索引要不要重建」的心智负担。

(老用户从旧版升级时,应用内会自动做迁移,不用手搓。)

2. 搜索:从「全库一把梭」到「可控、可精、可预设」

现在搜索页比初版多了不少「真干活」的能力:

  • 搜索范围:全库 / 指定库 / 指定视频
  • frame / chunk:按帧命中,或按语义时间段聚合
  • 以图搜 + 截图定位:裁剪截图可以走定位链路,不是简单整图相似度
  • 搜索预设:常用条件存成 preset,下次一键复用

「毫秒级搜索」在中小库上依然成立;库特别大时,先收窄范围往往比硬全库扫更实用——这也是后面做 scope 的原因。

3. 模型:从「一套 CLIP 走天下」到多 Profile

不再绑死单一 CLIP 了。现在可以在设置里切换不同模型 Profile(例如 CLIP、SigLIP、Chinese-CLIP 等),各自有独立的向量资产目录。

这意味着:

  • 你可以按素材类型选更合适的 embedding
  • 换模型 ≠ 覆盖旧库,各 profile 各管各的

4. 视频库:从「能加文件夹」到「能长期维护」

库管理也成熟不少:

  • 库内改名 / 搬家,会尽量对齐路径,不重算向量(内容没变就不浪费算力)
  • 同步失败有本次问题视频列表,不用翻日志猜
  • 删库后会清理对应向量并压缩,不是删了 UI 条目但磁盘不动
  • 设置里可以看本地向量索引详情(帧数、块数、占用估算)

这些不 flashy,但决定了:你是偶尔玩一下,还是真的把几百 G 素材扔进去。

5. 预览:从「导出小段看看」到「搜完就能播」

命中结果现在更适合「确认是不是这一镜」:

  • 预览走VLC 直接播源片,到点自动停
  • 导出片段仍走FFmpeg,从原片裁 mp4

搜 → 看 → 导出,链路更顺了。

6. 新长出来的两条「可选胳膊」

核心仍是:本地库 + 语义搜索 + 预览导出。

在此基础上又加了两个不挡主链路的扩展:

理解笔录
对已同步视频,按需生成 chunk 级 YOLO 检测 + 画面描述 + 整片总结。要配描述服务,不做也能正常搜。

本机 Agent API(可选)
127.0.0.1开 HTTP 接口,让 Cursor 等外部 Agent 调搜索、列库、导出、读/生成理解笔录。
详见仓库docs/for-agents.md,适合「人在 UI 里看,Agent 在后台帮找片」的玩法。


四、现在 VideoSeek 是什么

一句话:

本地视频素材库:用文字或截图找片段时间,预览后导出片段;数据在本地,不上传你的视频。

适合:

  • 硬盘 / NAS 堆了大量自己拍的、网上搜不到的素材
  • 剪辑前粗定位,再进 PR / 达芬奇精剪
  • 想本地跑模型,又 optionally 让 Agent 帮忙调搜索

和初版比,灵魂没变(语义找画面),骨架更结实(Lance、多模型、范围搜索、库维护、Agent)。


五、技术栈

  • PySide6— 桌面 UI
  • ONNX Runtime— 多 provider 视觉/文本 embedding
  • Lance— 本地向量存储与检索主路径
  • FFmpeg— 抽帧、导出
  • VLC— 预览播放

实现细节、模块划分、数据流:全在 GitHub 开源,比文章里贴代码实在。
初版文章里的代码示例已过时,以仓库为准


六、给还在做本地 AI 工具的人

如果你也在做桌面端 + 本地模型的小工具,几条亲身感受:

  1. 先让「一个场景跑通」,再谈架构;VideoSeek 第一版就值回票价。
  2. 索引/存储会咬人——库一大、要删要迁要分 scope,越早想清越好。
  3. 用户要的是「找对了」,不是「向量检索原理」;截图定位、chunk、预览比再快 10ms 重要。

VideoSeek 还会继续成长。欢迎试用、提 issue、或者在群里反馈。


链接

GitHubhttps://github.com/6v17/VideoSeek
Windows 安装包https://www.lv17.top/

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询