[Como] Ubuntu estación de vigilancia usando motion y una webcam

Imagen de marcostux
0 puntos

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.

Imagen de sergiosan00709
+1
0
-1

 Gracias de verdad, ya que estaba deseando justamente hacer eso.

Ahora solo falta comprarme una web cam compatible con mi querido Ubuntu y a filmar y vigilar la casa se ha dicho.

Me va aresultar muy util cuando coloque una camara desde mi frentera hacia la calle, ya que ultimamente han habido autos y personas muy sospechosas por mi barrio.

Realmente GRACIAS. 

 

****************************************************

Siempre hay opciones de poder hacer lo que uno desee hacer. Siempre y cuando uno desee hacerlo.

Si Microshit quiere pelea, la comunidad GNU/Linux le dara Pelea y

+1
0
-1


Viewsonic 22", 8Gb de Ram Kingston, AMD Phenom X4, 2 multiquemadoras LG, 2 Nvidia Gforce 9600GT en SLI, 2 HDD de 250GB c/u,Mainboard Gigabyte GA-M57SLI-S4, Case COSMOS de Cooler Master.

Imagen de marcostux
+1
0
-1

Lo que me sorprende es que funciona muy bien cualquier duda o sugerencia estare muy agradecido, en el caso de las webcam compatibles, hoy dia ya existen unas que en la caja traen el logo de compatible con windos, mac y por su puesto tux es cuestion de buscar, la mia es muy vieja, es una anycam samsung.

marcostux

+1
0
-1

marcostux

Imagen de Luis Adolfo
+1
0
-1

hola, pues yo intale motion en mi ubuntu 8.04 en mi lap top, pero ahora no puedo iniciar el Synaptic y no deja de trabajar mi camara web, todo el tiempo esta encendida, no se que es lo que tiene, ademas al ejecutar en consola la orden de desinstalar motion me dice

E: dpkg was interrupted, you must manually run "dpkg --configure -a" to correct problem.
E:_cache->failed, please report

y no se que hacer, pueden ayudarme.

viva linux

+1
0
-1

viva linux

Imagen de furtaxi
+1
+1
-1

1) Leer el mensaje de eror con atención.
2) Hacer lo que dice el mensajito.
3) Ponerlo en el buscador del foro.
4) Y contarnos la verdad, nada más que la verdad, y toda la verdad (que no somos adivinos... bueno, un poquito, sí)... ¿Interrumpiste ( o se interrumpió sólo ) alguna instalación o actualización ?

Es el problema más contestado del foro, se autoresponde él sólo (dpkg --configure -a), y no tendrá nada que ver con éste hilo.

Sin que sirva de precedente, te pongo la complicadísima solución:
Abre un terminal. Ejecuta el comando propuesto como root (o sea, poniendo sudo antes).
Espera unos segundos a que trabaje.
Listos.

sudo dpkg --configure -a

 

Roberto. (Alias TIMT)

Mi página: www.vigonews.es

Lee y cumple las Normas. Busca antes de preguntar.
En cada hilo, márcalo adecuadamente.

Colabora con Preguntas Frecuentes, para mejorar el foro.

+1
+1
-1

Mi web : www.vigovideo.es
Buscar es más rápido que esperar una respuesta.

Imagen de Julius-Caesar
+1
0
-1

"you must manually run "dpkg --configure -a" to correct problem"

Y yo me pregunto: ¿Hasta cuando?, ¿será porque lo dice en inglés?.

Ja, ja, ja, ja.

¿Y si lo dijera en cristiano?, ¿qué pasaría?.

Tengo una ligera "sospechina"

Ja, ja, ja, ja.

.

+1
0
-1
Imagen de franzz2000
+1
0
-1

Hola,

yo también tuve un problema similar. Parece ser un bug que hay en Ubuntu 8.04 al instalar motion. Durante la instalación se inicia el programa motion y no es posible pararlo hasta que se pulsa Ctrl-C. De esta manera conseguimos parar el programa, pero queda una instalación corrupta, por lo que no es posible ejecutarlo. Yo lo he solucionado de esta manera:

Previos: Asegúrate de que no haya un fichero con nombre "motion" en el directorio /etc/init.d. En el caso de que exista, elimínalo y reinicia el ordenador.

1- Desinstala el programa motion (A través de Synaptic o escribiendo en el Terminal: sudo apt-get remove motion)
2- Abre una terminal (Menú: Aplicaciones - Accesorios - Terminal) y escribe: sudo apt-get install motion
3- Verás que el programa motion comienza a guardar imágenes en el directorio /temp/motion
4- Abre una segunda ventana de Terminal. Escribe: sudo ps
5- Encuentra el pid del programa motion. A mi me salieron 2 lineas en las que aparecía el programa motion, con diferentes pid (el pid es el número que aparece al inicio de cada linea) y elegí uno de los dos (no me acuerdo cual)
5- Escribe: sudo kill pid X (sustituye la X por el número de pid de motion) y pulsa intro.
6- Verás que, en la ventana donde hiciste el apt-get install, finaliza el programa si marcar errores.

