lunes, 5 de noviembre de 2007

Ubuntu estación de vigilancia usando motion y una webcam

por marcostux

Este es mi primer how to espero que sea de utilidad:

Primero debemos probar nuestra webcam si funciona en Linux, Ubuntu detecta muchas sin problemas, quisiera hacer un breve comentario sobre el famoso error “no hay dispositivo en /dev/video0 ...etc etc” y me dí cuenta que si al momento de conectar la cámara uno ejecuta un programa de webcam como canorama por ejemplo, funciona pero si uno conecta la webcam y espera unos minutos para usarla aparece el error, lo probé muchas veces y llegue a esa conclusión, este truco funciona hasta con amsn.


Luego instalar “motion” que es un programa que trabaja con la webcam para que grabe vídeo y tome fotos cuando detecte algún movimiento, lo cual es muy util si queremos un sistema de vigilancia en casa o el trabajo lo instalamos sudo apt-get install motion o por Synaptic.

Una vez instalado procedemos a configurar motion, sudo gedit /etc/motion/motion.conf

daemon on quiet on

Estas dos opciones están en off por defecto, pero es conveniente ponerlas a on. La primera hace que se ejecute motion como daemon, obligatorio para que después funcione correctamente con los scripts (de presencia y de atención a evento). Y la segunda es para que no suelte unos "beeps" cuando detecte un movimiento.

videodevice /dev/video0

Le decimos cual es el dispositivo de la webcam. (puede variar)

width 320 height 240

Tamaño de frame, hay algunas webcams que soportan 640x480 o incluso más, pero la mía no. Piensa que si pones un tamaño muy grande de frame, las imágenes pesan más, y la larga, si hay mucho movimiento, puede ser problemático.

framerate 25

Numero máximo de frames que podrá capturar la cámara por segundo. Un valor muy grande, problemático de nuevo, por lo mismo que antes.

quality 85

Calidad de los frames en tanto por ciento, para los jpg's que guarda. 85 es el valor por defecto.

auto_brightness off

Puede ser una opción para los que tengan una webcam con auto brightness, esta opción regula automáticamente la luminosidad de las imagenes. Lo probé, pero daba saltos de casi blanco a casi negro. Aunque seguramente mi webcam no lo soporte.

threshold 4500 noise_level 64

Threshold y noise_level son parámetros que utiliza motion para calibrar la variación (en las imágenes) necesaria para lanzar un evento.
Threshold representa el número de pixeles que tienen que diferir de la anterior captura después del proceso al cual somete a las imágenes. El valor de 4500 entiendo que es equivalente a decir que la imagen difiera en un 6% aprox. respecto de la anterior.
Noise_level es la cantidad de variación que se necesita, para que un pixel sea contado en el threshold.
Existen más parámetros de este tipo (Masking y despeckle).

brightness 200

contrast 80 saturation 0 hue 0

Parámetros (por orden) de luminosidad, contraste, saturación y tono, serán variables dependiendo de donde este colocada la webcam, yo coloqué la webcam y haciendo prueba/error saqué esos valores.

ffmpeg_cap_new on ffmpeg_video_codec mpeg4

El primero para usar la librería ffmpeg para encodear al vuelo los videos, a partir de las imágenes. Y el segundo para escoger el codec con el que comprimirá el video. (Coloque aquí mpeg4 funciona muy bien)

target_dir /home/user/Desktop/Video_Vigilancia

Directorio donde guardar las imágenes y los videos producidos. (Comprobar permisos de escritura)

webcam_port 0 webcam_localhost on webcam_quality 50 webcam_maxrate 8

Los parámetros webcam_* hacen referencia a la posibilidad de habilitar un puerto para acceder con un navegador a lo que esta viendo la webcam.
%_port es el número del puerto que queremos asignarle, si el puerto es 0, la opción queda deshabilitada.
%_localhost es para limitar el acceso. Si on, exclusivamente podrá acceder localhost.
%_quality es la calidad de los frames enviados al web. Si vas usar la opción webcam y tienes un ancho de banda limitado, no te pases con este valor.
%_maxrate, cuando no ha detectado movimiento, envía solamente 1 frame por segundo al web. En caso contrario, envía como máximo este valor.

Una vez configurado ejecutamos motion -n si todo va bien podemos ver la imagen de la cámara colocando en el navegador localhost:8000 o el puesto que habéis escogido, en mi caso no se me ve bien en firefox asi que tambien pueden usal el reproductos VLC, seleccionamos abrir volcado de red, luego HTTP y en URL colocamos localhost:8000, tambien he leido que si uno tiene una IP estática se puede acceder e la cámara desde otro pc remoto colocando nuestroip:8000, no lo he probado.

No hay comentarios: