Last active
June 17, 2016 17:35
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 | |
} |
Nice script. Worked like a charm. Thank you.
Looked around for so many methods, and this was the easiest, and gave the clearest gif. Thanks so much for sharing!
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.
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
I love this idea. I've successfully saved in my .bash_profile however it keeps giving me error as to command not found: movetogif.
Update: (after 10 mins):
I figured, the same old problem I have, instead of movtogif I was typing movetogif...oops 😄 It's all sorted..thanks for this wonderful command lines.