Today I was converting an mp4 video to a gif and I figured I’d document some commands that helped in the process. I used ffmpeg to do this. You can install it on Mac or Linux using homebrew:
brew install ffmpeg
For optimal quality, generate a color pallette based on a timestamp in the video:
ffmpeg -ss 00:00:00 -t 1 -i video.mp4 -filter_complex "[0:v] palettegen" palette.png -frames:v 1
This will generate a palette.png in the local folder. Now you can use that, to generate a gif:
ffmpeg -i video.mp4 -i palette.png -r 30 'final-gif.gif' -filter_complex "paletteuse"
The command takes an mp4 and the generated pallette.png as inputs, as well as a framerate (30 in this case) via the r argument.