webcam come sensore di movimento

Ebbene ho una webcam.
Oggi ho provato ad usarla con il programma “webcam” (che fantasia).
Il programmino richiede una webcam compatibile con v4l2, poi, dice che funziona.
Sì funziona ma io mi stufo subito.
Poi scopro l’opzione ‘trigger’:

With ‘trigger’ set to a non-zero value webcam will upload the image only if the content of the image has changed. It just looks for the maximum difference between the last uploaded and current image and if it is greater than the specified value the image will be uploaded.

\o/
Ma tutto ciò apre infinite possibilità!
Metto ‘trigger’ a 100 e mi infilo nei meandri del bash scrpting.
Infatti ‘webcam’ registra una jpeg, sovrascivendola tutte le volte che cattura.
Quindi ho scritto uno script che avvia ‘webcam’, rinomina ogni nuova cattura e tiene il conto delle immagine salvate:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash
 
cd $HOME/immagini/bigbrother/
i=frame.jpg
touch frames.list
n=`tail -n 1 frames.list`
sleep 5
webcam /etc/webcam/bigbrother.conf &> bb.log &
echo x-key to stop
until [ "$input" = "x" ]
do
  read -t1 -s -n1 input
   if [ -f $i ]
   then
     n=$[n+1]
     mv $i $n.jpg
     echo $n >> frames.list
   fi
done
killall webcam

Adesso non mi basta fare altro che trovare il modo di creare un video con ffmpeg ed metterlo nello script.

Risorse:
bash @ tldp.org
webcam @ aboutdebian.com