Today I’m going to show you a very small script that allows you to convert any video (as long as it is supported by mplayer) to a GIF.
mplayer is popular media player available for multiple operating systems that support a wide range of video formats. The convert tool is an utility that lets you convert between multiple image formats among other definitions. Since the mplayer takes screenshots using jpeg format, we need to use the convert tool to do the convertion to aGIF format.
Copy the following code, save it to a file and change its permissions (chmod a+x) and you are ready to roll 🙂
#!/bin/sh TMPDIR=/tmp/animated shopt -s nocaseglob if [ ! -d "$TMPDIR" ] then mkdir $TMPDIR fi \rm $TMPDIR/* &> /dev/null if [ $# -lt 3 ] then echo -e "Usage: $0 \nExample:\n$0 00:15:11 10 myvideo.avi 320:240" exit 1 fi if [ -n "$4" ] then SCALE="scale=$4" fi echo "Generating screenshots. Please be patitent..." mplayer -ao null -ss $1 -endpos $2 $3 -vo jpeg:outdir=$TMPDIR/ -vf $SCALE &> /dev/null if [ -f $TMPDIR/00000001.jpg ] then echo "Finished generating frames. Assembling the animated GIF..." convert -delay 5 $TMPDIR/*.jpg $TMPDIR/output.gif echo "Done! Please check the $TMPDIR/output.gif" exit 0 else echo -e "Oops\! Something went wrong and the frames were not generated. Check your parameters\!" exit 1 fi
Just try it and let me know 😉