rendered paste body#
#--- cgscreencap.sh - Screencap for movies until xvidcap is fixed
#
# Uses xwd (xorg-x11-apps) netpbm
#
# Usage: cgscreencap.sh sec/frame
#
# Example: cgscreencap.sh 0.2 temp_01 # ~5 frames/sec
# Copyright: capgadget 2006
# License GPL v2
#
echo "Starting $0 `date`"
if [ -z $CAPTURE_DIR ]
then
echo "Please define CAPTURE_DIR e.g. export CAPTURE_DIR=/usr/local/capture"
echo "Screencaps will be in this directory"
exit
fi
. timediff.sh
SCREENCAP_DIR=$CAPTURE_DIR/`whoami`.cgscreencap/$2
if [ ! -d $SCREENCAP_DIR ]
then
echo "$SCREENCAP_DIR not found. Creating $SCREENCAP_DIR"
mkdir $SCREENCAP_DIR
else
echo "$SCREENCAP_DIR found"
fi
#rm $SCREENCAP_DIR/cgscreencap.*.xwd
#
#--- Get screen ID
#
echo "Mouse over to screen to capture "
xwinid=`xwininfo|grep "Window id:"|awk '{print $4}'`
echo "Window ID = $xwinid"
nframes=0
crank_turns=0
max_cranks=10
time1=`date +%s.%N`
fps="NA"
while [ 1=1 ]
do
nowtime=`date +%Y%m%d%H%M%S%N`
xwd -silent -id $xwinid |xwdtopnm|pnmtojpeg> $SCREENCAP_DIR/$2.cgscreencap.$nowtime.jpg &
# xwd -silent -id $xwinid |xwdtopnm|pnmtojpeg> $SCREENCAP_DIR/$2.cgscreencap.$nowtime.jpg
nframes=`expr $nframes + 1`
crank_turns=`expr $crank_turns + 1`
if [ $crank_turns -eq $max_cranks ]
then
time2=`date +%s.%N`
t1=`timediff $time1 $time2`
fps=`echo "9 $t1 $crank_turns"|bc /usr/local/bc/divfloat.bc`
crank_turns=0
time1=`date +%s.%N`
echo "$2 $nframes $fps"
fi
if [ -f $SCREENCAP_DIR/stop ]
then
echo "$SCREENCAP_DIR/stop found"
rm -vf $SCREENCAP_DIR/stop
exit
fi
# Add pause loop here
sleep $1
done
exit
#########################################
##### EXAMPLE MAKE MOVIE FROM JPEGS #####
#########################################
#
#---- mkmovie.xvid.sh
#
in_type=$1
out_pfx=$2
outfps=$3
echo "in_type=$1 out_pfx=$2 outfps=$3"
mencoder "mf://*.$in_type" -mf fps=$outfps -o $out_pfx.f$outfps.xvid -ovc xvid -xvidencopts bitrate=1200 #-oac mp3lame -lameopts cbr:br=128
ls -l $out_pfx.f$outfps.xvid