TECNOYO.COM

Archivo para la Categoría ‘Linux’

Motion es un programa GPL que funciona con v4l, nos permite usar nuestra WebCam como dispositivo de vigilancia. Esta disponible para Linux, BSD y MacOSX (!windows jeje).

En este artículo vamos a aprender cómo crear un pequeño sistema de videovigilancia con nuestra cam. Este sistema sólo capturará vídeo cuando detecte movimiento, y lo almacenará en formato avi a un directorio que luego podremos consultar. Además crearemos un pequeño servidor web de streaming con el que podremos visualizar nuestra Cam desde cualquier lugar del mundo.

Entre todo esto tambien se explicará brevemente como hacer funcionar nuestra cam, y se expondrán varios programas para utilizarla.

Instalación de la WebCam

Aqui teneis un buen link para la instalación de la WebCam: http://tldp.org/HOWTO/html_single/Webcam-HOWTO

  • Primero veamos que chip lleva nuestra cam con: lsusb
  • Ahora vamos a instalar el driver correspondiente, buscad en estas direcciones:
  1. Podemos utilizar los de Michel Xhaard que soportan 235 webcams: http://mxhaard.free.fr/spca5xx.html
  2. CPiA http://webcam.sourceforge.net/#cams
  3. QCE (Quick Cam express) http://qce-ga.sourceforge.net/#supported
  4. Para philips http://www.smcc.demon.nl/webcam
  5. Google.com ;-)

Recomiendo que utilizeis la primera opción en caso de que sea posible. Yo tengo una Logitech, Inc. Quickcam Express y utilizo el driver gspca que es un derivado del spca de Michel Xhaard.

  • Ahora cargamos el módulo que hayamos instalado: modprobe gspca
  • Deberiamos tener el archivo /dev/video0
  • También necesitamos que el Xorg tenga soporte para v4l (video4linux)

Software para probar la webcam

Aqui teneis una pequeña recopilación que he hecho de programas para webcam

camorama

Aplicación Gnome para webCams

Permite ver video mediante tu webcam y aplicar varios filtros de imagen. También puede subir capturas a un server ftp.

web: http://camorama.fixedgear.org

camstream

Nos permite:

* Utilizar un cómodo GUI

* Realizar capturas cada X tiempo

* Grabar imagenes y subirlas a un servidor Sus propositos:

* Video conferencia

* Grabar peliculas AVI y QuickTime

* Sistema de seguridad

web: http://www.smcc.demon.nl/camstream

xawtv

Es un conjunto de aplicaciones que originalmente fueron creadas para televisión, pero hoy en dia también soporta webcams.

Algunas de ellas son:

* streamer: permite grabar imagenes y peliculas

* webcam: captura imagenes y las sube a un servidor ftp o ssh

* pia: un simple reproductor de video

El binario “xawtv” es un pequeño gui que nos permite utilizar la mayoría de estas aplicaciones

web: http://linux.bytesex.org/xawtv

SDLcam

* Entorno gráfico (GUI)

* Aplicar varios filtros

* Subir las capturas a un servidor ftp

* Autocapturar imagenes

* Capturar video

web: http://sdlcam.raphnet.net

gqcam

Visualizar nuestra cam y guardar capturas

web: http://www.wirelesscouch.net/software/gqcam/

Otros

came: xawtv reescrito y con nuevas posiblidades http://linuxbrit.co.uk/camE
camsource: grabar imagenes de la webcam http://camsource.sourceforge.net
camserv: streaming mediante web http://cserv.sourceforge.net
spcaview: un simple programa para ver las webcam soportadas por el driver spca5xx

Enpezando con Motion

La web oficial de motion es: http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome

Algunas de sus posiblidades son:
- Realizar capturas del movimiento
- Manejar multitud de camaras
- Hacer streaming a tiempo real
- Crear videos mpeg utilizando ffmpeg
- Realizar capturas cada X tiempo
- Ejecutar comandos al detectar movimiento
- Si la camara lo permite, seguir el movimiento
- Utilizar bases de datos MYSQL o PostgresQL para guardar las capturas
- Controlarlo mediante un navegador web
- Definir el nivel de CPU consumida
- Definir el nivel de sensiblidad de movimiento

