Sistema de vigilancia básico sobre Linux
Este es un tip bastante sencillo con el que he logrado configurar un sistema de vigilancia básico, el cual usando una cámara detectará el movimiento. Y digo bastante sencillo porque no es necesario tener muchos conocimientos, puesto que todo lo hace un programa llamado motion.
Se encuentra en los repositorios de Debian y Ubuntu o incluso Arch, por lo que su instalación se reduce a un simple:
# aptitude install motion
# en Arch Linux
# pacman -S motion
Luego de ello, lo único que nos queda es configurar el programa usando el archivo /etc/motion/motion.conf. Los valores importantes dentro de este archivo son:
- videodevice: por lo general es /dev/video0, y corresponde al dispositivo de video (cámara) con el que deseemos grabar. Ten en cuenta que si usas FreeBSD será /dev/bktr0.
- width y height: son la anchura y altura de las imágenes, respectivamente.
- threshold: motion funciona detectando que tantos píxeles cambiaron entre la imagen recién tomada y la anterior. El valor threshold determina el número de píxeles que deben cambiar para que motion dispare un evento de detección.
- ffmpeg_video_codec: cada vez que se detecta un movimiento,
motiongenera un video con las imágenes del objeto que se ha movido. El valor asignado affmpeg_video_codecdetermina el tipo de video que se generará (por ejemplo, flv indica un video flash). Ten en cuenta que la codificación se realiza on ffmpeg. - target_dir: es el directorio donde se guardarán las imágenes capturadas.
- webcam_port: es el puerto HTTP mediante el cual podremos ver en tiempo real lo que la cámara está grabando.
- control_port: es el puerto HTTP mediante el cual podremos acceder a controlar
motion. - on_event_start: aquí ponemos un comando a ejecutar cuando se detecte un movimiento.
- on_event_end: aquí ponemos un comando a ejecutar cuando on_event_start termine.
Ejemplo de uso
En nuestro ejemplo, las modificaciones sobre el fichero /etc/motion/motion.conf son mínimas. Lo realmente importante es lo que se ha puesto en on_event_start y on_event_end:
# Command to be executed when an event starts. (default: none) # An event starts at first motion detected after a period of no motion defined by gap on_event_start sh /home/cristian/iniciar_alarma.sh gap 5 # Command to be executed when an event ends after a period of no motion # (default: none). The period of no motion is defined by option gap. on_event_end sh /home/cristian/parar_alarma.sh
El archivo iniciar_alarma.sh contiene lo siguiente:
#!bin/sh PID=`/sbin/pidof mplayer` if [ "$PID" = '' ] ; then mplayer -really-quiet -loop 0 /home/cristian/alerta.wav fi
El archivo parar_alarma.sh contiene lo siguiente:
#!bin/sh PID=`/bin/pidof mplayer` kill -9 $PID
Estos scripts harán que se reproduzca un sonido cada vez que motion detecte un movimiento. En este caso se ha usado mplayer, aunque en realidad podría ser cualquier otro reproductor que funcione desde la consola (aunque no recomiendo cvlc, porque para ejecutar motion se requiere de privilegios administrativos).
El hecho de poder ejecutar scripts o cualquier otro tipo de comando, hace que el uso de motion sea realmente flexible, puesto que podremos hacer lo que nos venga en gana cada vez que detectemos movimiento.
Luego de tener configurado nuestro archivo /etc/motion/motion.conf, basta con ejecutar el comando motion (con privilegios de administración):
Si deseamos ver que es lo que está capturando motion, podemos acceder vía web a la URL http://localhost:8081, con lo que veríamos algo como esto:

Consejo: si vas a bromear, no usen los interiores de tu mamá… que te puedes meter en un lio grande.
14 Comentarios | deja el tuyo



muy interesantes tutoriales amigos…
Muy buena entrada, ya podré averiguar quien es el culpable de que a veces me encuentre cosas cerradas en el ordenador ¬_¬
Excelente tutorial , bien explicado y simple. Caracteristico de Tí.
Saludos.
Me parece muy bien de que ya empieces a incluir tus tutoriales con Arch Linux por medio.
Un abrazo
Excelente tutorial, muy bien explicado. El mío funcionó a la primera, jejejeje !!!
Saludos !
Holas acabo de leer tu articulo, es bien interesante, pero tengo unas dudas, te cuento: estoy usando dos web cam, y quisiera usarlo con Motion, pero tengo problemas para activarlo, estuve leyendo que para una web cam mas, necesito agregar una tarjeta PCI Usb mas para cada web cam mas, porque segun lei se genera conflicto cuando se quiere usar dos web cam para cuando la conectas en los cuatro puertos USB que vienen por inercia detras de las PCs, ok pero tengo problemas en configurar el archivo motion.conf, y crear los TREAHR (algo asi, creo que son las entradas), te agradeceria que me ayudes, mi correo es: maquivex@yahoo.com
No te posteas como harias para grabar al detectar movimiento???
con eso seria un 10.
Con esta guía es suficiente, puesto que al detectar movimiento se van generando videos.
Un saludo!
El unico problema con motion es cuando lo pones en una pagina web propia, usa un retrazo de imagenes de 5 minutos, lo cual es demasiado para una aplicacion de tiempo real, si alguien sabe una solucion a este problema porfavor avisenme, gracias