这个项目能做什么

SentrySearch 是一款用于语义视频搜索的命令行工具。它通过处理视频文件来实现检索:首先将视频分割为重叠的片段(默认每段 30 秒,重叠 5 秒),然后使用 Google Gemini Embedding API、阿里云 DashScope 的 Qwen3-VL-Embedding (qwen-cloud) 或本地 Qwen3-VL 模型生成每个片段的嵌入向量,并将这些向量存储在本地 ChromaDB 数据库中。用户随后可以使用自然语言查询或参考图片进行搜索,以获取匹配的视频片段,系统会自动从原始文件中裁剪这些片段并将其保存为剪辑。 主要特性包括: - 基于文本和图像的语义视频搜索 - 多种嵌入后端:Gemini API(默认)、Qwen Cloud (DashScope) 以及本地 Qwen3-VL(8B 或 2B 变体,可选 4-bit 量化) - 自动检测硬件以选择本地模型(NVIDIA GPU 显存 ≥18GB 或 Apple Silicon 内存 ≥24GB 时选用 qwen8b;较小配置则选用 qwen2b) - 预处理流程:在嵌入前通过 ffmpeg 将片段降采样至 480p @ 5fps,从而减少负载大小和推理时间 - 跳过静止帧以避免对视觉静态片段进行嵌入 - 置信度阈值过滤,并可选用 VLM 重新排序(云端后端使用 Gemini 2.5 Flash,本地使用 Qwen3-VL Instruct) - 通过余弦相似度上限去除近似重复结果 - 高光模式,用于筛选统计异常片段(采用 knn、centroid 或 LOF 方法) - 在裁剪后的片段上叠加特斯拉行车记录仪元数据(速度、GPS、反向地理编码) - 与 SentryMerge(多摄像头事件拼接)和 SentryBlur(人脸/车牌/提示词脱敏)集成 - 失败片段的死信队列及重试功能 - 索引管理命令(状态查看 stats、移除 remove、重置 reset) 安装需使用 uv(要求 Python 3.11/3.12)。本地后端在 macOS 上需要 ffmpeg,在 NVIDIA 设备上需要带 CUDA 支持的 PyTorch。不同后端/模型的嵌入隔离在不同的索引中。Gemini 后端的成本约为每小时素材 $2.84(默认设置)。DashScope 按模态每 1k 输入 token 计费。本地后端完全离线运行,无 API 费用。 该工具专为行车记录仪/安全监控素材工作流设计,但也适用于任何视频文件。输出为标准 MP4 剪辑,可在任意播放器中播放。