Motion no dispone de entorno gráfico, supongo que esto hechará atrás a mucha gente, pero antes de ello debo decir que no es nada complicado hacerlo funcionar, y el hecho de que solo sea un pequeño demonio que corre en background le da una mayor flexiblidad. Yo por ejemplo lo tengo instalado en mi pequeño servidor linux que no dispone de X, y de esta manera puedo vigilar mi habitación desde cualquier lugar del mundo.

Instalación de Motion

Motion esta en la mayoría de los repositorios de las distintas distribuciones, pero yo recomiendo compilarlo e instalarlo manualmente.

Descargamos el paquete del código fuente desde: http://www.lavrsen.dk/twiki/bin/view/Motion/DownloadFiles

Requisitos

Necesitamos tener instalados las siguientes librerias:
libm, libresolv, libdl, libpthread, libc, ld-linux, libcrypt, libnsl, libjpeg, libz
En ubuntu y debian los paquetes necesarios son: libc6 , libc6-dev ,libglib1.2, libjpeg62, libjpeg62-dev, zlib1g, zlib1g-dev

Para poder grabar peliculas mediante ffmpeg necesitamos: libavcodec, libavframe
Y los paquetes son: ffmpeg ,libavcodec1,libavcodec1-dev

Compilación e instalación

tar xvzf motion-*
cd motion-*
./configur

Al final nos dira algo como:

OS : Linux
pthread Support: Yes
jpeg Support: Yes
V4L included: Yes
FFmpeg Support: Yes
MYSQL Support: Yes
PostgreSQL Support: No

Si algo aparece como NO y lo queremos, tendremos que instalarlo primero y luego repetir el configure
También es recomendable hecharle un vistazo a: ./configure –help

Ahora compilamos:

make

Si nos dice: “Build complete, run “make install” to install Motion!” Ha funcionado bien.
Entonces instalamos:

make instal

Configuración

Motion es muy configurable. La configuración que vamos a seguir es para conseguir un pequeño sistema de vigilancia con una WebCam.
Motion captura 1 frame cada X tiempo, y lo compara con el anterior, si se detecta que X píxels son distintos, considera que hay movimiento. Entonces, en nuestro caso, mientras dure el movimiento grabará un vídeo en formato avi. Además cada 10 minutos hará una captura de la imagen, esto nos servirá para asegurarnos de que motion ha estado funcionando correctamente.
También activaremos un pequeño servidor http de streaming con el que podremos ver en cada momento que esta pasando desde cualquier sitio del mundo donde haya internet.

Como ya he dicho no dispone de GUI, así que la configuración debe ser editando el archivo /usr/local/etc/motion.conf
Tenemos un ejemplo de archivo de configuración que renombraremos para utilizarlo como base:
cp /usr/local/etc/motion-dist.conf /usr/local/etc/motion.conf

Ahora lo editamos. Como podremos ver, esta todo bien explicado, asi que recomiendo una lectura entera del archivo. Seguidamente comentaré las opciones más interesantes, pero podemos verlas todas mejor explicadas en la web oficial: http://www.lavrsen.dk/twiki/bin/view/Motion/MotionGuideGettingItRunning

Configuración básica

daemon on Si queremos que inicie en modo demonio (background), para las primeras veces que lo ejecuteis mejor ponerlo a off para ver la salida
setup_mode off Si queremos que arranque en modo configuración, recomendable para la primera vez
videodevice /dev/video0 Nuestra camara
input 8 El tipo de dispositivo que estamos usando. 8 es para cámaras USB
rotate 0 Si queremos rotas la imagen, va en grados: 90, 180, 270…
width 320 La anchura. Esto dependera de lo que soporte nuestra cam. Para ello recomiendo probar con uno de los prgramas antes mencionados y ver hasta que tamaño podemos llegar.
height 240 La altura.
framerate 30 Los frames por segundo que se capturaran. Eso dependerá de la cualidad que le querais dar a la imagen de video. Yo utilizo 30.

Configuración de los filtros

Esots parámetros son muy importantes para conseguir una captura nítida y de buena calidad. Recomiendo que utiliceis un programa de los antes mencionados (camorama por ejemplo) para probar los distintos valores y encontrar el mejor para nuestra camara.

auto_brightness off Si queremos que motion regule el brillo de la camara. Recomendable no activarlo.
brightness 0 El brillo. Si tenemos auto_brightness activado, sera el valor medio en que se basará motion
contrast 0 El contraste. Si es 0, se utiliza el propio de la camara
saturation 0 La saturación. Si es 0, se utiliza el propio de la camara

Opciones de detección movimiento

threshold 1500 El número de pixels que deben cambiar para considerar movimiento
night_compensate on Para detectar movimiento en frames oscuros
pre_capture 20 El número de frames que queremos que se guarden anteriores al detectar movimiento
post_capture 20 El número de frames que queremos que se guarden posteriores al detectar movimiento
max_mpeg_time 0 Máximo tiempo seguido de captura de video
low_cpu 3 El número de frames que queremos que capture mientras no detecte movimiento. Recomendable un valor pequeño para CPU’s lentas.

Imagen

output_normal off
Puede ser on, off, best, first
- off: no guarda imagenes al detectar movimiento
- first: solo guarda el primer frame
- best: solo guarda el de mayor movimiento
- on: guarda todas los frames donde se detecta movimiento

output_motion off Guardar las imagenes del movimiento. Estas constan sólo de los pixels donde se detecta movimiento. Puede ser curioso, pero no recomiendo activarlo.
quality 75 la cualidad de la imagen jpeg

Video

ffmpeg_cap_new on Utilizar ffmpeg para las capturas de vídeo
ffmpeg_cap_motion off Guardar el video de los pixels donde se detecta movimiento
ffmpeg_bps 400000 El bitrate de la captura de vídeo. Como más alto más calidad.
ffmpeg_video_codec mpeg4 El códec a utilizar

Snapshots

snapshot_interval 600 Guardará una imagen, aunque no haya movimiento, cada 600 segundos

Directorios

target_dir /var/motion El directorio donde motion guardará los videos y las imagenes

Servidores

- Servidor de straming: Un pequeño servidor http que nos permitirá ver en tiempo real la webcam
webcam_port 8081 El puerto donde escuchará el servidor
webcam_quality 50 La cualidad en que se mostrarán las imágenes
webcam_maxrate 8 El número máximo de frames que se mostrarán para los vídeos en streaming
webcam_localhost off Si queremos restringir el uso del servidor para uso local solo

- Servidor de control: Este es un pequeño servidor http que nos permite configurar motion en vivo.
control_port 8080 El puerto donde escuchará el servidor
control_localhost on Si queremos restringir el uso del servidor de control para el uso local
control_html_output on Para que la salida sea en formato html
control_authentication usuario:tu_pass Para definir el usuario y el password

Otros

on_event_start comando El comando que se ejecutará al detectar movimiento

Probando los resultados

Ahora solo nos queda iniciar motion: /usr/local/bin/motion -c /usr/local/etc/motion.conf
Como veremos se iniciará y mostrará lo siguiente (en el caso que no este configurado como demonio)

[0] Processing thread 0 - config file /usr/local/etc/motion.conf
[0] Thread 1 is from /usr/local/etc/motion.conf
[1] Thread started
[0] motion-httpd/3.2.7 running, accepting connections
[0] motion-httpd: waiting for data on port TCP 8080
[1] Started stream webcam server in port 8081

Cuando detecte movimiento mostrará un mensaje como

[1] File of type 8 saved to: /tmp/motion/01-20070707234646.avi

Y guardará el vídeo en el directorio que le hayamos indicado en la configuración

Si nos conectamos con nuestro navegador web al puerto 8081 veremos a tiempo real la WebCam
Y si nos conectamos al pueto 8080 tendremos un menú de configuración.

¡Cuidado! Es peligroso y poco recomendable dejar estos servicios abiertos al exterior, ya que se han detectado diversos bugs.
Una posible opción es utilizar apache. Le decimos a motion en la configuración que el tarjet_dir sea un directorio dentro de la raiz del apache (/var/www/motion). Luego dejamos apache corriendo y lo configuramos para que pida user y pass al intentar entrar en dicho directorio. Esto esta explicado en el siguiente link de esta misma web: Zona privada con apache

Conclusiones

