首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >斩获 2.7K Star!这个开源神器,让视频终于能像 Google 一样被搜索了!

斩获 2.7K Star!这个开源神器,让视频终于能像 Google 一样被搜索了!

作者头像
开源星探
发布2026-04-10 08:33:50
发布2026-04-10 08:33:50
1990
举报
文章被收录于专栏:翩翩白衣少年翩翩白衣少年

上个月小编加入了一个 AIGC 初创公司,但是做的最多的工作内容并不是 Vibe Coding 写代码。

而是做视频剪辑,当视频素材多的时候,想找之前点开看过的一个片段,得找好半天。

这事儿听着就累。但你有没有想过,为什么我们找文本内容的时候,可以用搜索框一搜就出来,找视频却只能像个无头苍蝇似的来回拖进度条?

最近恰巧在 GitHub 上发现了一个开源项目,直接把视频搜索这件事,变得像搜百度一样简单。

它叫 SentrySearch,目前已经斩获了 2.7K Star。

什么是 SentrySearch?

简单说,这是一个能让你用自然语言搜索视频的开源工具。

不用再拖进度条,不用再人工翻看。你只需要输入一句话,比如:

"有人从左侧逼近那一刻" "红色卡车闯红灯" "猫咪跳到沙发上"

它就能:

  • • 精准定位到具体的时间点
  • • 自动把那段视频裁剪出来
  • • 直接给你一个剪辑好的片段

这个项目来自 GitHub 上的开发者 ssrajadh,虽然上线不久,但已经引起了不少关注。

核心原因很简单:它解决了一个所有人都遇到过,但从来没有被好好解决过的痛点。

核心亮点

1、不需要字幕,也能看懂画面

最厉害的地方在于,它根本不依赖视频的字幕或者语音识别。

以前的视频搜索方案,基本上都是先把语音转成文字,然后搜文字。但如果视频里没人说话,或者画面内容和语音没关系,那就彻底没用了。

SentrySearch 不一样,它直接"看"画面。

它用的是多模态嵌入技术,把视频片段转换成向量,然后和你的文字查询做语义匹配。也就是说,它真的能理解画面里发生了什么,而不是仅仅在搜字幕。

2、双模型支持:云端 Gemini + 本地 Qwen3-VL

项目提供了两种选择,满足不同需求:

云端方案(推荐):用 Google 的 Gemini Embedding API,搜索质量最好,速度也快。需要申请一个 Gemini API Key。

本地方案(隐私优先):用 Qwen3-VL 模型,完全在本地运行,不需要联网,数据绝对隐私。适合对数据安全有要求的用户。

而且本地模型还会根据你的硬件自动选择:

  • • 24GB+ 内存的 Mac 或者 18GB+ 显存的 NVIDIA 显卡 → 用 8B 模型
  • • 配置低一点的 → 自动用 2B 模型

3、特斯拉车主专属福利

这个功能简直是为特斯拉车主量身定做的。

如果你用的是特斯拉行车记录仪的 footage,SentrySearch 可以:

  • • 读取视频里的车速、定位信息
  • • 把这些信息直接叠加在裁剪好的视频上
  • • 显示实时速度、时间、甚至具体的城市和道路名称

想象一下,当你需要找某个事故片段时,不仅能找到画面,还能看到当时的车速和位置,这对于定责之类的场景太有用了。

4、用 ChromaDB 做向量存储

技术上,它用 ChromaDB 来存储视频的向量数据。

这意味着什么?

  • • 搜索速度极快,即使你有几十个小时的视频素材
  • • 本地存储,数据安全
  • • 可以随时添加新视频,索引增量更新
技术原理

让我们简单拆解一下 SentrySearch 的工作流程,其实挺巧妙的:

第一步:视频切片

它会把你的视频切成一段一段的小片段,默认是 30 秒一段,段与段之间有 5 秒的重叠。这样可以避免重要画面被切在两段中间。

第二步:预处理优化

在把视频片段送给模型之前,它会先做一些优化:

  • • 把分辨率降到 480p
  • • 把帧率降到 5fps
  • • 检测静止画面,如果没有变化就直接跳过

这些优化能让处理速度提升几十倍,而且几乎不影响搜索质量。

第三步:向量化

然后,用 Gemini 或者 Qwen3-VL 模型,把每个视频片段转换成一个向量。

这个向量就是视频的"语义指纹",它包含了画面里的所有信息:有什么物体、发生了什么动作、场景是什么样的。

第四步:存储

这些向量会被存到 ChromaDB 数据库里,和原视频的对应关系一起保存。

第五步:搜索

当你输入查询时,系统会:

  1. 1. 把你的文字也转换成向量
  2. 2. 在数据库里找最相似的视频向量
  3. 3. 按相似度排序返回结果
  4. 4. 自动把最匹配的那段视频裁剪出来

整个流程行云流水,用户体验特别流畅。

快速上手

安装

首先,你需要安装 uv(一个 Python 包管理工具):

代码语言:javascript
复制
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

然后安装 SentrySearch:

代码语言:javascript
复制
git clone https://github.com/ssrajadh/sentrysearch.git
cd sentrysearch
uv tool install .

配置(云端方案)

如果你想用 Gemini 云端方案,需要先配置 API Key:

代码语言:javascript
复制
sentrysearch init

它会提示你输入 Gemini API Key,你可以从 https://aistudio.google.com/apikey 免费获取。

配置(本地方案)

如果你想用本地模型,根据你的硬件选择安装方式:

代码语言:javascript
复制
# Mac 或者高性能 NVIDIA 显卡
uv tool install ".[local]"

# 显存有限的 NVIDIA 显卡(8-16GB)
uv tool install ".[local-quantized]"

Mac 用户还需要安装系统 FFmpeg:

代码语言:javascript
复制
brew install ffmpeg

索引你的视频

把你的视频素材放到一个文件夹里,然后运行:

代码语言:javascript
复制
# 云端方案
sentrysearch index /path/to/your/video/folder

# 本地方案
sentrysearch index /path/to/your/video/folder --backend local

它会开始处理你的视频,你可以看到进度:

代码语言:javascript
复制
Indexing file 1/3: front_2024-01-15_14-30.mp4 [chunk 1/4]
Indexing file 1/3: front_2024-01-15_14-30.mp4 [chunk 2/4]
...
Indexed 12 new chunks from 3 files. Total: 12 chunks from 3 files.

现在,最激动人心的时刻到了:

代码语言:javascript
复制
sentrysearch search "红色卡车闯红灯"

几秒钟后,你会看到结果:

代码语言:javascript
复制
  #1 [0.87] front_2024-01-15_14-30.mp4 @ 02:15-02:45
  #2 [0.74] left_2024-01-15_14-30.mp4 @ 02:10-02:40
  #3 [0.61] front_2024-01-20_09-15.mp4 @ 00:30-01:00

Saved clip: ./match_front_2024-01-15_14-30_02m15s-02m45s.mp4

看!最匹配的片段已经自动裁剪好,保存到当前目录了。

如果你是特斯拉车主,还可以加上 --overlay 参数,叠加车速和定位信息:

代码语言:javascript
复制
sentrysearch search "有人加塞" --overlay
一些实用的小技巧

调整搜索参数

你可以用一些参数来调整搜索行为:

代码语言:javascript
复制
# 只显示结果,不自动裁剪
sentrysearch search "something" --no-trim

# 调整相似度阈值
sentrysearch search "something" --threshold 0.5

# 保存前 N 个结果
sentrysearch search "something" --save-top 3

# 指定输出目录
sentrysearch search "something" --output-dir ./clips

索引参数调整

索引时也可以调整一些参数:

代码语言:javascript
复制
# 调整片段长度(默认 30 秒)
sentrysearch index /path --chunk-duration 60

# 调整重叠时间(默认 5 秒)
sentrysearch index /path --overlap 10

# 不跳过静止画面
sentrysearch index /path --no-skip-still

管理索引

代码语言:javascript
复制
# 查看索引信息
sentrysearch stats

# 删除某些视频的索引
sentrysearch remove path/to/video

# 清空整个索引
sentrysearch reset
适用场景

这个工具的应用场景可以很广,简单列几个:

  • 行车记录仪:不用再慢慢翻几个小时的 footage,找事故、找违章、找有趣的瞬间,一句话搞定。
  • 视频后期:从素材库快速定位需要的镜头,再也不用拖进度条拖到眼瞎。
  • 监控录像:找特定时间发生的事件,比如"有人进入后院"、"快递被拿走了"。
  • 学习资料:从网课录像里找某个知识点的讲解片段。
  • Vlog 素材:从拍的一大堆素材里,快速找出"猫抓老鼠"、"朋友摔倒"这类精彩瞬间。
未来规划

项目还在快速迭代中,作者提到了一些未来的改进方向:

  • • 更智能的切片方式(比如基于场景检测)
  • • 支持更多模型
  • • 图形界面(现在只有命令行)
  • • 实时视频流处理

这些功能如果都实现了,这个工具会更加强大。

写在最后

SentrySearch 向我们证明了一件事:视频内容的可检索性,不应该被锁定在科技巨头的黑盒里。

它用最优雅的方式解决了视频检索这个老大难问题——不需要昂贵的云服务,不需要复杂的标注工作,只需要一个开源工具,你的视频就能被"看懂"。

无论是保护行车安全的车主、管理海量素材的创作者,还是需要快速检索监控的安保人员,这个工具都能带来实实在在的效率提升。

视频,终于像文本一样可以被搜索了。

这是一个小而美的项目,但解决的却是一个大问题。

如果你也有一堆视频素材等着处理,一定要试试这个项目。

GitHub:https://github.com/ssrajadh/sentrysearch

如果本文对您有帮助,也请帮忙点个 赞👍 + 在看 哈!❤️

在看你就赞赞我!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-04-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源星探 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是 SentrySearch?
  • 核心亮点
  • 技术原理
  • 快速上手
  • 一些实用的小技巧
  • 适用场景
  • 未来规划
  • 写在最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档