Cómo configurar una cámara web con detección de movimiento en Ubuntu

Motion es una herramienta útil que puede convertir tu cámara web regular en una cámara de vigilancia. Hace esto monitoreando la señal de tu cámara web y tomando capturas de pantalla y videos cuando detecta movimiento. Aquí, te mostramos cómo instalar Motion y configurar una cámara web con detección de movimiento en Ubuntu Linux.
Tabla de Contenidos
- Instalación del servidor Motion
- Configuración de Motion para tu sistema
- Cambio de la ubicación de guardado predeterminada
- Ajuste de la configuración de detección en Motion
- Habilitación de la interfaz web de Motion
- Gestión de las capturas guardadas de forma remota
- Inicio y prueba del servidor Motion
Instalación del servidor Motion
Motion está incluido por defecto en el repositorio oficial de Ubuntu. Esto significa que puedes instalar este programa a través de tu gestor de paquetes apt:
sudo apt install motion v4l-utilsNota: Aunque estamos tratando con Ubuntu en este artículo, Motion funcionará para la mayoría de las distribuciones de Linux también.
Confirma que tu servidor Motion está funcionando correctamente abriendo el aviso de ayuda del programa:
motion -hConfiguración de Motion para tu sistema
Antes de comenzar a configurar Motion, necesitamos copiar el archivo de configuración a nuestra carpeta de inicio para que tengamos una copia de seguridad limpia del original. Abre una terminal y copia el archivo de configuración a tu carpeta de inicio:
cp/etc/motion/motion.conf ~/motion.conf.backupAbre el archivo de configuración original usando tu editor de texto favorito:
sudonano/etc/motion/motion.confUno de los ajustes más fáciles que puedes hacer para tu servidor Motion es cambiar la calidad de su salida de imagen y video. Por defecto, el servidor establece su resolución en 640×480, lo que puede ser demasiado pequeño para cámaras web modernas.
Para cambiar esto, ejecuta el siguiente comando en una nueva sesión de terminal para verificar las resoluciones disponibles para tu cámara:
sudo v4l2-ctl -d/dev/video0 --list-formats-ext
Regresa a tu configuración de Motion, desplázate hacia abajo hasta la categoría “Procesamiento de imágenes”, luego busca las variables width y height.

Proporciona los valores apropiados para la resolución que deseas. En mi caso, quiero ejecutar Motion en 1280×720, así que escribo “1280” como mi ancho y “720” como mi altura.

Establece el valor de framerate en la tasa de cuadros que deseas capturar tus videos. Por defecto, esto está configurado en “15”, pero puedes reducirlo para ahorrar espacio en disco.

Desplázate hacia abajo hasta la categoría “Salida de imagen”, luego establece el valor de la variable picture_output en “on”. Esto permitirá que Motion capture tanto imágenes como videos de tu cámara web.

Cambio de la ubicación de guardado predeterminada
Otro ajuste que puedes hacer para tu servidor Motion es cambiar dónde guarda sus datos. Esto puede ser útil si deseas exportar tus videos e imágenes capturados a un directorio remoto montado o a un servicio de almacenamiento en la nube como Dropbox.
Para comenzar, navega o crea el directorio donde deseas guardar tus datos:
sudomkdir/motion/dataEstablece la propiedad de tu directorio en “motion:adm”:
sudochown-R motion:adm /motion/dataAsegúrate de que toda la ruta a tu directorio sea legible por todos los usuarios:
sudochmod-R755/motion/dataRegresa a tu configuración de Motion, busca la variable target_dir, luego establece su valor en la ruta completa de tu directorio.

Ajuste de la configuración de detección en Motion
Motion funciona observando la diferencia entre la transmisión de video actual y la que fue justo antes. Si el programa encuentra suficiente diferencia entre las dos, lo clasifica como “movimiento” y graba un video del evento.
Actualmente, Motion asume que una diferencia de 1500 píxeles es suficiente para clasificar como “movimiento”. Aunque esto facilita la detección de movimiento para la mayoría de las cámaras web, puede ser demasiado sensible para cámaras de mayor resolución.
Para reducir esto, ve a la categoría “Detección de movimiento”, luego aumenta el valor de la variable threshold. Encuentro que 5500 píxeles es suficiente para evitar que Motion grabe movimientos pequeños innecesarios de la transmisión de la cámara web.

También puedes agregar la variable threshold_maximum para establecer un límite en la diferencia que Motion considera como “movimiento”. Esto es útil si tu cámara web observa un área concurrida y solo deseas que funcione cuando hay menos actividad.
Si no estás seguro de los valores de threshold y threshold_maximum para tu cámara web, puedes dejar que Motion los ajuste por ti. Para eso, agrega la variable threshold_tune y configúrala en “on”.

Por último, puedes configurar Motion para que también grabe los momentos antes y después de detectar movimiento. Para hacer eso, ve a las variables pre_capture y post_capture y establece sus valores en la cantidad de cuadros adicionales que deseas guardar.

Habilitación de la interfaz web de Motion
El servidor Motion viene con una interfaz web que te permite monitorear tu cámara web de forma remota. Para habilitar esto, ve a la sección “Webcontrol” de la configuración, luego establece el valor de la variable webcontrol_localhost en “off”.
Desplázate hacia abajo hasta la sección “Transmisión en vivo”, luego establece el valor de stream_localhost en “off”.

Nota: Motion no tiene ninguna verificación de autenticación para su interfaz web. Como tal, cualquier persona que conozca la dirección de tu servidor Motion puede ver tu cámara web y controlar el servicio.
Gestión de las capturas guardadas de forma remota
Como mencioné anteriormente, la mejor manera es guardar las imágenes en tu carpeta de Dropbox para que puedas acceder a ellas donde quieras. Sin embargo, si prefieres que las imágenes se suban a tu propio servidor de archivos (a través de FTP), puedes usar el comando wput para subir las imágenes:
sudo apt install wputAbre la configuración de tu servidor Motion, luego inserta las siguientes líneas de código al final del archivo:
on_picture_save wput ftp://TU-NOMBRE-DE-USUARIO:TU-CONTRASEÑA@DIRECCIÓN-DE-TU-SERVIDOR %f
on_movie_end wput ftp://TU-NOMBRE-DE-USUARIO:TU-CONTRASEÑA@DIRECCIÓN-DE-TU-SERVIDOR %f
Inicio y prueba del servidor Motion
Asegúrate de guardar tu archivo de configuración de Motion, luego ejecuta el siguiente comando para iniciar el servidor:
sudo systemctl enable--now motion.serviceConfirma que el servidor está funcionando correctamente abriendo un navegador web y navegando a la dirección IP de tu máquina seguida de “:8080.”

Esto abrirá una página web que muestra la transmisión de video actual de tu cámara web junto con un menú que contiene acciones adicionales para tu servidor. Por ejemplo, puedes hacer clic en Acción -> Captura para capturar una imagen fija de tu cámara web.

Prueba si Motion detecta y graba movimiento de tu cámara web pasando un objeto frente a tu cámara y revisando el contenido de tu directorio target_dir.

También hay una transmisión en vivo que puedes abrir desde tu reproductor de medios o navegador web. Para acceder a esto, navega a la dirección IP de tu máquina seguida de “:8081.”

Convertir tu cámara web regular en un sistema de detección de movimiento es solo una de las cosas que puedes hacer con cámaras en Linux. Aprende más sobre algunas de las mejores aplicaciones de cámaras web para Linux que puedes instalar y probar hoy.
Crédito de la imagen: Bermix Studio a través de Unsplash. Todas las alteraciones y capturas de pantalla por Ramces Red.