Motion nos ofrece un entorno muy poderoso y ámplio. Podemos desde hacer un pequeño sistema de vigilancia como el explicado anteriormente, o un complejo sistema con varias cámaras (incluidas netcams), y una base de datos como Mysql o Postgresql para almacenar todo el contenido. El hecho de que nos permita ejecutar comandos al detectar movimiento, lo hace todavía más poderoso. Podemos crear un script por ejemplo que envie un mail, un sms, llame por telefono o incluso active una alarma.
Supongo que en el futuro alguien creará un GUI para la configuración del programa, ya que editar el archivo manualmente es un poco engorroso.

Un saludo

Via | dabax.net

Comentarios (0) Publicado el Jueves, Enero 15th, 2009

Buenas tardes

Hoy vamos a darle aceleracion 3d a nuestro escritorio (nvidia) desde la consola de comando.

¿Porque desde la consola con lo facil que lo pone ahora ubuntu? La respuesta rapida es que cuando algo falla en modo grafico, nos vemos estancados y no sabemos por donde seguir. Este es el motivo principal para este manual.

NOTA: Este $ es el simbolo del usuario. Este # es el simbolo de root. ( lo pongo en cada linea a modo de indicacion. NO se tiene que poner)

EMPEZANDO

Lo primero es comprobar que tenemos todos los paquetes necesarios en caso contrario descargarlos:

-Driver nvidia ( en la pag web tenemos los drivers propietarios ( hay un proyecto open source, que se llama open nvidia) la diferencia principal es que con los OPEN tenemos acceso al codigo fuente y sabemos o podemos saber “que hace”.

Gracias a mi amigo KonS, por dejarme grabar el video en su portatil…

NOTA: Es un archivo ejecutable. Se puede hacer boton secundario guardar como, pero la consola es mas bonita……….poner en la consola:
#wget “la direccion del navegador”

-Kernel sources ( necesario para compilar los paquetes necesarios para la 3d) Si no sabes que kernel tienes puedes poner “uname -r” y te pondra tu kernel. luego solo busca el paquete correspondiente kernel-sources y los instalamos

#apt-get install kernel-source-*********** ( puede ser que tu distro solo tenga 2.4 y 2.6 mas genericos. Instala el que te corresponda)

Nos vamos a una cosola ( fuera de las X) . ctrl+alt+f1

Nos logamos como root.

# telinit 3

-Con esto lo que hacemos es parar el servidor de X para que no haya nada usandose y se pueda instalar el driver.

Vamos a la ruta donde hemos descargado el driver.

# sh Nvidia.lo.que.sea.sh

“Verifying archive integrity… OK
Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86 169.12…………………………………………………………………………………..
……………………………………………………………………………………………
…………………………………………………………………………”

-Este es el instalador. Es necesario que hayamos hecho un telinit3 o en su defecto aunque menos recomendable, haber matado el servidor de X ( kdm, gdm,xdm)

Despues de seguir los pasos ( basicamente es siguiente, siguiente, siguiente) Si hemos contestado que si a las dos ultimas preguntas lo que habra hecho sera ponernos en /etc/X11/xorg.cfg en la linea Devices el apartado Driver “nvidia”. Sino simplemente con hacer una copia de seguridad (Se recomienda ) y poniendo luego en ese apartado nvidia. Si todo fue bien deberiamos tener 3d sin problemas.

# cp /etc/X11/xorg.conf /etc/X11/xorg.conf.old

#nano /etc/X11/xorg.conf

-Buscamos la linea Device y dentro de esta el apartado Driver ( seguramente ponga nv o vesa) y ponemos nvidia dentro de las comillas. Esta es la mia

Section “Device”
Identifier “Failsafe Device”
Boardname “NVIDIA GeForce 7 Series”
Busid “PCI:2:0:0″
Driver “nvidia”
Screen 0
Vendorname “NVIDIA”
EndSection

Salvamos (en el nano ctrl+x) y vamos a realizar las pruebas pertinentes.

Desde esta consola vamos a lanzar las X para ver que funcionan correctamente. si hubiera cualquier fallo en consola nos dara informacion.

# X

-OJO es una X en mayusculas. Con esto se deberia abrir un escritorio muy simple ( solo se ve el raton y no podemos hacer nada mas) si se te ha abierto. FELICIDADES ya tienes aceleracion 3d. Sino revisa los fallos y pegamelos……

Ahora ya podemos arrancar de nuevo el servidor X. Si somos usuarios de Gnome debemos usar GDM, si somos de Kde debemso usar KDM y si tenemos otros entornos graficos, nuestro servidor de X seria XDM. En mi caso es Gnome asi que usare gdm

# gdm

-Si os da fallos al lanzarlo puede que sea porque no murio el proceso. En ese caso hariamos un:

#killall gdm

- o el servidor de X que queremos matar y luego lo arrancamos de nuevo.

# gdm

Seguramente nos aparecera el logotipo de Nvidia. Hay mas configuraciones que podemos poner en el archivo xorg.conf con las que le podemos indicar que no se muestre el logo y otras opciones interesantes. como quitar algun modulo para que beryl….. perdon compiz-fusion se lance correctamente.

Otro comando interesante es

panic@kernelpanic:~$ glxgears
13038 frames in 5.0 seconds = 2606.185 FPS
27705 frames in 5.0 seconds = 5540.935 FPS
72244 frames in 5.0 seconds = 14448.730 FPS
71934 frames in 5.0 seconds = 14386.783 FPS
X connection to :0.0 broken (explicit kill or server shutdown).

Hay que ejecutarlo en el servidor X fuera de el te dara fallo. Este programa lo que hace es decirte los FPS de tu tarjeta. (NOTA: si se minimiza la ventana al no tener que redibujar mejora los FPS pero falseandolos claro XD (sin carga) yo escondi la ventana en el mio)

Desde una consola dentro del servidor de X podemos ver algunos comandos mas tabulando. Escribe glx y tabula , te saldran varios posibles comandos.

$ glx
glxdemo glxgears glxheads glxinfo

Ya desde las X podemos ver la version que tenemos de nvidia y realizar algunos ajuste como el OC (overcloker) aunque recomiendo tener cuidado y usar el nvclock.

Este manual ha sido hecho con mucha prisa para ayudar aun amigo….. no esta exento de fallos y sobretodo tendra muchas faltas de ortografia. No dudeis en indicarme las erratas o las posibles dudas que tengais.

Un saludo a Tod@s

Recopilado de experiencias propias. Made By Kernel Panic.

Comentarios (0) Publicado el Martes, Abril 29th, 2008

Sopcast en linux Nota: version feisty en gutsy.

Este manual esta hecho para poder ver esos partidos que suelen echar por “cerrado” tanto de futbol como baloncesto y otros deportes, PERO ademas existen otro tipo de “visionado” como algun canal extranjero para aprender idiomas o simplemente algun documental. En http://rojadirecta.com suelen encontrarse los partidos y el canal en el que lo retransmiten.

NOTA: sopcast es un programa que permite ver los canales por internet.

Lets go to start

$ wget http://download.tuxfamily.org/3v1deb/DD800CD9.gpg -O- | sudo apt-key add -

Después añadir estas 2 líneas (en el caso de Feisty) a tu /etc/apt/sources.list:
deb http://download.tuxfamily.org/3v1deb feisty 3v1n0
deb-src http://download.tuxfamily.org/3v1deb feisty 3v1n0

Sólo queda instalar:
$ sudo apt-get update
$ sudo apt-get install sopcast

$ EJEMPLO “sp-sc sop://sop.rojadirecta.com:3912/6002 8000 9000″

Buscar en www.rojadirecta.com link correcto “sp-sc URL://que.SE.desee:CONsu/PUERTO 8000 9000″

en otra terminal ejecutar el mplayer con el siguiente comando:
$ mplayer -nocache http://localhost:9000/tv.asf

Bueno aqui un video, tarda algo al principio, pero es normal. Son programas P2P. Mientras mas gente haya mejor se vera.

video

NOTA: Muchos canales de sopcast que vienen en la página de rojadirecta no tiran, así que para probarlo lo mejor es utilizar uno de los canales de la página sopcast.com (ej. sop://broker1.sopcast.com3912/6003.)

NOTA2: Despues de haberlo probado en gutsy sin problemas, comento las lineas de /etc/apt/sources.list para no instalar soft de otra rama

By Kernel Panic. Info “Recopilada” de: http://despuesdegoogle.com/2007/07/05/sopcoast-mira-la-copa-america-en-li

Comentarios (0) Publicado el Lunes, Abril 28th, 2008

    Entradas Populares

    Las más Comentadas

    Visitas obligadas