miércoles, 14 de enero de 2009 (Hace 322 dias)

Hasta ahora para ver la emisión de las cámaras utilizaba xawtv. Con este programa abría el dispositivo de vídeo en que Motion, via vloopback, vuelca el streaming de vídeo y sin más complicaciones veía en tiempo real lo que estaba monitorizando Motion.

Ayer se me ocurrió hacerme un script con Dzen2 para hacer más cómodo el acceso a las cámaras, sin tener que abrir la consola de texto, y como soy fan de mplayer (hoy más que ayer) decidí reemplazar el uso de xawtv por mplayer.
Sabia decisión. El rendimiento y consumo de CPU que hacía Xawtv con las ocho cámaras abiertas es muy bajo, aprox. 4-5% ( -nodga -noxv ), pero con mplayer todavía más ridículamente bajo, moviendose entre un 0% y 1%. (si ya sabía yo que me gustaba mplayer por algo)

Una captura de pantalla

Carga retrasada de blip

La cadena para abrir el vídeo emitido por Motion vía vloopback esmplayer tv:// -tv device=/dev/video13:driver=v4l:width=320:height=240:fps=24 (es obligatorio el uso de width, height y fps) Como actualmente dispongo de ocho cámaras, los dispositivos de salida de video vloopback van desde el device13 al device27 de dos en dos (13,15,17,…).
Con lo cual es script contiene:!/bin/sh
FONT='-*-fixed-medium-*-*-*-12-*-*-*-*-*-*-*'
(echo "camaras"; {
c=1
for n in `seq 13 2 27`; do
echo "^p(20)camara $c^p(200);mplayer tv:// -tv device=/dev/video$n:driver=v4l:width=320:height=240:fps=24 -quiet"
c=$(expr $c + 1)
done })|dzen2 -x 10 -y 200 -w 120 -sa l -fn $FONT -l 8 -p -m

No es muy elegante, pero funciona.

domingo, 20 de julio de 2008 (Hace 134 dias)

Me han llegado muchas consultas al buzón acerca de la correcta configuración de Motion y el applet Cambozola para JAVA con el cual servir en streaming las imágenes capturas por Motion de alguna de nuestras webcam. Como no pretendo convertir mi buzón de correo personal en un consultorio técnico (sirva esto como disculpa a todos aquellos a los que no he respondido en privado) dejo por aqui los pasos a seguir para poder mostrar en una pagina web las imágenes y/o secuencia de imágenes capturadas usando el applet Cambozola.jar.

La mayor parte de los problemas están motivados por desconocimiento del funcionamiento de un servidor web público y problemas a la hora de permitir el acceso público a las imágenes servidas por Motion en un puerto diferente al 80. Siguiendo estas lineas deberías de estar en condiciones de mostrar públicamente las imágenes servidas por 1 webcam USB conectada a tu ordenador.

Evidentemente hay varias modos de hacer lo mismo. En los siguientes pasos detallo el modo por el cual yo opté en su momento. Probablemente debas adaptarlos a tu propia distribución GNU/Linux. Los siguientes pasos está hechos sobre un servidor Apache 2.1 corriendo en openSuSe 11.0.

Para mostrar en una web las imágenes «capturadas» por Motion de alguna de nuestras webcams necesitamos:

  • Una ó más webcam instaladas y funcionando
  • Motion 3.2.10
  • Servidor web apache con módulo Proxy cargado
  • el Applet JAVA cambozola.jar (la página oficial lleva varios dias caida. Podeis descargar el applet desde aqui)

Sigue leyendo…

sábado, 29 de septiembre de 2007 (Hace más de 2 meses)

Esta primavera estuve poniendo la webcam a los canarios mientras criaban, fue divertido seguir durante un par de meses el crecimiento de los polluelos. En aquella ocasión hice uso de Spcatools un servidor de videostreaming para Linux.

Ahora, por motivos bien diferentes he vuelto a conectar la cámara. Otro objetivo, otro software.
En esta ocasión estoy usando Motion, software para Linux especialmente diseñado para detectar movimientos a través de la webcam y ejecutar eventos.

Viendo la secuencia de capturas que hice hace unos dias es facil comprobar que «motion» pretendía detectar en casa. Nota: Los fotogramas están tomados en el patio de casa, al pie del limonero. Pero el «problema» está ya solucionado

Motion funciona como la mayoría de los servidores de webcam: se lanza el programa, este detecta la webcam y vuelca las imágenes a través de un puerto indicado en el archivo de configuración para que estas sean accesibles a traves de la web.
La particularidad de Motion es que compara al vuelo las imágenes captadas en busca de cambios entre fotogramas consecutivos. Si la diferencia de pixels modificados entre dos fotogramas es superior al «threshold» (umbral) establecido en el archivo de configuración se disparan los eventos programados.

Normalmente estos eventos suelen consistir en sencillos scripts que ejecutan tareas, del tipo: «Guardar imagen como xxxx.jpg en la carpeta yyy«, «Subir imagen al servidor ftp», etc… esto solo está sujeto a la imaginación del usuario, las posibilidades son muy extensas: apaga el ordenador si alguien se acerca.
Además, entre otras posibilidades, Motion viene preparado para capturar imágenes de camaras web ajenas, accesibles por internet, de tal manera que podamos «vigilar» lo que muestran otras webcams y programar el ordenador para que actue en consecuencia. Sigue leyendo…

