Skip to content

Instantly share code, notes, and snippets.

@mbostock
Last active Jun 21, 2019
Embed
What would you like to do?
Screen Recording to GIF
license: gpl-3.0

If you haven’t already:

brew install ffmpeg gifsicle

Open QuickTime Player. File > New Screen Recording. Record. Trim as needed. Save as foo.mov.

First compute a good color palette:

ffmpeg -i foo.mov -vf 'scale=-1:-1:flags=lanczos,palettegen' foo-palette.png

Then make your GIF:

ffmpeg -i foo.mov -i foo-palette.png -filter_complex 'scale=-1:-1:flags=lanczos[x];[x][1:v]paletteuse' foo.gif

To drop frames, add fps=10, to the -filter_complex argument.

To crop, add crop=width:height:x:y, to the -filter_complex argument.

See also https://superuser.com/questions/556029/how-do-i-convert-a-video-to-gif-using-ffmpeg-with-reasonable-quality.

@maelp

This comment has been minimized.

Copy link

@maelp maelp commented Dec 21, 2014

Great! Also on osX you can use http://www.cockos.com/licecap although it is perhaps not scriptable from the command line :)

@davo

This comment has been minimized.

Copy link

@davo davo commented Jan 29, 2015

Sorry, Mike, line 7 should not be like this?

ffmpeg -i recording.mov -r 24 frames/recording-%03d.png

Anyway, great workflow... works like magic.

@mbostock

This comment has been minimized.

Copy link
Owner Author

@mbostock mbostock commented Feb 21, 2015

@davo Yeah. I deleted the mkdir frames step to fix.

@paulklemm

This comment has been minimized.

Copy link

@paulklemm paulklemm commented Oct 19, 2015

I really like the 5€ GIFBrewery tool for creating a gif from a movie file, because it has a bunch of handy functions build in, such as captions and conversion properties. I'm sure you can do all this with free tools, but this one is designed well and works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment