It's 2014, animated GIFs are everywhere!
I wanted to be able to add small screencasts to my GitHub projects, because you know,
movies in readme = catch kids attention
Example created with:
gifify back.mp4 -o back.gif --from 01:48:23.200 --to 01:48:25.300 --resize 600:-1 --compress 60 --colors 200 --text "What?..What?What?"
Unfortunately, GitHub does not allows embedding video files in READMEs.
I searched for tutorials, tools and finally found a solution to create GIF screencasts: build my own tool.
This tutorial will let you generate nice and small GIF screencasts.
GIFs to the rescue!
Record a video file of your screen
Before you can obtain your GIF, you need to generate a video file of your screen. It's not a GIF, it's a regular avi/mp4/mkv etc. Any format.
There are plenty of options for OSX users to record a video of your screen.
On Linux, I use FFcast, there are debian/ubuntu and archlinux packages.
With FFcast, you can select an area and it will record your screen as an mkv movie (by default).
FFcast is a wrapper to FFmpeg, sort of.
Then record a movie:
ffcast -s rec
It will create a
Convert your movie into a GIF: Gifify!
Because I couldn't find a great movie to GIF converter, I made one.
It seems to have served a lot of people. It got featured on lifehacker and hackernews homepage, yeepee!
See the Gifify homepage to see how to install it.
Once you have it, turn you screencast into a gif:
gifify screencast.mkv -o screencast.gif
See the amazing options of gifify:
> gifify -h Usage: gifify [options] [file] Options: -h, --help output usage information -V, --version output the version number --colors <n> Number of colors, up to 255, defaults to 80 --compress <n> Compression (quality) level, from 0 (no compression) to 100, defaults to 40 --from <position> Start position, hh:mm:ss or seconds, defaults to 0 --fps <n> Frames Per Second, defaults to 10 -o, --output <file> Output file, defaults to stdout --resize <W:H> Resize output, use -1 when specifying only width or height. `350:100`, `400:-1`, `-1:200` --speed <n> Movie speed, defaults to 1 --subtitles <filepath> Subtitle filepath to burn to the GIF --text <string> Add some text at the bottom of the movie --to <position> End position, hh:mm:ss or seconds, defaults to end of movie
Have fun with GIFs, but remember:
On modern hardware GIF is the slowest and most expensive video codec. Can we please allow it to be obsoleted?
From https://pornel.net/efficient-gifs#sec44. My take? YOLO!