Si tienes una o varias cámaras IP en tu hogar, estamos seguros que usas la aplicación oficial de la marca, la cual funciona a través del Cloud o nube de la marca. ¿Qué pasaría si la nube de la marca o se te cae la conexión a Internet? Normalmente las cámaras tienen ranuras para tarjetas micro SD donde podemos almacenar los clips de vídeo cuando se detecta un movimiento, pero si quieres tener todo centralizado, necesitarás un NVR (Network Video Recorder). Frigate es un NVR por software que permite centralizar la visualización de todas las cámaras, e incluso podemos configurar detección de movimiento y de personas. Hoy en RedesZone os vamos a explicar cómo instalar y configurar Frigate en tu router router ASUS ROG Rapture GT-BE19000AI usando Docker.
Frigate es uno de los softwares gratuitos más populares para montarte tu propio sistema de videovigilancia, todo local y sin que necesites una conexión a Internet, ya que toda la visualización y grabación se hace a través de la red local. El único requisito que necesitaremos para usar este software, es que la cámara IP soporte el protocolo RTSP para enviar la imagen, o bien ONVIF para poder controlar las cámaras motorizadas directamente desde Frigate. Las posibilidades de este sistema son muy amplias, de hecho, lo más habitual es integrar este sistema en Home Assistant para realizar automatizaciones como avisarnos por Telegram, encender o apagar las luces de la habitación, o simplemente para ejecutar otras acciones.
Aunque Frigate es un software muy potente, debes tener presente que este software consume muchos recursos de procesador y RAM. El router ASUS GT-BE19000AI dispone de una NPU que es Quad-Core a 2.1GHz de velocidad, 4GB de RAM y 32GB de almacenamiento, todo ello está compartido con el resto de contenedores Docker que tengamos instalados y funcionando. En nuestras pruebas con Frigate, hemos comprobado que una cámara IP con resolución Full HD sin detección de movimiento hará que tengamos un uso de CPU de entre un 20% y 30% de uso, sin embargo, en cuanto añadimos detección de movimiento el consumo de procesador aumenta hasta el 70% aproximadamente.
Instalación de Frigate con Docker
Lo primero que debemos hacer es irnos a «AI Board«, nos vamos a «Gestión de Docker / Controlar e implementar«, y pinchamos en «Instalar». Este proceso es totalmente necesario, lo que hará será instalar el servicio de Docker y también el contenedor de Portainer. Portainer es el gestor de Dockers más popular, nos permitirá crear, eliminar, y administrar los contenedores que tengamos, así como ver sus registros internos y mucho más. Es totalmente necesario que instalemos esto, antes de instalar Frigate.
En la zona inferior del menú es donde podemos ver el nombre del host, podemos buscar actualizaciones de firmware y también restaurar a valores de fábrica todo el sistema de Docker. La restauración de todo Docker llevará un tiempo de unos 30 minutos aproximadamente. También tenemos el botón de reiniciar, para solamente reiniciar todos los contenedores y el sistema de contenedores.
Para instalar Frigate, simplemente debemos pinchar en el botón de «Instalar» y esperar unos segundos, cuando esté listo, tendremos que entrar en Portainer para obtener la contraseña predeterminada que nos creará.
Antes de entrar en Frigate, es totalmente necesario que entre en Portainer. Si es la primera vez que entras, verás un asistente de configuración donde tenemos que introducir el nombre de usuario «admin» y la contraseña que quieras, una vez que hayas terminado, tienes que pinchar en «Get Started» y ya estarás listo para administrar todos los contenedores, incluyendo el de Frigate.
En el menú principal de Portainer debemos pinchar en «Local«, y después en «Containers» buscamos el contenedor «formal-frigate-asus» que es el contenedor de Frigate que se ha instalado a través del menú AI Board del firmware ASUSWRT del router. Si entramos en el contenedor, podemos ver su estado, algunos controles para gestionarlo, e incluso podemos pinchar en «Recreate» para bajar una nueva imagen más actualizada, o bien en «Duplicate/Edit» que es donde podemos editar ciertas configuraciones.
Desde el menú de gestión del contenedor de Frigate, debemos pinchar en el botón de «Logs» para ver los registros. Si lees atentamente todos los registros de Frigate, podrás ver que hay una sección donde indica «Auth is enabled» y justo debajo está el nombre de usuario «admin» y la contraseña generada aleatoriamente para proteger nuestra seguridad. Esta contraseña es la que deberás usar para entrar en modo administrador y empezar a configurarlo.
En estos momentos, ya estamos listos para entrar en la configuración de Frigate, y así poder ir añadiendo diferentes cámaras IP para tener una videovigilancia centralizada.
Configuración para añadir cámaras
Lo primero que debemos hacer para añadir las cámaras IP que tengamos en casa, es entrar en Frigate. El nombre de usuario es «admin» y la contraseña es la que viste anteriormente en Portainer, una vez introducido las credenciales, pinchamos en «Login».
En el botón de «Ajustes / Config Editor» es donde podrás configurar Frigate, se hace a través de un archivo de configuración en formato Yaml, por lo que tendrás que copiar un determinado código. De forma predeterminada, Frigate ya viene con una configuración básica donde te indicará qué es lo que debes configurar.
En este ejemplo hemos utilizado una cámara IP TP-Link Tapo C545D, un modelo que soporta RTSP y ONVIF pero que debemos habilitarlo específicamente en la aplicación de Tapo. Es muy importante que mires bien si tu cámara IP soporta estos protocolos, y de ser así, que mires en la app de tu cámara si puedes habilitarlo, o si ya viene habilitado de forma predeterminada. Los pasos para habilitar RTSP en TP-Link Tapo es el siguiente:
- Abrimos la aplicación y nos vamos a la cámara a configurar.
- Pinchamos en «Ajustes», que es el icono del engranaje de la parte superior derecha.
- Pulsamos en «Opciones avanzadas», ahora buscamos «Cuenta de la cámara», y ahí es donde deberás crear el nombre de usuario y contraseña robusto.
Una vez hecho esto, aplicamos cambios y ya tendremos RTSP habilitado en la cámara IP de videovigilancia. No uses las credenciales de tu cuenta de Tapo por motivos de seguridad.
En nuestro caso, la ruta del vídeo es la siguiente:
- rtsp://admin123:admin123@192.168.50.229:554/stream1
Por supuesto, las credenciales «admin123» son de ejemplo, es obligatorio que pongas unas credenciales (usuario y contraseña) que sean robustas, para evitar que cualquiera que esté en la red local conectado, pueda visualizar las cámaras. No obstante, este acceso solamente es local, así que es completamente necesario que esa persona esté conectado a la red local (por Wi-Fi o clave), ya que estas credenciales no viajan a través de Internet.
La sintaxis en todas las cámaras es igual, tienes que poner lo siguiente:
- rtsp://USUARIO:CLAVE@IP_camara:puerto/stream1
Localizar la ruta del stream es un paso clave. Aunque varía por fabricante, la mayoría sigue un formato estándar terminado en «stream1» o similar. Para las cámaras más populares, puedes encontrar la ruta correcta en la web oficial del fabricante, ya que normalmente publican tutoriales para ello.
El código completo que nosotros hemos configurado en Frigate es el siguiente:
mqtt:
enabled: false
detectors:
cpu1:
type: cpu
cameras:
TP-Link_Tapo_C545D:
enabled: true
ffmpeg:
inputs:
- path: rtsp://admin123:admin123@192.168.50.229:554/stream1
roles:
- detect
detect:
enabled: true
width: 1280
height: 720
objects:
track:
- person
record:
enabled: true
version: 0.15-1
Como podéis ver, hemos habilitado tanto RTSP, como también el sistema de detección de movimiento y la detección y seguimiento de personas. Es decir, tenemos bastantes funcionalidades habilitadas. A continuación, podéis ver una captura de pantalla de esta misma configuración para que lo tengáis igual en vuestro sistema:
Frigate es un sistema de videovigilancia bastante profesional, os recomendamos visitar la documentación oficial de Frigate donde encontraréis todas las opciones y posibilidades que tenemos disponibles.
Una vez configurada la cámara, debemos pinchar en «Save Only» para guardar los cambios, si hay algún error nos lo indicará para luego corregirlo. Si pinchamos en «Save & Restart» el sistema guardará la configuración y se reiniciará para verlo directamente en el menú principal. A continuación, podéis ver tanto una miniatura de la cámara IP, como también los eventos de grabación por detección de movimiento que hemo tenido. Otra opción es visualizar en pantalla completa esta cámara IP.
Si nos vamos a la sección de consumo de recursos, vamos a ver el consumo del procesador que se dispara en cuanto añadimos la cámara IP de videovigilancia, y más aún si añadimos la detección de movimiento y personas. Por supuesto, también aumentará el consumo de memoria RAM. Es muy importante vigilar el consumo de procesador porque es lo que más usará, además, este uso de procesador está compartido con el resto de contenedores que tengamos instalados en el router.
En cuanto a la memoria interna, tenemos los 32GB de almacenamiento interno compartido entre los diferentes contenedores. Aquí es donde se almacenarán los clips de video que grabe el sistema de videovigilancia, así que deberás tener cuidado de no ocupar todo el espacio.
Finalmente, también podemos ver los frames y las detecciones que ha realizado, además, podemos ver el consumo de CPU respecto al vídeo con ffmpeg, la captura y la detección. De esta forma, podemos tener una visión global de lo que está consumiendo esta cámara, y también el resto que podemos añadir.
Tal y como habéis visto, gracias a Frigate vamos a poder añadir un sistema de videovigilancia directamente en nuestro router. Para un uso básico nos servirá perfectamente, y como máximo hasta 2 cámaras simultáneamente, porque para un uso algo más avanzado necesitarás un hardware dedicado, ya que este software consume muchos recursos del sistema, y eso también afecta al resto de contenedores de Docker instalados. Hay algunas opciones para bajar este consumo de CPU del que os hemos hablado:
| Método | Eficacia estimada | Complejidad | Coste | Recomendación |
|---|---|---|---|---|
| Acelerador Google Coral TPU (USB) | Reducción del 70-80% de CPU | Media (requiere configuración de drivers) | Entre 60-70€ | La mejor opción para 2 o más cámaras con detección IA. |
| Aceleración por GPU (VAAPI/QSV) | Reducción del 40-50% de CPU | Alta (depende del hardware del host) | Si el hardware ya lo tiene es gratis. | No aplicable en este router, pero sí en un mini-PC. |
| Optimizar resolución de detección | Reducción del 20-30% de CPU | Baja (ajuste en config.yaml) | Gratis | Configurar una resolución de detección más baja (ej. 640x480) que el stream principal. |
| Reducir FPS de detección | Reducción del 10-20% de CPU | Baja (ajuste en config.yaml) | Gratis | Bajar los fotogramas por segundo para la detección a 5 FPS es suficiente para la mayoría de casos. |
Como podéis ver, en el caso del router de ASUS, las dos opciones que puedes llevar a cabo son la de optimizar la resolución de detección, y reducir los FPS de detección. Ambas opciones se pueden configurar simultáneamente y así reducir el uso de procesador.
Solución de problemas comunes
Cuando usamos un sistema como Frigate, es posible que nos encontremos ciertos problemas que son muy comunes, y tienen una solución bastante fácil. A continuación, os explicamos los principales problemas y cómo solucionarlos.
No arranca por un error en la sintaxis YAML
Problema: Si has configurado el fichero de configuración en YAML correctamente, y al guardar devuelve un error y no arranca el sistema de videovigilancia.
Solución: El error más común es la indentación. Utiliza siempre espacios, no tabuladores. También es recomendable que valides todo el fichero en un validador online como YAMLLint, aunque existen muchos otros que tienen la misma función.
No se ve la imagen de la cámara
Problema: Si has configurado el fichero de configuración en YAML con la ruta de RTSP, y no te funciona, la cámara no se visualiza en el sistema de videovigilancia.
Solución: El error más común es que no hemos puesto bien las credenciales de la cámara, o bien la ruta del «stream» de dicha cámara. Revisa la documentación oficial para comprobar que todo está correcto, y también asegúrate de que tu cámara soporta RTSP y está activada. Puedes comprobar fácilmente si funciona el RTSP usando el popular reproductor de vídeo de VLC, solamente debes irte a «Medio / Abrir ubicación de red» y ahí pones la ruta entera de RTSP y debería abrirte la imagen de la cámara IP.
El almacenamiento se llena muy rápido
Problema: Este router tiene un almacenamiento de tan solo 32GB, aunque útiles son 22GB para Frigate. Por lo que es posible que tengas problemas de espacio si vas a guardar clips de vídeo en local. Si has configurado el fichero de configuración en YAML con la ruta de RTSP, y no te funciona, la cámara no se visualiza en el sistema de videovigilancia.
Solución: Añade estas líneas a tu archivo de configuración para que Frigate borre automáticamente las grabaciones antiguas. Record: retain_days: 7. Debes identar correctamente para cumplir con la sintaxis YAML.
Tal y como podéis ver, los principales problemas que nos encontraremos tienen una solución bastante sencilla, también puedes acceder a la web oficial donde encontraréis guías y tutoriales para resolver los habituales problemas.
