Zo vind je het juiste moment in gigabytes aan video zonder alles te bekijken
Stel je dit voor: je hebt bewakingscamera-beelden, Tesla dashcam-opnames, of gewoon een maand aan thuisvideo's. Je moet een specifiek fragment vinden — bijvoorbeeld wanneer een rode vrachtwagen voorbijreed of iemand langs het hek rende. Meestal betekent dit urenlang vervelend doorspoelen. Maar wat als je gewoon "rode vrachtwagen die door rood rijdt" zou kunnen typen en direct een kant-en-klaar bijgesneden clip zou krijgen?
Dat is precies wat het sentrysearch project doet. Het is een CLI-tool voor semantische videobrowsing die begrijpt wat er in het beeld gebeurt zonder tekstbeschrijvingen of handmatige tagging.
Hoe het intern werkt
De ontwikkelaar koos voor de aanpak met multimodale embeddings. Voorheen moest je om door video te zoeken eerst een neuraal netwerk draaien voor objectdetectie, dan OCR voor tekst, en dat allemaal samenstellen in een database. Hier wordt een directe aanpak gebruikt.
SentrySearch snijdt video in kleine overlappende stukken (30 seconden standaard). Elk zo'n stuk wordt vervolgens omgezet in een vector (embedding) met behulp van Google's Gemini-model of de lokale Qwen3-VL. Deze vectoren worden opgeslagen in een lokale ChromaDB-database.
Wanneer je een zoekquery invoert, wordt deze ook omgezet in een vector in dezelfde ruimte. Het systeem zoekt naar de meest vergelijkbare videovectoren en als het een match vindt boven een bepaalde drempelwaarde, knipt het automatisch het benodigde fragment uit met ffmpeg.
Interessant is dat er geen tussenstap met tekst is. De tekstquery "hond die springt voor een bal" wordt direct vergeleken met de visuele kenmerken van de video.
Wat de tool kan doen
Het project wint je voor met zijn eenvoud en aandacht voor details die meestal worden vergeten in vergelijkbare utilities.
Lokale uitvoering zonder cloud
Als je je video's niet naar Google wilt sturen via de Gemini API, kun je een lokale backend gebruiken. Het project ondersteunt de Qwen3-VL modelfamilie. De auteur heeft verschillende scenario's overwogen: van krachtige machines met NVIDIA GPU tot MacBook met Apple Silicon. Op een Mac met 24 GB RAM kun je bijvoorbeeld de 8B-versie draaien, en voor bescheidener configuraties werkt de 2B-versie.
Slimme resourcebesparing
Video-indexering is een zwaar proces. Om tijd en geld te besparen (in het geval van API), gebruikt SentrySearch verschillende trucs:
- Voorcompressie: video wordt teruggebracht naar 480p bij 5 frames per seconde voordat het naar het model wordt gestuurd. Dit is genoeg om te begrijpen wat er gebeurt, en de belasting daalt aanzienlijk.
- Statisch overslaan: als er niets gebeurt in het beeld (bijvoorbeeld een auto die geparkeerd staat op een lege parkeerplaats), vergelijkt het script frame-hash-groottes en slaat dergelijke stukken gewoon over.
Functies voor Tesla-bezitters
De auteur was duidelijk geïnspireerd door Tesla's Sentry Mode. De tool heeft een aparte modus --overlay die metadata uit Tesla dashcam-bestanden haalt (snelheid, GPS-coördinaten) en deze direct over de video legt als een mooie HUD-interface. Het kan zelfs reverse geocoding via OpenStreetMap uitvoeren om de straatnaam weer te geven waar het incident plaatsvond.

Aan de slag
Voor afhankelijkheidsbeheer wordt uv gebruikt, wat de standaard aan het worden is in de Python-community. Installatie is eenvoudig:
git clone https://github.com/ssrajadh/sentrysearch.git
cd sentrysearch
uv tool install .
Daarna moet je de config initialiseren en een API-sleutel toevoegen (als je Gemini wilt gebruiken):
sentrysearch init
Een map met video's indexeren:
sentrysearch index /path/to/your/video
En eigenlijk de zoekopdracht zelf:
sentrysearch search "человек в синей куртке подходит к двери"
Is het de moeite waard
De belangrijkste vraag bij het gebruik van een cloud API is de prijs. De auteur berekende dat het indexeren van één uur video via Gemini ongeveer $2,84 kost. Dat is geen kleingeld als je terabytes aan archieven hebt, maar het is best acceptabel voor snel een specifiek incident bekijken.
Als je een lokaal model gebruikt, betaal je alleen met GPU-tijd. Op NVIDIA 4090 duurt het verwerken van één 30-seconden chunk slechts een paar seconden.
Van de nadelen zou ik opmerken dat de zoekkwaliteit sterk afhangt van hoe chunk-grenzen samenvallen met belangrijke gebeurtenissen. Als een actie aan het einde van één stuk begon en aan het begin van een ander eindigde, kan het model "in de war raken." Maar de overlap lost dit probleem gedeeltelijk op.
SentrySearch is een goed voorbeeld van hoe moderne LLM's en multimodale modellen evolueren van chatbot-speelgoed naar echt nuttige utilities voor alledaagse taken. Als je ooit handmatig hebt moeten zoeken naar "dat exacte moment" in camera-opnames, is deze tool zeker de moeite waard om 15 minuten aan setup te besteden.
Gerelateerde projecten