miércoles, 21 de enero de 2015 (Hace 315 dias)

Creo estar hace tiempo curado de versionitis informática, a saber: esa manía/costumbre/way-of-life de andar instalando/actualizando programas y sistemas operativos constantemente, de forma compulsiva y (sobretodo) innecesaria.

Disipador de la CPU

O al menos yo lo intento, el problema es que los programas avanzan independientemente de lo que tu quieras hacer con tu consumismo informático y lleva un día en que si quieres probar algo que no existía dos años atrás no puedes porque directamente el mínimo exigido para funcionar está muy por arriba de donde tu te quedaste. Digikam, GIMP, etc.. hace ya tiempo que habían dejado de ser actualizables. Los repositorios oficiales de openSuse 11.4 fueron cancelados hace tiempo, aunque gracias a repositorios independientes y compilando por mi cuenta puede ir soluciando cuestiones.
A principios de Diciembre para probar ya no recuerdo que cosa, decidí que actualizarías las KDE y a partir de ahí ir actualizando hasta resolver todas las dependencias que surgieran. Todo bien hasta que llegó el momento de reiniciar y llegaron los problemas llegó el problema. Después del reinicio el sistema no arranca, ni produce pitido alguno, ni era posible acceder al SETUP de la BIOS. Con el polímetro mido la fuente de alimentación, que funcionaba correctamente. Quité todo los módulos de memoria (no pita), desconecté los discos duros (no pita), a la placa base parecía darle lo mismo que hubiera o no memoria y discos duros. Placa base muerta. Sospecho que el problema podría venir por la pila botón de la placa. Este ordenador, salvo que ocurra algo raro no se apaga nunca y prácticamente se reinicia una vez cada tres meses. Está montado sobre un SAI de 600W con lo que ni los cortes de luz lo apagan. Tengo el pálpito indemostrable de que la pila estaba agotada y fué responsable de que en el momento del reinicio se dañase el arranque de la BIOS. Probé a cambiar la pila, a resetear con hardware con los jumper de la placa pero con nulo éxito.
Nueva placa…, y claro, casi todo los adosados a ella. La nueva motherboard solo trae conexiones SATA, a mis discos ATA/IDE les dió la risa. La memoria RAM ya no es DDR2 con muesca en el pin 32 (es un decir) sino DDR3 con muesca en el pin 34. El socket del procesador también cambia. En fin, pude conservar la propia torre ATX, la fuente de alimentación, gráfica Nvidia y la capturadora. Todo lo demás es nuevo. Afortunadamente los discos duros están como nuevos y funcionan perfectamente por lo que en las últimas semanas ha tocado recuperar configuraciones y archivos al nuevo sistema y reconfigurar todo.

Esquema montaje dispositivosEsquema montaje dispositivos

Ahora este servidor web de Cuaderno de campo corre un openSuse 13.2 a 64bits con ATHLON de cuatro núcleos a 4.3Ghz, 8Gb RAM, la misma Nvida de antes (GT630) y tres discos duros (2 SATA y IDE+Adaptador) que suman unos 2,3 Tb, mas su correspondiente DVD, lector de tarjetas, tarjeta TV de ocho canales para las webcams, USB 3.0, etc…

Lo nuevo en openSuse 13.2

Obviamente si vienes de openSuse 11.4 los cambios en el sistema son poca cosa pero algunos si que me han pillado por sorpresa.
Por ejemplo la distribución por defecto de las particiones de instalación del sistema han cambiado bastante. Ahora / se instala por defecto separado de /home (algo que ya hacíamos muchos antes de forma manual) y se pasa del sistema Ext2 ó Ext3 a BtrFS para root y XFS para /home

Sigue leyendo…

domingo, 21 de septiembre de 2014 (Hace 72 dias)

Llevo unos días alucinando con la calidad fotográfica de mi nuevo móvil, un Samsung Galaxy S4. Obviamente está todavía muy lejos de la calidad, la comodidad y la versatilidad que se obtiene con una cámara fotográfica DSLR, pero algo que ni siquiera me había planteado hasta el momento, como es la posibilidad de tratar y archivar conjuntamente las fotografías del móvil y las de la Nikon empieza a plantearse ya como una opción bastante lógica.

     
  Lagartija sobre algarrobo. Galaxy S4  
  Lagartija sobre algarrobo. Galaxy S4  

A principios de Septiembre, coincidiendo con mi cumpleaños decidí actualizar mi viejo HTC Wildfire y me hice con un flamante Samsung Galaxy S4. Entre sus (obviamente) múltiples ventajas sobre el HTC el S4 está la cámara que incorporar de nada menos que 13 Mg (la Nikon D7000 tiene 16Mg) y otra cámara delantera de 2 Mg. Con 2 Gb de memoria RAM y un procesador de Qualcomm a 600 Mhz el teléfono va sobrado para tomar fotografías con tiempos de respuesta de décimas de segundo e incluso para grabar vídeos de alta definición de 1080 px x 30fps y tomar fotografías al mismo tiempo, grabar bajo condiciones de luz muy bajas (f: 2.2).

El primer paso fue rootear el nuevo teléfono, algo que (de nuevo) comparado con la pesadilla que supuso rootear el HTC Wildfire hacerlo en el Galaxy S4 fue un juego de niños. Segundo paso desinstalar todos los programas preinstalados de serie y desinstalables si no está rooteado el teléfono: Facebook, servicios varios de Google, finanzas, deportes, tiendas, etc…
Una vez limpio el móvil de polvo y paja, reinstalar una serie de aplicaciones a las que ya me he acostumbrado y resultan fundamentales.

NotaDonde digo que es un programa es gratuito ó de pago me refiero a que estoy valorando la versión de pago ó la gratuita. Casi todos los programas gratuitos disponen de su versión mejorada de pago y viceversa, los de pago tienen su versión lite ó trial para probarlos sin pagar.

Sigue leyendo…

jueves, 7 de febrero de 2013 (Hace 298 dias)

V4l2loopback es un módulo para el kernel linux que llevaba tiempo buscando. Desde hace ya años vengo usando su versión obsoleta para V4L (y seguiré usando todavía bastante) y que permite acceder a un stream de vídeo de algunas de las webcams que tiene «secuestradas» Motion.
Hacía tiempo que busca la versión V4L2 pero aunque encontré algunos proyectos interesantes (este es el más desarrollado) por una cosa o por otra no acaban de funcionar. Mira tu por donde encontré un módulo que funciona perfectamente probando la aplicación Droidcam para el telefono.

Nota: aunque las anotaciones siguientes están probadas y comentadas para Linux (opensuse 11.4) todo es usable tanto en Windows como Mac, teóricamente.

Droidcam es una aplicación para Android que permite usar el teléfono como webcam innalambrica. Activas la cámara del teléfono y accediendo a ella desde el ordenador usarla para emitir videoconferencias (Skype) por ejemplo. Funciona sorprendentemente bien y es un esquema muy sencillo: Al lanzar Droidcam en el movil se inicia un servidor en el teléfono que se pone a la escucha tras mostrarnos una http://ip:puerto de conexión. A continuación iniciamos una mini-aplicación de escritorio que tras indicarle la referida http://ip:puerto de nuestro movil conecta con el teléfono, inicia la cámara y comienza a descargar el streaming de vídeo de su cámara volcandolo al dispositivo virtual de nuestro ordenador (/dev/video0 , por defecto).
Una vez hecho esto solo tenemos que decirle a Skype (u cualquier otra aplicación) que conecte con /dev/video0 para emitir la imagen captura desde el móvil como si una webcam innalámbrica se tratase.

Este dispositivo virtual /dev/video0 se crea en el momento que cargamos el módulo v4l2loopback
sudo modprobe v4l2loopback
y este módulo podemos descargarlo desde la web del desarrollador de Droidcam, solo es necesario descargar y hacer
make && sudo make install

¿que para que sirve v4l2loopback?
pues básicamente para reutilizar el streaming de vídeo de algún dispositivo ó archivo en otro dispositivo o archivo. Podemos, por ejemplo, volcar el contenido de una webcam pública rtmp://… en un /dev/video3 local y acceder a él como si se tratase de un dispositivo propio ó bien emitir en skype una película AVI de vídeo como si fuese nuestra webcam o hacer un streaming en nuestra web con nuestro álbum de fotos del viaje. En definitiva jugar de forma indefinida con un flujo de vídeo manipulando y aplicando efectos.
yuv4mpeg_to_v4l2 < /tmp/tuberia & mplayer /home/usuario/mis-películas/Skyfall.avi -vf scale=320:240 -vo yuv4mpeg:file=/tmp/tuberia
La líneas anteriores hacen uso de yuv4mpeg_to_v4l2 que podéis descargar y compilar desde aquí y lo que hacen es volcar a un archivo fifo temporal una película y a continuación pasar este streaming a un dispositivo que yuv4mpeg_to_v4l2 reconoce como gestionado por el módulo v4l2loopack (por eso no hay que indicar /dev/video0 en línea) y desde vide0 es ya accesible para otros programas. Un método identico al que ya usamos aquí y que podriamos usar para coger un streaming de internet y volcarlo como si fuese nuestra webcam.

Conectando la cámara del teléfono con Droidcam y v4l2loopback y accediendo a ella desde el escritorio con mplayer para mostrar lo que captura la videocámara conectada a /dev/video9 conseguimos un bonito bucle de pantallas.

Cuaderno de campo es un blog desarrollado y mantenido por Trebol-a y en el que escriben Trebol-a, Miguel, Merche y Mónica
Si quieres saber algo más sobre los autores acude a la página acerca-de, si quieres contactar con alguno de nosotros hazlo a través de contactar ó de Google+

Creative Commons: Todo el contenido de la web (imágenes, textos, vídeos, a excepción de aquellas obras de otros autores enlazados por Cuaderno de Campo) se acoge a los términos expresados en la licencia Creative Commons