#!/bin/bash TMP_AVI=$(mktemp /tmp/outXXXXXXXXXX.avi) GEOMETRY=`ffcast -s % echo "%D+%g"` DISP=`echo $GEOMETRY | cut -d'+' -f1` SIZE=`echo $GEOMETRY | cut -d'+' -f2` X=`echo $GEOMETRY | cut -d'+' -f3` Y=`echo $GEOMETRY | cut -d'+' -f4` if [ -z "$1" ]; then OUTPUT=out.gif else OUTPUT=${1}.gif fi ffmpeg -y -f x11grab -framerate 25 -video_size $SIZE -i $DISP+$X,$Y -codec:v huffyuv -vf crop="iw-mod(iw\,2):ih-mod(ih\,2)" $TMP_AVI convert -set delay 10 -layers Optimize $TMP_AVI $OUTPUT