
Semantische Suche über Videos mit Gemini Embedding 2 oder Qwen3-VL.
Semantische Suche über Videomaterial. Gib ein, wonach du suchst, und erhalte einen zugeschnittenen Clip zurück.
[!IMPORTANT] Offizielle Quelle: github.com/ssrajadh/sentrysearch ist die einzige offizielle Heimat von SentrySearch. Andere Websites, die dieses Projekt erneut veröffentlichen oder spiegeln, sind nicht mit dem Maintainer verbunden und werden von ihm nicht unterstützt. Lade es immer aus diesem Repository herunter.
Sprachen: Englisch · 简体中文
Neu: MLX-Backend für Apple Silicon: führt das lokale 2B-Modell doppelt so schnell mit weniger als der Hälfte des Speichers aus, bei gleicher Genauigkeit
SentrySearch teilt deine Videos in überlappende Chunks auf, bettet jeden Chunk als Video mithilfe der Gemini Embedding API von Google, Alibaba DashScope (qwen-cloud) oder eines lokalen Qwen3-VL-Modells ein und speichert die Vektoren in einer lokalen ChromaDB-Datenbank. Wenn du suchst, wird deine Textabfrage (oder ein Bild, siehe Suche per Bild) in denselben Vektorraum eingebettet und mit den gespeicherten Video-Einbettungen abgeglichen. Der beste Treffer wird automatisch aus der Originaldatei zugeschnitten und als Clip gespeichert.
macOS/Linux:```bash curl -LsSf https://astral.sh/uv/install.sh | sh
**Windows:**```powershell
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
> **Erfordert Python 3.11 oder 3.12** (PyTorch-Wheels unterstützen noch kein 3.13+). Wenn dein Standard-Python neuer ist, installiere ein verwaltetes 3.12 und pinne die Tool-Installation:
> ```bash
> uv python install 3.12
> uv tool install --python 3.12 .
> ```
3. Richte deinen API-Schlüssel ein (oder [verwende stattdessen ein lokales Modell](#local-backend-no-api-key-needed)) — **nur für das standardmäßige Gemini-Backend erforderlich**; überspringe dies, wenn du `--backend local`, `--backend mlx` oder `--backend qwen-cloud` mit `DASHSCOPE_API_KEY` in `.env` verwendest.```bash
sentrysearch init
Dies fordert Ihren Gemini-API-Schlüssel an, schreibt ihn in .env und validiert ihn mit einem Test-Embedding.
5. Suche:```bash
sentrysearch search "red truck running a stop sign"
ffmpeg ist für das Aufteilen und Zuschneiden von Videos erforderlich. Wenn es nicht systemweit verfügbar ist, wird das mitgelieferte imageio-ffmpeg automatisch verwendet.
Manuelle Einrichtung: Wenn du
sentrysearch initnicht verwenden möchtest, kannst du.env.examplenach.envkopieren und deinen Schlüssel von aistudio.google.com/apikey manuell hinzufügen.
$ sentrysearch init
Enter your Gemini API key (get one at https://aistudio.google.com/apikey): ****
Validating API key...
Setup complete. You're ready to go — run sentrysearch index <directory> to get started.
Wenn bereits ein Schlüssel konfiguriert ist, wirst du gefragt, ob er überschrieben werden soll.
> **Tipp:** Lege ein Ausgabenlimit unter [aistudio.google.com/billing](https://aistudio.google.com/billing) fest, um versehentliche Überausgaben zu verhindern.
### Footage indexieren```bash
$ sentrysearch index /path/to/video/footage
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.
Optionen:
--chunk-duration 30 — Sekunden pro Chunk--overlap 5 — Überlappung zwischen Chunks--no-preprocess — Downscaling/Framerate-Reduzierung überspringen (Roh-Chunks senden)--target-resolution 480 — Zielhöhe in Pixeln für die Vorverarbeitung--target-fps 5 — Ziel-Framerate für die Vorverarbeitung--no-skip-still — alle Chunks einbetten, auch solche ohne visuelle Änderung--rpm 10 — Anfragen pro Minute an die Cloud-API begrenzen (Details unten)--backend local — ein lokales Modell anstelle von Gemini verwenden (Details unten)--backend mlx — das lokale Modell über MLX auf Apple Silicon verwenden, schneller und leichter als local (Details unten)$ sentrysearch search "red truck running a stop sign" #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
Wenn der Ähnlichkeitswert des besten Ergebnisses unter dem Konfidenzschwellenwert liegt (Standard 0.41, oder 0.35 bei `--backend mlx`), wirst du vor dem Trimmen dazu aufgefordert:```
No confident match found (best score: 0.28). Show results anyway? [y/N]:
Mit --no-trim werden Ergebnisse mit geringer Konfidenz mit einem Hinweis anstelle einer Eingabeaufforderung angezeigt.
Optionen: --results N, --output-dir DIR, --no-trim zum Überspringen des automatischen Zuschneidens, --threshold 0.5 zum Anpassen des Konfidenz-Schwellenwerts, --save-top N zum Speichern der obersten N Clips anstelle nur der besten Übereinstimmung, --dedupe zum Festlegen, wie ähnlich ein Ergebnis einer höher eingestuften Auswahl sein darf, bevor es verworfen wird (standardmäßig aktiviert, damit überlappende Ausschnitte desselben Moments nicht die Liste füllen), und --rerank, um ein VLM zu bitten, die zurückgegebenen Kandidaten vor dem Zuschneiden neu zu ordnen. Backend und Modell werden automatisch aus dem Index erkannt — übergeben Sie --backend oder --model nur, um dies zu überschreiben.```bash
sentrysearch search "red truck" --save-top 5 --dedupe 0.95