Comment trouver le bon moment dans des gigaoctets de vidéo sans regarder tous les enregistrements
Imaginez ceci : vous avez des enregistrements de caméras de surveillance, des vidéos de dashcam Tesla, ou simplement un mois de vidéos familiales. Vous devez trouver un clip précis — par exemple, quand un camion rouge est passé ou que quelqu'un a couru près de la clôture. Habituellement, cela signifie des heures de navigation fastidieuse. Mais si vous pouviez simplement taper « camion rouge brûlant un feu rouge » et obtenir immédiatement un clip découpé prêt à l'emploi ?
C'est exactement ce que fait le projet sentrysearch. C'est un outil CLI de recherche vidéo sémantique qui comprend ce qui se passe dans l'image sans aucune description textuelle ni étiquetage manuel.
Comment ça fonctionne en interne
Le développeur du projet a choisi d'utiliser des embeddings multimodaux. Auparavant, pour rechercher dans une vidéo, il fallait d'abord la faire passer dans un réseau de neurones pour la détection d'objets, puis dans l'OCR pour le texte, et assembler le tout dans une base de données. Ici, une approche directe est utilisée.
SentrySearch découpe la vidéo en petits morceaux qui se chevauchent (30 secondes par défaut). Chaque fragment est ensuite transformé en vecteur (embedding) en utilisant le modèle Gemini de Google ou le Qwen3-VL local. Ces vecteurs sont stockés dans une base de données ChromaDB locale.
Lorsque vous saisissez une requête de recherche, elle est également convertie en vecteur dans le même espace. Le système recherche les vecteurs vidéo les plus similaires et, s'il trouve une correspondance au-dessus d'un certain seuil, découpe automatiquement le fragment nécessaire en utilisant ffmpeg.
Il est intéressant de noter qu'il n'y a pas d'étape intermédiaire impliquant du texte ici. La requête textuelle « chien qui saute pour attraper une balle » est directement comparée aux caractéristiques visuelles de la vidéo.
Ce que l'outil peut faire
Le projet vous conquiert par sa simplicité et son attention aux détails qui sont généralement oubliés dans les utilitaires similaires.
Exécution locale sans le cloud
Si vous ne souhaitez pas envoyer vos vidéos à Google via l'API Gemini, vous pouvez utiliser un backend local. Le projet prend en charge la famille de modèles Qwen3-VL. L'auteur a envisagé différents scénarios : des machines puissantes avec GPU NVIDIA aux MacBook sur Apple Silicon. Par exemple, sur un Mac avec 24 Go de RAM, vous pouvez exécuter la version 8B, et pour des configurations plus modestes, la version 2B fonctionnera.
Économie intelligente des ressources
L'indexation vidéo est un processus lourd. Pour éviter de gaspiller du temps et de l'argent (dans le cas de l'API), SentrySearch utilise plusieurs astuces :
- Pré-compression : la vidéo est réduite à 480p à 5 images par seconde avant l'envoi au modèle. C'est suffisant pour comprendre ce qui se passe, et la charge diminue considérablement.
- Détection de statisme : si rien ne se passe dans l'image (par exemple, une voiture garée dans un parking vide), le script compare les tailles de hachage des images et saute simplement ces morceaux.
Fonctionnalités pour les propriétaires de Tesla
L'auteur a été clairement inspiré par le mode Sentry de Tesla. L'outil dispose d'un mode séparé --overlay qui extrait les métadonnées des fichiers de dashcam Tesla (vitesse, coordonnées GPS) et les superpose directement sur la vidéo sous forme d'une belle interface HUD. Il peut même effectuer un géocodage inversé via OpenStreetMap pour afficher le nom de la rue où l'incident s'est produit.

Comment commencer
La gestion des dépendances utilise uv, qui devient la norme dans la communauté Python. L'installation est simple :
git clone https://github.com/ssrajadh/sentrysearch.git
cd sentrysearch
uv tool install .
Après cela, vous devez initialiser la configuration et ajouter une clé API (si vous prévoyez d'utiliser Gemini) :
sentrysearch init
Indexer un dossier avec des vidéos :
sentrysearch index /path/to/your/video
Et, en fait, la recherche elle-même :
sentrysearch search "человек в синей куртке подходит к двери"
Est-ce que ça vaut le coup
La question principale lors de l'utilisation d'une API cloud est le prix. L'auteur a calculé que l'indexation d'une heure de vidéo via Gemini coûtera environ 2,84 $. Ce n'est pas une somme négligeable si vous avez des téraoctets d'archives, mais c'est tout à fait acceptable pour revoir rapidement un incident spécifique.
Si vous utilisez un modèle local, vous ne payez qu'avec du temps GPU. Sur NVIDIA RTX 4090, le traitement d'un fragment de 30 secondes ne prend que quelques secondes.
Parmi les inconvénients, je noterais que la qualité de la recherche dépend fortement de l'alignement des limites des morceaux avec les événements clés. Si une action a commencé à la fin d'un fragment et s'est terminée au début d'un autre, le modèle peut « être confus ». Mais le chevauchement résout partiellement ce problème.
SentrySearch est un excellent exemple de la façon dont les LLM modernes et les modèles multimodaux passent de jouets de chatbot à des utilitaires véritablement utiles pour les tâches quotidiennes. Si vous avez déjà dû rechercher manuellement « ce moment exact » dans des enregistrements de caméras, cet outil mérite certainement les 15 minutes de configuration.
Projets similaires