Recientemente he adquirido una tarjeta capturadora de vídeo de bajo coste en Ebay con la cual he ampliado el sistema de video pajarovigilancia de casa. Lo que empezó con una cámara en el comedero de pajaros de la terraza, ahora incluye las salamanquesas del jardín, una de las cajas nido y una vista general del jardín.

Evidentemente el coste de montar este tinglado puede aumentarse todo lo que se quiera, pero si no necesitais una calidad impresionante y os dais un poco de maña con el soldador de estaño podeis ahorrarse un dinero considerable y montar un sistema de videovigilancia con detección de movimiento muy versatil por poco dinero.

Como me consta que nos visitan algunos tentados de montarse un sistema casero os comento por aquí como lo hice en mi caso/casa y algunos aspectos acerca de los materiales y sus precios.

Idea: montar un sistema de videovigilancia casero, de hasta 4 videocamaras y conectadas a un ordenador personal con Linux/openSuSe y Motion como software de detección de movimientos y grabación.

Observaciones: Creo (?¿) que la legislación española impide la grabación de la vía pública por estos sistemas de videovigilancia privados, sin autorización y sin advertencia pública de que se está grabando. Desconozco si esto es así ó los aspectos concretos del tema puesto que no es mi intención grabar la calle ó algúna zona pública (solamente la cámara que tengo enfocada al jardín podría tener algún tipo de impedimento, pero tengo intención de quitarla de ahí en breve). Asi es que si pretendeis grabar vuestro jardín, terraza, balcón u otros, enterarse antes de los aspectos legales del asunto. Sigue leyendo…

miércoles, 29 de marzo de 2017 (Ayer)

Usando una cámara deportiva SJ4000 (un clon barato de las GoPro) y dos paneles de infrarrojos de mis viejas cámaras vigilancia me he montado una cámara de infrarrojos para fototrampeo que ya empieza a dar sus frutos.
Se podría decir que la he construido casi específicamente para Tejones (Meles meles) que están estaban resultando de los más esquivos.

Tejón bajo un almendroTejón bajo un almendro

Aunque es difícil generalizar (existen variaciones individuales, específicas e incluso locales) hay animales que toleran bien que de repente y en plena noche se encienda una luz blanca sobre sus cabezas y otros que lo llevan realmente mal.
Las ginetas por ejemplo suelen llevarlo medio bien. De la pareja que estuve filmando hace un año, el macho era confiado en extremo (y lo sigue siendo) y la hembra menos. A los gatos monteses les pasa algo parecido, el macho es muy confiado (en este vídeo sólo aparece él) mientras que la hembra apenas si pude hacerle fotos.
Sigue leyendo…

jueves, 7 de febrero de 2013 (Hace más de 1 mes)

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.

domingo, 29 de mayo de 2011

Estoy probando el servicio de streaming de Ustream. Si en la ventanita adjunta podeis leer “STREAM Live” en la esquina superior derecha ó en la barra aparece “On Air” ó el número de conexiones establecidas es que la conexión está activa y darle al PLAY podreis conectar con la webcam que tengo puesta en el comedero de casa.

¿La diferencia con mi propio servidor de cámaras web? pues evidentemente el ancho de banda. Con la conexión que tengo en casa, la servidor se pueden conectar 3-4 personas a ver las cámaras, con este sistema se envía la imagen al servidor de Ustream mediante una aplicación flash y este se encarga de distribuirla (previa inserción publicitaria) a muchos más usuarios. Hace unos dias pudimos seguir en directo el lanzamiento de la Endevour de la NASA y según el contador de visitas que contiene el visor el número de conexiones sobrepasó tranquilamente las 100.000 personas.

Para evitar que el sistema os innutilize la cámara/s de casa es muy recomendable hacer uso del módulo vloopback (en GNU-Linux, en Windows creo que existe algo parecido pero no estoy seguro), de este modo vosotros seguis teniendo acceso local a vuestra cámara y la salida de esta cámara se deriva hacia Ustream.

Hace unos dias descubrí que este año si que parecen haberse decidido los gorriones a criar en uno de los nidales con camara web que instalé en casa. Además lo han hecho de la mejor forma posible: NO han llenado el interior de ramas innutilizando la cámara (como si hicieron en las cámaras del campo) sino que han construido una cama en la que se “entierran“, con lo que al menos se les vé facilmente entrar y salir.

Si todo marcha bien, en unos dias cuando empiezen a ser visibles los polluelos de gorriones (ahora creo que están incubando) volveré a conectar las webcam con Ustream para retransmitir al mundo el fabuloso acontecimiento de un gorrión comiendo.

miércoles, 14 de enero de 2009 (Hace 75 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.

sábado, 1 de noviembre de 2008

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.

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