Make sure ffmpeg is up-to-date:
brew update
brew upgrade ffmpeg
Convert a MOV into frames. Tweak the 2/1
if you want more or fewer frames.
mkdir frames
ffmpeg -i screen-recording.mov -r 2/1 frames/%03d.png
Optional: crop the frames to 600x400px using 824,690 as top/left
mkdir cropped
convert ??.png -crop 600x400+824+690 cropped/
Create the pallete.gif
ffmpeg -i cropped/%02d.png -vf palettegen palette.png
Aaaand create the GIF. The 6*PTS
is added to slow down the GIF frames.
ffmpeg -v warning -i cropped/%02d.png -i palette.png -lavfi "paletteuse,setpts=6*PTS" -y out.gif
Bonus tip: if you want the last frame to have a longer duration, just copy your last frame image a bunch of times and use new frame numbers as filename.
copy 20.png 21.png
copy 20.png 22.png
copy 20.png 23.png
copy 20.png 24.png
Sources: http://blog.pkh.me/p/21-high-quality-gif-with-ffmpeg.html
@monkeykim111
You can use -r which stands for “rate” to change the frame rate. It will generate the same result as using -framerate
From:
https://www.bannerbear.com/blog/how-to-make-gifs-from-images-using-ffmpeg/
As for the - extremely old - comment about transparency, and, granted there have been major advancements of which I don't know all of. Programs such as Photoshop or Gimp can be used to add effects, just make a gif from a series of images (which Photoshop and Gimp can also do) and add the effect(s) to each individual image.