Pasadas unas semanas desde que publiqué el sistema de vigalancia casero, me apetecía mejorarlo un poco, quería que además de que guardara constancia del ladrón, pudiera acceder a sus imágenes y vídeos allá donde estuviera. Sin necesidad de tener el portátil delante y con la única condición de tener una conexión a Internet, ya fuera GPRS, UMTS o WIFI para acceder desde mi móvil Nokia N80.
Así que me puse manos a la obra, tomé alguna idea de otros sistemas, y modifiqué partes de código según mis necesidades.
Así el nuevo sistema, ya no envía por email las fotos y vídeos del intruso, sino que las sube a mi servidor ftp y desde allí puedo acceder a ellas, desde una carpeta protegida por contraseña en el servidor web del mismo servidor.
Así el nuevo sistema, ya no envía por email las fotos y vídeos del intruso, sino que las sube a mi servidor ftp y desde allí puedo acceder a ellas, desde una carpeta protegida por contraseña en el servidor web del mismo servidor.
¿Pero cómo poder ver los vídeos desde el móvil? el N80 como otros muchos de Nokia sólo nos permite determinados formatos y a una resolución determinada. También hubiera sido posible la retransmisión en directo desde mi casa al móvil mediante streaming rtsp y el visor incorporado en el N80, leí un poco de información relativo al streaming rtsp para N80 y casi todo eran problemas, además de que para cuando yo me conectara a ver lo que ocurriera en casa puede que el intruso ya no estuviera en el campo de visión o bien hubiera desconectado mis ordenadores.
Por esta razón lo que hago es subir inmediatamente las imágenes en jpg por una parte y por otra los vídeos del intruso en formato 3gp, mediante conversión gracias a ffmpeg.
Por esta razón lo que hago es subir inmediatamente las imágenes en jpg por una parte y por otra los vídeos del intruso en formato 3gp, mediante conversión gracias a ffmpeg.
Así en el momento en que el servidor de seguridad motion escribe una imagen en el disco duro, ésta es subida al ftp y cuando motion cierra un vídeo, éste vídeo se codifica en 3gp con resolución 352x288 y también se sube al ftp. Finalmente las imágenes y vídeos subidos se almacenan en un directorio a parte.
A continuación incluyo el código de mi archivo de configuración de motion(parte de el) /etc/motion.conf, y el script de envió de vídeo al servidor (el de imágenes es parecido).
# Command to be executed when an event starts. (default: none)
# An event starts at first motion detected after a period of no motion defined by gap
on_event_start java /home/daniel/java/gdata/java/src/EnviaSMS usuario password "http://miservidor.es/micarpetasegura/"
# Command to be executed when an event ends after a period of no motion
# (default: none). The period of no motion is defined by option gap.
; on_event_end value
# Command to be executed when a picture (.ppm|.jpg) is saved (default: none)
# To give the filename as an argument to a command append it with %f
on_picture_save /home/daniel/motion/base/usr/bin/upload-pictures.sh %f
# Command to be executed when a motion frame is detected (default: none)
; on_motion_detected value
# Command to be executed when a movie file (.mpg|.avi) is created. (default: none)
# To give the filename as an argument to a command append it with %f
; on_movie_start value
# Command to be executed when a movie file (.mpg|.avi) is closed. (default: none)
# To give the filename as an argument to a command append it with %f
on_movie_end /home/daniel/motion/base/usr/bin/upload-videos.sh %f
upload-videos.sh
#!/bin/sh
FILE=`echo $1 | awk '{print substr($1,19,17)}'`
ffmpeg -i "/home/daniel/motion/$FILE.avi" -ar 128000 -ac 1 -acodec aac -vcodec mpeg4 -s 352x288 -r 24 -b 350 -ab 32 "/home/dani/motion/$FILE.3gp"
#upload ftp
HOST='ftp.tuservidor.es'
USER='*********'
PASSWD='***********'
echo $1 | awk '{print substr($1,19,23)}'
echo "el nombre del file es: "
echo $FILE
cd /home/daniel/motion/
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd /www/tucarpetasegura/videos
put $FILE.3gp
quit
END_SCRIPT
#move to uploaded
mv /home/dani/motion/$FILE.avi /home/daniel/motion/uploaded/videos
mv /home/dani/motion/$FILE.3gp /home/daniel/motion/uploaded/videos
echo "$FILE moved to the ftp server"
exit 0
Nótese que el texto del mensaje es la dirección URL donde se encuentran nuestros vídeos. Por ejemplo http://miservidor.es/directorioconpass/videos. Así, pasado un minuto y algo más desde que motion detecta al malo, podremos verlo en nuestro móvil y avisar con certeza a la policía.
Enlaces:
Sistema de videovigilancia 1
Sistema de seguridad casero
Usando el API de Google Calendar: Alarmas por SMS