>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Blockchain Embebidos Seguridad
Python

Cómo encontrar el momento exacto en gigabytes de video sin tener que ver todas las grabaciones

Imagina esto: tienes grabaciones de cámaras de vigilancia, videos del dashcam de Tesla, o simplemente un mes de videos familiares. Necesitas encontrar un clip específico — por ejemplo, cuando un camión rojo pasó o alguien corrió junto a la valla. Por lo general esto significa horas de tedioso rebobinado. ¿Pero qué pasa si simplemente escribes "camión rojo saltándose un semáforo" e inmediatamente obtienes un clip recortado listo para usar?

Eso es exactamente lo que hace el proyecto sentrysearch. Es una herramienta CLI para búsqueda semántica de video que entiende lo que está sucediendo en el cuadro sin descripciones de texto ni etiquetado manual.

Cómo funciona internamente

El desarrollador del proyecto tomó el camino de usar embeddings multimodales. Anteriormente, para buscar en video tenías que primero pasarlo por una red neuronal para detección de objetos, luego por OCR para texto, y ensamblar todo eso en una base de datos. Aquí se usa un enfoque directo.

SentrySearch corta el video en pequeños fragmentos superpuestos (30 segundos por defecto). Cada pieza se convierte entonces en un vector (embedding) usando el modelo Gemini de Google o el Qwen3-VL local. Estos vectores se almacenan en una base de datos ChromaDB local.

Cuando ingresas una consulta de búsqueda, también se convierte en un vector en el mismo espacio. El sistema busca los vectores de video más similares y, si encuentra una coincidencia por encima de un umbral determinado, recorta automáticamente el fragmento necesario usando ffmpeg.

Curiosamente, no hay un paso intermedio que involucre texto aquí. La consulta de texto "perro saltando por una pelota" se compara directamente con las características visuales del video.

Qué puede hacer la herramienta

El proyecto te conquista con su simplicidad y atención a los detalles que usualmente se olvidan en utilidades similares.

Ejecución local sin la nube

Si no quieres enviar tus videos a Google a través de la API de Gemini, puedes usar un backend local. El proyecto soporta la familia de modelos Qwen3-VL. El autor ha considerado diferentes escenarios: desde máquinas potentes con GPU NVIDIA hasta MacBook con Apple Silicon. Por ejemplo, en una Mac con 24 GB de RAM puedes ejecutar la versión 8B, y para configuraciones más modestas funcionará la versión 2B.

Ahorro inteligente de recursos

La indexación de video es un proceso pesado. Para evitar perder tiempo y dinero (en el caso de la API), SentrySearch usa varios trucos:

  • Pre-compresión: el video se reduce a 480p a 5 cuadros por segundo antes de enviarlo al modelo. Esto es suficiente para entender lo que está sucediendo, y la carga disminuye significativamente.
  • Omisión de estáticos: si no está pasando nada en el cuadro (por ejemplo, un auto estacionado en un lote vacío), el script compara los tamaños de hash de los cuadros y simplemente omite esos fragmentos.

Funciones para propietarios de Tesla

El autor claramente se inspiró en el Modo Sentry de Tesla. La herramienta tiene un modo separado --overlay que extrae metadatos de los archivos del dashcam de Tesla (velocidad, coordenadas GPS) y los superpone directamente en el video como una interfaz HUD elegante. Incluso puede hacer geocodificación inversa a través de OpenStreetMap para mostrar el nombre de la calle donde ocurrió el incidente.

tesla overlay

Cómo comenzar

La gestión de dependencias usa uv, que se está convirtiendo en el estándar en la comunidad de Python. La instalación es sencilla:

git clone https://github.com/ssrajadh/sentrysearch.git
cd sentrysearch
uv tool install .

Después de eso, necesitas inicializar la configuración y agregar una clave de API (si planeas usar Gemini):

sentrysearch init

Indexar una carpeta con videos:

sentrysearch index /path/to/your/video

Y, de hecho, la búsqueda en sí:

sentrysearch search "человек в синей куртке подходит к двери"

¿Vale la pena?

La pregunta principal al usar una API en la nube es el precio. El autor calculó que indexar una hora de video a través de Gemini costará aproximadamente $2.84. No es calderilla si tienes terabytes de archivos, pero es bastante aceptable para revisar rápidamente un incidente específico.

Si usas un modelo local, solo pagas con tiempo de GPU. En NVIDIA 4090, procesar un fragmento de 30 segundos toma apenas un par de segundos.

De las desventajas, destacaría que la calidad de la búsqueda depende mucho de cómo se alinean los límites de los fragmentos con los eventos clave. Si una acción comenzó al final de una pieza y terminó al principio de otra, el modelo puede "confundirse". Pero la superposición resuelve parcialmente este problema.

SentrySearch es un gran ejemplo de cómo los LLMs modernos y los modelos multimodales están pasando de ser juguetes de chatbot a utilidades genuinamente útiles para tareas cotidianas. Si alguna vez has tenido que buscar manualmente "ese momento exacto" en grabaciones de cámaras, esta herramienta definitivamente vale la pena dedicarle 15 minutos a la configuración.

Proyectos relacionados