There are times when sharing a GIF is easier and more convenient than sharing a video file. With the right compression it often will be smaller too. You can easily use FFmpeg to convert a video file to a gif.

ffmpeg -i input.mp4 -vf "fps=15,scale=720:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 output.gif
  • fps sets the frame rate. I found about 15 to give a quality gif while keeping a small size.
  • scale will resize the output to the pixels wide and automatically determine the height while preserving the aspect ratio. 720 had good quality.
    • lanczos is the scaling algorithm
  • split has everything done in one command.
  • loop determines how the GIF loops.
    • 0 is infinite looping
    • -1 is no looping
    • 1 will loop once, so it would play twice.

And that's it!