
上个月小编加入了一个 AIGC 初创公司,但是做的最多的工作内容并不是 Vibe Coding 写代码。
而是做视频剪辑,当视频素材多的时候,想找之前点开看过的一个片段,得找好半天。
这事儿听着就累。但你有没有想过,为什么我们找文本内容的时候,可以用搜索框一搜就出来,找视频却只能像个无头苍蝇似的来回拖进度条?
最近恰巧在 GitHub 上发现了一个开源项目,直接把视频搜索这件事,变得像搜百度一样简单。
它叫 SentrySearch,目前已经斩获了 2.7K Star。

简单说,这是一个能让你用自然语言搜索视频的开源工具。
不用再拖进度条,不用再人工翻看。你只需要输入一句话,比如:
"有人从左侧逼近那一刻" "红色卡车闯红灯" "猫咪跳到沙发上"
它就能:
这个项目来自 GitHub 上的开发者 ssrajadh,虽然上线不久,但已经引起了不少关注。
核心原因很简单:它解决了一个所有人都遇到过,但从来没有被好好解决过的痛点。
1、不需要字幕,也能看懂画面
最厉害的地方在于,它根本不依赖视频的字幕或者语音识别。
以前的视频搜索方案,基本上都是先把语音转成文字,然后搜文字。但如果视频里没人说话,或者画面内容和语音没关系,那就彻底没用了。
SentrySearch 不一样,它直接"看"画面。
它用的是多模态嵌入技术,把视频片段转换成向量,然后和你的文字查询做语义匹配。也就是说,它真的能理解画面里发生了什么,而不是仅仅在搜字幕。
2、双模型支持:云端 Gemini + 本地 Qwen3-VL
项目提供了两种选择,满足不同需求:
云端方案(推荐):用 Google 的 Gemini Embedding API,搜索质量最好,速度也快。需要申请一个 Gemini API Key。
本地方案(隐私优先):用 Qwen3-VL 模型,完全在本地运行,不需要联网,数据绝对隐私。适合对数据安全有要求的用户。
而且本地模型还会根据你的硬件自动选择:
3、特斯拉车主专属福利
这个功能简直是为特斯拉车主量身定做的。
如果你用的是特斯拉行车记录仪的 footage,SentrySearch 可以:
想象一下,当你需要找某个事故片段时,不仅能找到画面,还能看到当时的车速和位置,这对于定责之类的场景太有用了。
4、用 ChromaDB 做向量存储
技术上,它用 ChromaDB 来存储视频的向量数据。
这意味着什么?
让我们简单拆解一下 SentrySearch 的工作流程,其实挺巧妙的:
第一步:视频切片
它会把你的视频切成一段一段的小片段,默认是 30 秒一段,段与段之间有 5 秒的重叠。这样可以避免重要画面被切在两段中间。
第二步:预处理优化
在把视频片段送给模型之前,它会先做一些优化:
这些优化能让处理速度提升几十倍,而且几乎不影响搜索质量。
第三步:向量化
然后,用 Gemini 或者 Qwen3-VL 模型,把每个视频片段转换成一个向量。
这个向量就是视频的"语义指纹",它包含了画面里的所有信息:有什么物体、发生了什么动作、场景是什么样的。
第四步:存储
这些向量会被存到 ChromaDB 数据库里,和原视频的对应关系一起保存。
第五步:搜索
当你输入查询时,系统会:
整个流程行云流水,用户体验特别流畅。
安装
首先,你需要安装 uv(一个 Python 包管理工具):
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"然后安装 SentrySearch:
git clone https://github.com/ssrajadh/sentrysearch.git
cd sentrysearch
uv tool install .配置(云端方案)
如果你想用 Gemini 云端方案,需要先配置 API Key:
sentrysearch init它会提示你输入 Gemini API Key,你可以从 https://aistudio.google.com/apikey 免费获取。
配置(本地方案)
如果你想用本地模型,根据你的硬件选择安装方式:
# Mac 或者高性能 NVIDIA 显卡
uv tool install ".[local]"
# 显存有限的 NVIDIA 显卡(8-16GB)
uv tool install ".[local-quantized]"Mac 用户还需要安装系统 FFmpeg:
brew install ffmpeg索引你的视频
把你的视频素材放到一个文件夹里,然后运行:
# 云端方案
sentrysearch index /path/to/your/video/folder
# 本地方案
sentrysearch index /path/to/your/video/folder --backend local它会开始处理你的视频,你可以看到进度:
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.现在,最激动人心的时刻到了:
sentrysearch search "红色卡车闯红灯"几秒钟后,你会看到结果:
#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 参数,叠加车速和定位信息:
sentrysearch search "有人加塞" --overlay调整搜索参数
你可以用一些参数来调整搜索行为:
# 只显示结果,不自动裁剪
sentrysearch search "something" --no-trim
# 调整相似度阈值
sentrysearch search "something" --threshold 0.5
# 保存前 N 个结果
sentrysearch search "something" --save-top 3
# 指定输出目录
sentrysearch search "something" --output-dir ./clips索引参数调整
索引时也可以调整一些参数:
# 调整片段长度(默认 30 秒)
sentrysearch index /path --chunk-duration 60
# 调整重叠时间(默认 5 秒)
sentrysearch index /path --overlap 10
# 不跳过静止画面
sentrysearch index /path --no-skip-still管理索引
# 查看索引信息
sentrysearch stats
# 删除某些视频的索引
sentrysearch remove path/to/video
# 清空整个索引
sentrysearch reset这个工具的应用场景可以很广,简单列几个:
项目还在快速迭代中,作者提到了一些未来的改进方向:
这些功能如果都实现了,这个工具会更加强大。
SentrySearch 向我们证明了一件事:视频内容的可检索性,不应该被锁定在科技巨头的黑盒里。
它用最优雅的方式解决了视频检索这个老大难问题——不需要昂贵的云服务,不需要复杂的标注工作,只需要一个开源工具,你的视频就能被"看懂"。
无论是保护行车安全的车主、管理海量素材的创作者,还是需要快速检索监控的安保人员,这个工具都能带来实实在在的效率提升。
视频,终于像文本一样可以被搜索了。
这是一个小而美的项目,但解决的却是一个大问题。
如果你也有一堆视频素材等着处理,一定要试试这个项目。
GitHub:https://github.com/ssrajadh/sentrysearch
如果本文对您有帮助,也请帮忙点个 赞👍 + 在看 哈!❤️
在看你就赞赞我!