在处理大量视频素材时,找到一个特定片段往往需要来回拖动进度条,效率极低。
最近 GitHub 上出现了一个开源项目 SentrySearch(目前已获 2.7K Star),它能让视频搜索变得像 Google 搜索文本一样简单。

视频搜索新方案:SentrySearch 让视频像文本一样可检索
只需要输入一句自然语言描述,比如"有人从左侧逼近"或"红色卡车闯红灯",SentrySearch 就能精准定位到具体时间点,并自动裁剪出对应片段。
核心特性
1. 不依赖字幕,直接"看懂"画面
传统视频搜索方案通常先将语音转成文字再搜索,但遇到无人说话或画面与语音无关的场景就失效了。
SentrySearch 采用多模态嵌入技术,直接将视频片段转换为向量,与文字查询做语义匹配。它能理解画面内容,而不是仅仅搜索字幕。
2. 双模型支持:云端 Gemini + 本地 Qwen3-VL
云端方案(推荐):使用 Google Gemini Embedding API,搜索质量最好,速度也快。需要申请 Gemini API Key。
本地方案(隐私优先):使用 Qwen3-VL 模型,完全本地运行,无需联网,数据绝对隐私。系统会根据硬件自动选择模型:
- 24GB+ 内存的 Mac 或 18GB+ 显存的 NVIDIA 显卡 → 使用 8B 模型
- 配置较低 → 自动使用 2B 模型
3. 特斯拉车主专属功能
对于特斯拉行车记录仪视频,SentrySearch 可以:
- 读取视频中的车速、定位信息
- 将这些信息叠加在裁剪好的视频上
- 显示实时速度、时间、城市和道路名称
苏米注:这个功能对于事故定责场景非常实用,不仅能找到画面,还能看到当时的车速和位置信息。
4. 基于 ChromaDB 的向量存储
使用 ChromaDB 存储视频向量数据,带来以下优势:
- 搜索速度极快,即使处理几十小时的视频素材
- 本地存储,数据安全
- 支持增量更新,可随时添加新视频
技术原理
SentrySearch 的工作流程分为五个步骤:
第一步:视频切片
将视频切成默认 30 秒一段的小片段,段与段之间有 5 秒重叠,避免重要画面被切分。
第二步:预处理优化
在发送给模型前进行优化:
- 分辨率降至 480p
- 帧率降至 5fps
- 检测静止画面,无变化则跳过
这些优化能让处理速度提升几十倍,且几乎不影响搜索质量。
第三步:向量化
使用 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
从 Google AI Studio 免费获取 API Key。
配置(本地方案)
根据硬件选择安装方式:
# 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
适用场景
| 场景 | 应用 |
|---|---|
| 行车记录仪 | 快速查找事故、违章、有趣瞬间 |
| 视频后期 | 从素材库快速定位需要的镜头 |
| 监控录像 | 查找特定事件,如"有人进入后院" |
| 学习资料 | 从网课录像中找知识点讲解片段 |
| Vlog 素材 | 快速找出精彩瞬间 |
未来规划
项目正在快速迭代,计划中的改进包括:
- 更智能的切片方式(基于场景检测)
- 支持更多模型
- 图形界面(目前仅命令行)
- 实时视频流处理
总结
SentrySearch 用优雅的方式解决了视频检索问题——无需昂贵的云服务,无需复杂的标注工作,只需一个开源工具就能让视频被"看懂"。
无论是车主、视频创作者,还是需要检索监控的安保人员,这个工具都能带来实实在在的效率提升。