Create a gif screencast, a bash script



Categories: useless Tags: ffmpeg slop useless things


It all started with this great post: GIF screencasting; the UNIX way

what the expected result is like this:

like this:

And like this:

What’s that?

Well, it’s a bash script. What it does is simply amazing: select a region, and turn it into a high quality gif.

In the back:

However, xrectsel doesn’t work well in my distro(Ubuntu 16.04LTS).

So I made some modifications and replaced xrectsel with slop 1.

Sooo here’s what I get:


Here is the little script:


read -r X Y W H G ID < <(slop -f "%x %y %w %h %g %i")
TMP_AVI=$(mktemp /tmp/outXXXXXXXXXX.avi)

ffmpeg -s "$W"x"$H" -y -f x11grab -i :0.0+$X,$Y -vcodec huffyuv -r 25 $TMP_AVI \
&& convert -set delay 5 -layers Optimize $TMP_AVI ./out.gif 

I find that imgur will transform uploaded gif into mp4 again…

here is what I got from them:

compared with the source file 1.avi 591.7MB 1.gif 17.4MB 1.mp4 4.8MB

imgur surely did a great job on improving the network traffic!

  1. for ffmpeg, i use sudo apt-get; for slop, it seems for other distro to be possible to install with package manager, but in ubuntu 16.04, some dependencies needs to be installed manually