Video vigilancia con Software Libre, motionEyeOS + Raspberry Pi

Hola a todos, hoy les traigo una solución para asegurar su casa, negocio, etc. Se trata de montar tu propio sistema de video vigilancia con pocos recursos y software libre usando motionEyeOS. Cualquiera dirá ¿bueno y yo para qué quiero esto? si un NVR me resuelve, es cierto, pero ya verán que con equipos que a veces tenemos en casa tirados sin uso, logramos un buen resultado. A continuación pasamos lista de los recursos a usar:

  • Raspberry Pi 3B (lista de dispositivos soportados)

  • Imagen de motionEyeOS (Usar la que corresponda a su dispositivo)

  • Tarjeta SD (se recomienda que sea una de 32GB para poder guardar los videos o fotos, en este caso usare una de 4GB pues todo se guardara en el NAS)

  • Un Switch, Router Wifi, etc.(recomiendo conectar el RPi directo a la red cableada, pues por Wifi tiende a ser lento)

  • NAS (para este tutorial se uso el LaCie CloudBox, también si no tiene un NAS use una PC con el servicio Samba)

  • Cámaras (pueden ser network-IP, USB, un móvil con Droidcam, etc.)

Teniendo todos los recursos listos empezamos.

  1. Para instalar el motionEyeOS en la RPi tenemos 2 maneras en Linux, la primera es usar el script que nos proporcionan en la wiki de la siguiente manera:

    ./writeimage.sh -d /dev/mmcblk0 -i "/path/to/motioneyeos.img"

    donde /dev/mmcblk0 es la sdcard.

    La otra opción es usar balenaEtcher(opción valida para Windows), aunque recomiendo usar el script ya que puedes configurar previamente opciones tales como que use IP estática o DHCP y en caso de utilizar un entorno Wifi, el nombre y contraseña de esta.

    Yo use el script con la siguiente linea:

    sudo ./writeimage.sh -d /dev/mmcblk0 -i "motioneyeos-raspberrypi3-20200203.img" -s "10.0.0.251/24:10.0.0.1:10.0.0.1"

    fíjenseWord en la configuración de la red, lo cual se describe como «IP/Mascara:PuertaDeEnlace:DNS».

    Una vez listo esto ya podemos proceder a conectar nuestra RPi y acceder al IP que se haya utilizado y veremos el login:

    los usuarios a usar son admin para administrar y configurar el dispositivo, y user solamente para visualizar las cámaras que ya se han agregado. Por defecto ambos usuarios vienen sin contraseña, las cuales debemos cambiar.

    Un ultimo detalle antes de pasar al próximo paso debemos hacer ssh(user root sin password) a la RPi y ajustar la fecha y hora, debido a que haciendo pruebas me percate que originalmente tiene puesto como año 1970. En la wiki de motionEyeOS existe una solución al problema en la sección de Tweaks, pues al reiniciar tenia que volver a poner la fecha y hora, si tienes un ntp server lo pones a actualizar con este.

  2. Agregar las cámaras a motionEyeOS.

    Una vez que tenemos el RPi funcionando pasamos a agregar las cámaras, esto puede ser a través de los puertos USB de la misma o cámaras que estén en la red, ya sean Cámaras-IP originales o móviles que tengamos en desuso al cual le podemos instalar DroidCam).

    Agregar una cámara USB, en este caso usaremos una webcam de laptop recuperada y convertida a usb-cam, presionamos en el cartel You have not configured any camera yet. Click here to add one… y saldrá lo siguiente:

    en este caso usaremos el tipo Local V42L Camera y la cámara sera una HP Webcam y nos aparecerá la cámara en pantalla más la opciones las cuales usaremos luego.Ahora veremos como es el caso de agregar una cámara por la red, en este caso usare mi móvil con la aplicación DroidCam(IPWebcam lo probé y no funciona), repetimos el mismo procedimiento:en este caso elegimos como tipo Network Camera, nos pedirá una URL donde ponemos la que nos proporciona el DroidCam, realmente nos muestra dos direcciones, pero solo nos funciona la que diga http://ip:port/video, una ves seleccionada la cámara MJPEG Network Camera nos aparecerá la cámara en pantalla y sus opciones.

  3. Bueno ya tenemos listo nuestro sistema y las cámaras agregadas pero, ¿donde y como se guardan las grabaciones?, por defecto estas son guardadas en la SD y solo si en las opciones le dices que lo haga, mientras tanto ves solo video.

    Para esto primero debemos ir a las opciones de la cámara y pararnos en File Storage donde seleccionamos y configuramos el Storage Devices quedaría de la siguiente manera usando en mi caso el NAS + Samba (motionEyeOS no permite a través de la web otro tipo de almacenamiento por red que no sea SMB):Segundo debemos ir a la opción Movies activarla y decirle como queremos que sea el nombre del archivo, el formato, la calidad, la forma de grabación (video continuo o solo grabar si detecta movimiento), la duración máxima de un video y por ultimo el tiempo que deseamos guardar estos archivos, a mi me queda así:Una vez hecho esto usted puede acceder a su carpeta compartida y ver que ya motionEyeOS empezara a guardar los videos de la cámara que configuro, así repite con las demás sucesivamente.

    Igual si desea buscar videos desde motionEyeOS pasa el cursor del mouse encima de la cámara y le da al icono de reproducir e inmediatamente le arriba esta ventana:

    aquí usted puede descargar o eliminar el video que desee.

    En las opciones de las cámaras existen mas funcionalidades, algunas son:

    • En ves de grabar videos, tome fotos o ambas.

    • Hacer streaming de video.

    • Cambiar las opciones de detección de movimiento.

    • Enviar una notificación por correo o simplemente correr un comando cuando detecta algún movimiento.

    • También soporta programar el equipo para que detecte y grabe solamente movimiento en cierto horario con la opción Working Schedule.

Espero que les sea de gran utilidad esta solución, esta claro que no se tocaron a fondo muchas de las opciones que incluye, aunque con estas básicas ya puedes dormir tranquilo. También es cierto que existen otras soluciones como Home Assistant, pero esta ultima incluye más soluciones ligadas a la domótica ya hablaremos de ello en otro articulo.

¿De cuánta utilidad te ha parecido este contenido?

Arian López Delgado

Sysadmin freelance, usuario de GNU/Linux desde 2009

Ver comentarios

  • Muchas gracias por tu artículo y trabajo Arian! Una pregunta, como podría dejar montado el sistema sin la necesidad de estar conectado a la red? Sería posible activarlo y desactivarlo a través del teléfono móvil y que fuera autónomo si necesidad de la red?
    Gracias y un saludo.

Compartir
Publicado por
Arian López Delgado

Entradas recientes

Alta disponibilidad de sus base de datos con Percona XtraDB Cluster en Kubernetes

Uno de los grandes retos al que nos podemos enfrentar cuando una aplicación crece, es…

9 meses hace

Home automation (Parte 3) – ESPHome

Qué es lo que deseo hacer en este capítulo? Básicamente un sonoff, quiero encender/apagar las…

1 año hace

Home automation (Parte 2) – Home Assistant

Hace algunos meses estoy escuchando hablar del proyecto Home Assistant (HA). En palabras literales del…

1 año hace

Home automation (Parte 1)

Desde hace varios meses vengo con la idea de automatizar la casa donde vivo. Poco…

1 año hace

Cocinando una imagen personalizada de OpenWRT

El artículo describe el uso para un caso particular de OpenWRT y la creación de…

1 año hace