# #--- 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