gentoo linux, java, software libre y otras hierbas
Nov, 10 2008 - 10:49 am

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:

# en Debian o Ubuntu….
# 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, motion genera un video con las imágenes del objeto que se ha movido. El valor asignado a ffmpeg_video_codec determina 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):

# motion

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.

Descargar ejemplo

14 Comentarios | deja el tuyo

5 enlaces entrantes

9 Comentarios en “Sistema de vigilancia básico sobre Linux”

  1. Firax dice:

    muy interesantes tutoriales amigos…

  2. piponazo dice:

    Muy buena entrada, ya podré averiguar quien es el culpable de que a veces me encuentre cosas cerradas en el ordenador ¬_¬

  3. Ram dice:

    Excelente tutorial , bien explicado y simple. Caracteristico de Tí.

    Saludos.

  4. maty1206 dice:

    Me parece muy bien de que ya empieces a incluir tus tutoriales con Arch Linux por medio.

    Un abrazo

  5. ipako dice:

    Excelente tutorial, muy bien explicado. El mío funcionó a la primera, jejejeje !!!

    Saludos !

  6. Maquivex dice:

    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

  7. juancarlospaco dice:

    No te posteas como harias para grabar al detectar movimiento???
    con eso seria un 10.

  8. Cristian dice:

    Con esta guía es suficiente, puesto que al detectar movimiento se van generando videos.

    Un saludo!

  9. Daniel dice:

    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 :)

¡Déjanos tu comentario!