Ya puedes utilizar motion sin problemas.

Espero que te sirva.

Un saludo,

Franz

+1
0
-1
Imagen de Luis Adolfo
+1
0
-1

por fin logre que dejara de tener ese error creo que es verdad lo del error ya que no dejaba de instalar
hasta que te sales forzando el cierre pero bueno, para la otra tendre mas cuidado.

viva linux

+1
0
-1

viva linux

Imagen de anonimoc
+1
0
-1

muy bueno graxias pude hacerlo funcionar jajaja

+1
0
-1
Imagen de acampos1916
+1
0
-1

Hola marcostux, gracias por este aporte.

He seguido al pie de la letra las instrucciones que publicaste pero parece resultar en un error cuando ejecuto el motion -n. Esto es lo que me dice el terminal:

angel@angel-desktop:~$ motion -n
[0] Processing thread 0 - config file /etc/motion/motion.conf
[0] Motion 3.2.9 Started
[0] ffmpeg LIBAVCODEC_BUILD 3352064 LIBAVFORMAT_BUILD 3344896
[0] Thread 1 is from /etc/motion/motion.conf
[1] Thread 1 started
[1] Failed to open video device /dev/video0: Device or resource busy
[1] Capture error calling vid_start
[1] Thread finishing...
angel@angel-desktop:~$

Uso 8.04

Espero que puedas ayudarme, me ha interesado mucho esta utilidad.

+1
0
-1
Imagen de CHuLoYo
+1
0
-1

[1] Failed to open video device /dev/video0: Device or resource busy

Esto quiere decir que el dispositivo está ocupado.

---------
Marcos Pérez
Grupo de aprendizaje de programación

+1
0
-1
Imagen de brunoMasterMixer
+1
0
-1

hola, primero que nada felicitarte por el excelente post, todo funciono perfectamente, pero no me queda claro, como configuro los archivos para q funcionen dos camaras web a la vez,? eso no lo encuentro en ningun lado, ni googleando
podria alguien ayudarme por favor
gracias

+1
0
-1
Imagen de DavisN
+1
0
-1

Ni idea porque :S pero no me funciona.. ni siquiera en Localhost:8000 se me quiere abrir :S una mano?
_____________________________________________________________________________________________
http://www.Mr-Ubuntu.es ahora =) / Tutoriales para principiantes y Exploradores ;). Davis N.

+1
0
-1
Imagen de nica22
+1
0
-1

Yo lo hago de otra forma:
Programa que uso: wxcam

He conseguido ejecutar dos veces wxcam, una con /dev/video0 en sus preferencias, y otra con /dev/video1 y puedo ver las imágenes de la webcam integrada y de la webcam conectada por usb. WXCam permite grabar foto y vídeo, y aplicar efectos ( ajustar colores, negativo, monocromático, girado, espejo, y contorno, además de detección de movimiento).

Lo primero que haremos es fijar la resolución adecuada a que deseemos trabajar. Esto lo indicaremos en el menú “Preferencias” y escogiendo la opción “Frame size“. Del tamaño que escojamos, dependerá el número de frames por segundo que se almacenará en el archivo de vídeo.
Luego indicaremos al programa si deseamos usar un formato comprimido o no en el archivo de vídeo. Podremos usar el formato xVid e indicarle el nivel de compresión deseado, aunque los valores por defecto mantienen una buena relación ente tamaño y calidad.
Por último, indicaremos al área de la imagen en la que deseamos que el software preste atención a la hora de detectar el movimiento y comenzar la grabación de vídeo. Para ello seleccionamos el menú “Captura” y activamos la opción “Movement detection” y “Show movement detection areas” y marcaremos un rectángulo sobre la zona deseada. usando la tecla del tabulador, activaremos el área deseada en caso de tener más de una y podremos borrarla pulsando la tecla suprimir; En “Area Sensitivity Setting” podemos poner el grado de sensibilidad que queramos que tenga la webcam en cuanto a los colores ( rojo, verde, y azul ), en general, y en el área seleccionada. Una vez puestos los valores que queramos le damos al botón “modify” y “reload” .Debemos hacer pruebas para ver que la sensibilidad que hemos configurado esta bien, y que todo funciona perfectamente.
Si todo lo que hemos configurado es correcto, podremos pulsar cobre el botón rojo y comenzará la grabación, sabiendo que sólo se almacenarán imágenes cuando haya algún movimiento en al área marcada. Con esto ahorraremos espacio en el disco duro, ya que de no producirse movimiento, no se almacenarán imágenes.

Si como es mi caso tienes una webcam integrada y otra webcam-usb:
1- Ejecuta el programa, con la webcam desconectada, y normalmente te detectara la webcam integrada, y te aparece la imagen que capte; si no lo hace, elige en Preferencias->Preferencias->Global->Dispositivo de webcam: por ejemplo /dev/video0 para la webcam integrada, y cierra el programa y lo vuelves a ejecutar, y compruebas que ya te capta la imagen de la webcam integrada. Si no lo hiciera cambia el dispositivo webcam, y repite los pasos hasta que te capte la imagen de la webcam ingegrada. Cuando ya te capte la imagen, pasa al paso siguiente, sin cerrar el programa:

2- Conecta la webcam-usb y ejecuta de nuevo el programa una segunda vez para que capte la imgen de la webcam.usb, te aparecera un mensja de error, pero lo que tienes que hacer es elegir en Preferencias->Preferencias->Global->Dispositivo de webcam, otro dispositivo, por ejemplo /dev/video1 para la webcam-usb,y luego cerrar el programa y volver a ejecutarlo.

3- De esta forma debes tener abiertos dos veces el programa wxcam, y poder ver las imágenes captadas por las dos videocamaras, y poder tener videovigilancia con ambas. Supongo que si tienes mas webcam y mas puertos usb puedes hacer lo mismo tantas veces como cámaras web tengas, y tener el programa abierto tantas veces como webcam tengas.
———————————————–

Supongo que con el programa vinagre -esta en los repositorios – se podría ver desde otro pc-2 la imagen que la webcam esté captando con el pc-1, con lo que con wxcam + vinagre tendríamos la posibilidad de tener videovigilancia a distancia. Esto no lo he probado. ( vinagre es una aplicación VNC nativa de Gnome: VNC es el estándar de facto para acceder de manera remota y gráficamente a otra máquina, -> como tener “la pantalla de un ordenador en otro”. Admite varias sesiones simultáneas y para manejarse utiliza pestañas).

Extraido de http://hatteras.wordpress.com/2009/03/06/videovigilancia/

+1
0
-1
Imagen de Deltomate
+1
0
-1

Holas, he hecho funcionar 4 cámaras USB por Pc y varias Pc con cámaras en un misma Lan. Ahora mismo tengo una Pentium III 500 mhz con Apache, y cámaras funcionando perfecto, alguna duda, consulten. Si saben como sumarle audio estría bueno saberlo.

+1
0
-1
Imagen de iceboyx
+1
0
-1

De que forma hiciste funcionar las 4 camaras? me interesa eso.

A parte, yo tengo problemas con la ejecucion del demonio, debo hacerlo desde la misma ruta /etc/init.d/ si estoy fuera de alli no la hace, ni siquiera lo hace en el autoarranque. Que me sugieren para funcione? incluso hice un script le di los permisos y nada aun.

Deseo funcione en el arranque para que haga un puente a los pines de encendido de la pc y funcione todo el tiempo, si hay apagones se inicie solito, sin que ningun usuario tenga que intervenir. Agradecere mucho sus sugerencias y ayuda

+1
0
-1

Frozen your surroundings

Imagen de Deltomate
+1
0
-1

El que quiera saber como hice andar 4 cámaras que me mande mail que le envío los archivos de configuración que he hecho para que funcionen.
Otro tema importante, es que para que funcionen las 4 cámaras tuve que poner 2 tarjetas pci usb y en cada una le puse una cámaras, pues sino entran en conflicto con el bus de la computadora, cualquier computadora.

+1
0
-1
Imagen de lalan
+1
0
-1

lo tengo funcionando, pero aunque edite el "target_dir = /home/mi_usuario/motion" las fotografias quedan en /home/mi_usuario, hay que hacer alguna configuracion adicional?

+1
0
-1
Imagen de Cyrux1126
+1
0
-1

No cabe duda hermano que te dedicaste tu tiempo en esto. Ha sido uno de los mejores aportes que he visto en mi corta vida :D. Te lo agradezco mucho.

Sólo como para anexar algo que me parece interesante. Sería mucho mejor si las imágenes se guardan en una máquina distinta. San Google, me dio la solución y quisiera compartirla; es la siguiente:

"Si se tiene instalado wput en nuestro Linux, fácilmente se pueden subir las capturas a un servidor utilizando el hook on_picture_save"

#motion.conf
on_picture_save wput ftp://user@pass@server %f

"Aunque esta solución no es muy segura por tratarse de servidor FTP"

De nuevo muchas gracias!
Saludos.

+1
0
-1
Imagen de elnetotaca
+1
0
-1

Pero algo descontinuado.

Refierete a este post mas reciente!
http://www.ubuntu-es.org/node/175847

+1
0
-1

unzip; strip; touch; finger; mount; fsck; more; yes; unmount; sleep
Es lo que hago a diario....... En Linux mal pensados!

Imagen de Kakkin
+1
0
-1

Me gusta, está genial, por el momento no creo necesitar esta utilidad, pero lo tendré en cuenta ;D

Un saludo desde Costa Rica

+1
0
-1

Usuario Ubuntu # 34369

Mi pagina www.triang.es.tl