21 abril 2008

Servidor de camaras con debian/motion

Instale en el servidor debian etch, motion, un potente soft de gestion de camaras de seguridad, q t permite detectar movimiento, regular niveles de la camara, pan/tilt, activar eventos y un espectro bastante amplio de opciones aca cito la configuracion q viene x defecto cuando instalamos motion: # Minimal motion example config file provided by the # Debian motion package - for basic webcam operation. # # You most certainly want to investigate # /usr/share/doc/motion/examples/motion-dist.conf.gz # for further configuration options. Also, refer to the # motion man page and /usr/share/doc/motion/motion_guide.html # for detailed information on configuration options. daemon off quiet off # You may very well need to change this (check with 'dmesg' # after plugging in your webcam) videodevice /dev/video0 # Image size in pixels (valid range is camera dependent) width 320 height 240 framerate 25 quality 85 auto_brightness on # Initial brightness, contrast, hue (NTSC), and saturation # 0 = disabled (valid range 0-255) brightness 0 contrast 0 saturation 0 hue 0 # Encode movies in real-time (install ffmpeg before enabling) ffmpeg_cap_new off # Target base directory for pictures and films # You should probably change this (create dir beforehand) target_dir /tmp # Define a port number (e.g. 8000) to enable the mini-http server # 0 = disabled webcam_port 8050 # Set to 'off' to allow anybody (not just localhost) to view the # webcam via the mini-http server (http://hostname:port) webcam_localhost on webcam_quality 50 webcam_maxrate 8 Bueno, creo q las opciones viene + q ben explicadas, los item importantes son: 1. daemon (off/on): nos permite seleccionar si se ejecutara en 2do plano, importante si lo meteremos en el inicio del sistema 2. videodevice (/dev/videoX): seleccionamos la fuente del video (+ adelante explicare el uso de video loopback), x cada camara necesitamos un motionXX.conf con el dispositivo de video 3. width & height : nos permite seleccionar el tamaño de la imagen, si es un pasillo pequeño, es bueno q sea pequeño este valor, si la camara cubre un rango grande, es buena idea poner a full la resolución (podemos saber q resoluciones soporta nuestra camara con v4l-info device 4. norm [Values: 0 (PAL), 1 (NTSC), 2 (SECAM), 3 (PAL NC no colour). Default: 0 (PAL)]: seleccionamos la norma usada x la camara 5. threshold [15000]: nos permite definir cuando se activa un evento de acuardo a la cantidad de pixels q cambian 6. snapshot_interval [5]: nos permite hacer snapshot cada N segundos aunque no se detecte movimiento muy util, si queremos vigilar online 7. snapshot_filename (snapshot): nos permite seleccionar el nombre del archivo jpg de las capturas periodicas, es importante ponerle un nombre q no varia (mediante los comodines del programa), a menos q querramos hacer un registro cada N segundos de la camara 8. target_dir (directorio): seleccionamos el directorio donde se guardan todas las capturas, normalmente dentro de un dir html apache 9. jpeg_filename (filename): seleccionamos el nombre del archivo jpg usado para guardar las capturas, importante ponerle un nombre de acuerdo a la camara y q refleje hora completa de la captura 10. thread /usr/local/etc/threadNN.conf : numerandolas como NN=1,2,3... ademas de motion.conf, usamos un archivo x cada camara instalada, cuando tenemos + de 1, Bueno, creo q detalle los items + importantees de la configuracion de este soft Instalación en distros basadas en debian: Debemos ejecutar como root lo sgte: #: apt-get install motion Con esto nos basta para q nos sugiera los paquetes requeridos ademas de motion, luego q termine de instalarlos, solo debemos abrir /etc/motion/motion.conf y modificar lo q necesitemos, cualquier cosa en linea tenemos la ayuda oficial de motion (google==>> motion linux ;-) ) una captura: motion capture Algo q me resulto muy util x varios motivos fue crear un script q me permitiera hacer un backup a algun lugar externo a la maquina, q sea gratuito, q tenga amplia disponibilidad, pocas restricciones, multiplataforma, y q sea facil monitorear; Solución, se me ocurrio subir las imagenes en las q hay movimiento a una cuenta de gmail, este me permite subir imagenes a travez de smtp, para ello use una utilidad q no necesita compilar, no necesita ni siquiera tocar el sistema p' enviar un mail mediante un smtp relay, como tengo ARNET uso smtp.arnet.com.ar p' enviarlos a XXXX@gmail.com, el programita se llama sendEmail, solo de las los permisos necesarios, le das las opciones y metes el script sgte en cron, cosa q detecte cada X tiempo si hay N capturas guardadas, entonces las envia al mail, dandome este metodo varias ventajas: * Bajo uso de cpu, nada se comprime * Se puede consultar de cualquier lado q t permita entrar a gmail (bancos,colegios,facus,laburos,etc) * El backup, es cada un tiempo prefijado, si sucede algo en la maquina, no se pierde nada * Se pueden hacer multiples backups debido a q solo haria falta descargar los mensajes como si fuese un correo * se pueden ordenar mediante reglas y agregando encabezados especificos Script: (nota todavia me falta agregarle algunas cosas, otras no las escribi en este articulo x seguridad del server) #!/bin/bash verlo=$(ls /pathdirwebcam | wc -l) echo $verlo dia=$(date +%F) base="/dirtemporal/" if (( "$verlo" > "40" )) then echo "haciendo backup de las imagenes" beep -r 6 -f 5500 -l 10 /usr/local/bin/sendEmail -t xxxx@gmail.com -u "Camara seguridad XXXXX" -m "backup" -f xxxxx@electrodcd.xxx.xxx -s smtp.arnet.com.ar -a /pathdirwebcam/Cam*.jpg -v #este codigo seria opcional si hacemos un backup comprimido localmente /usr/local/bin/rar a -r -df -nCam*.jpg $base"backupcamara"$dia /pathdirwebcam mv -f $base"backupcamara"$dia.rar /backupcamara/"backupcamara"$dia.rar echo "backup finalizado" beep -r 3 -f 5500 -l 10 fi Y con esto tenemos un servidor de camaras q en mi caso uso una placa de 4 entradas, especializada en seguridad con el chip bt878, q nos permite ver en vivo cada N segundos un lugar determinado desde cualquier lugar del mundo, detectar cuando hay movimiento y luego backupear las capturas a un server de mail, q luego bajaremos en otro lugar p' verlas, o p' guardarlas en otro medio... Espero q les sea de utilidad lo expuesto, bye...

No hay comentarios: