Skip to content

Instantly share code, notes, and snippets.

@imkevinxu
Last active June 17, 2016 17:35
Show Gist options
  • Select an option

  • Save imkevinxu/96e3cb1d7e308f867a0f to your computer and use it in GitHub Desktop.

Select an option

Save imkevinxu/96e3cb1d7e308f867a0f to your computer and use it in GitHub Desktop.
Convert an animated video to gif from http://chrismessina.me/b/13913393/mov-to-gif
# Convert an animated video to gif
# Works best for videos with low color palettes like Dribbble shots
#
# @param $1 - video file name like `animation.mov`
# @param @optional $2 - resize parameter as widthxheight like `400x300`
#
# Example: vidtogif animation.mov 400x300
# Requirements: ffmpeg and gifsicle. Can be downloaded via homebrew
#
# http://chrismessina.me/b/13913393/mov-to-gif
function vidtogif() {
if [ -n "$1" ]
then
mkdir pngs gifs
ffmpeg -i "$1" -r 10 pngs/frame_%04d.png
sips -s format gif pngs/*.png --out gifs/
cd gifs
if [ -z "$2" ]
then
gifsicle *.gif --optimize=3 --delay=3 --loopcount > ../animation.gif
else
gifsicle *.gif --optimize=3 --delay=3 --loopcount --resize "$2" > ../animation.gif
fi
cd ..
rm -rf pngs gifs
else
echo "Use video file as first parameter"
fi
}
@ericodes
Copy link
Copy Markdown

ericodes commented Jan 8, 2016

Looked around for so many methods, and this was the easiest, and gave the clearest gif. Thanks so much for sharing!

@JamesMcMahon
Copy link
Copy Markdown

Thanks for this!

You may want to add

#!/usr/bin/env bash
#

To the top so it works if bash isn't your default shell.

@Nathan187
Copy link
Copy Markdown

what exactly is suppose to happen. i've updated home brew, and installed ffmpeg and gifsicle like it says. when i enter the command...nothing happens. how do i know if the file is created or something?

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