Manejar Motion desde consola
miércoles, 10 de diciembre de 2008Hay un comando en GNU/Linux ideal para manejar Motion desde un terminal ó consola y cualquier otra aplicación que se gestione via web. lwp-request realiza requerimientos a servidores web y ficheros locales via POST e imprime la respuesta en consola. Creando un alias el manejo de Motion se reduce a «orden + opcion» sin tener que abrir un navegador para nada.
Por ejemplo, si ejecutais Motion y el puerto de administración es 8888, podeis añadir en vuestro archivo ~/.alias la siguiente líneaalias motionconf='lwp-request -C administrador:contraseña -b http://localhost:8888/'
a continuación reiniciais el terminal ó consola y basta escribir#desactivar la detección de movimientos en camara 2
motionconf 2/detection/pause
#reiniciar camara 6
motionconf 6/action/restart
#poner todas las cámaras en blanco y negro
motionconf 0/config/set?saturation=0
#escribir en el archivo de configuración
#los cambios efectuados en las cámaras
#nota: aunque se indique "escribir configuración de camara 4"
#realmente se sobrescriben TODOS
#los archivos de configuración que hayan sido modificados
motionconf 4/config/write
Motion capturing
sábado, 8 de noviembre de 2008 (Hace 13 dias) Seguro que cuando Kenneth ( el programador original de Motion ) se puso a desarrollar un programa de Motion capture tenía en mente otro tipo de «capture»… pero mira, por segunda vez el programa me ha servido para controlar y dar caza a la «innombrable» que corría por el patio, y que a fuerza de amontanar hojas secas en la caldera conseguía hacer saltar los plomos de casa un dia sí y otro también.
Anoche, escoba en mano, le expliqué en que consiste la pirámide ecológica, en concreto el apartado referido a cazador-presa.
Realmente, si no fuesen unos bichos tan repulsivos serán muy curiosos de observar. Son terriblemente inteligentes. En el montaje de vídeo que aquí os dejo ( utilizando solo algunas de las muchas grabaciones realizadas estos últimos 5-6 dias ) podeis ver el ingenio del animal para esquivar la trampa de pegamento que le tenía puesta en lo alto de la pared de enfrente por la que se colaba a diario ( para situarse un poco diré que la cámara estaba situada a unos 2 metros del suelo – lo que asoma por la parte de arriba son las tejas del techo de mi habitación en el patio)
Archivos configuración de Motion
sábado, 1 de noviembre de 2008 (Hace más de 2 semanas)Como lo comentaba a Fabián en un apunte anterior he dispuesto una carpeta donde el que lo desee puede consultar los archivos de configuración que estoy usando en Motion y el script encargado de generar los FLV y XML de la web. Los podeis consultar en http://camara.trebol-a.com/documentos.
Actualmente tengo funcionando 7 cámaras. Dejo solo uno de los archivos de configuración (de cámara 1 – comedero) ya que el resto son prácticamente idénticos y el archivo de configuración general de motion y encargado de cargar los 7 específicos.
Igualmente cuelgo el script bash que se ejecuta despues de cada grabación, (postgrabacion). Supongo que a nadie le va a servir de nada ya que además de algo farragoso el código (fruto de ampliaciones, añadidos, correcciones y ajustes continuos durante meses) es bastante específico, pero vaya, si alguno le sirve de algo ahí lo tiene. Para entenderlo mejor conviene saber que:
- El script espera recibir como primer parámetro la ruta absoluta a un archivo de extensión AVI, JPEG ó FLV (en minúsculas).
- Dicho archivo debe llamarse según el patrón: camara1_20081031193020.flv ( camara + número camara + _ + año + mes + dia + hora + segundo + . + extensión ).
- Si el archivo recibido es un AVI
- Crea un FLV y un thumbnail
- Crea ó corrige archivo XML general y el XML específco de su camara con el FLV recien creado
- Crea o corrige el enlace simbolico que apunta al último vídeo creado
- Dependiendo de la cámara de que se trate ejecuta un script externo para las estadísticas
- Realiza diversos avisos
- Si se trata de un JPG (snapshot)
- Simplemente lo mueve a la carpeta del dia en curso
- Crea o corrige el enlace simbólico que apunta al último snapshot creado
- Si se trata de un FLV y el segundo parámetro es la cadena «resumen» (se trata de un video timelapse horario generado en paralelo)
- Incorpora el FLV al XML general y al XML de su cámara
Eso, más algunas comprobaciones, correciones y demás.
Nota: Por motivos evidentes las rutas de trabajo no son las originales…. ni las contraseñas tampoco.
Parche educativo para gatos de Motion
domingo, 19 de octubre de 2008 (Hace más de 1 mes)Motion, ese programita de detección de movimientos que nosotros usamos en las cámaras, tiene muchas posibilidades o al menos tantas como tengan sus usuarios.
En la web plasma2002 han desarrollado un complejo sistema de educación felina basado en la detección de movimiento que parece funcionar bastante bien. Resumiendo: la nueva aplicación consiste en instalar una cámara que vigile una zona de casa, al detectar movimiento el ordenador activa una licuadora (muy ruidosa) y una luz estroboscópica (muy escandalosa), el resultado lo podéis ver en Blender Defender.
Seguro que despues de ver la página a más de uno se le ocurren múltiples nuevas aplicaciones.
Servir imágenes de Motion
domingo, 20 de julio de 2008 (Hace 124 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)
Detección de movimientos con Motion
sábado, 29 de septiembre de 2007 (Hace más de 1 mes)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…