I used the ShareX screen recorder (https://getsharex.com/) to record each GIF at 30 fps. I believe underneath ShareX is using ffmpeg to do the encoding. They were a bit of a pain to make, as it's a very manual process to get something that looks rehearsed and smooth.