Today, we are going to make an animated .gif using all free programs with no watermarks. (This version of this tutorial is not going to cover ripping videos off YouTube, you’ll have to look into that yourself if you’re interested in that.)
What you need:
For easily getting screencaps from videos:
For making screencaps into animated .gifs:
Download and install these as necessary.
For this example, I’m making a .gif from the 1925 silent film of The Phantom of the Opera, as it’s in the public domain and I happen to have it downloaded (doesn’t everyone?!).
Part one: Getting the screencaps
We’re going to need a set of screencaps from our video to form the frames of our animation, and Avidemux is very good for this.
Open your video in Avidemux. You might get messages from Avidemux about different options for dealing with your video depending on its format. This tutorial isn’t going to cover the details of Avidemux — as a general rule, just pick one, and if that doesn’t work, open the video again and pick the opposite.
Find the place you want your animation to start (try using the arrow keys to nudge to the perfect spot). Click the
button. Find where you want the animation to end, and click the
button.
Now File > Save > Save Selection as JPEG Images… Avidemux will save for you all of the frames in your selection as individual .jpgs, which could lead to a lot of images, so give your set of images a name and save them in an appropriate place.

Check to make sure Avidemux saved the images correctly.
Note: The important part of this step is to amass the frames you’ll need for the animation. If Avidemux doesn’t work with your video, you may need to open your video in an appropriate program and take screencaps yourself (roughly one every couple frames for the section of the video you’ll want to animate).
Part two: Create the Animation
Open GIMP and go to File > Open as Layers…

If you used Avidemux to generate images for you, you probably have a lot of them and won’t need all of them. Try selecting all the even- or odd-numbered images. Hit ‘Open’. GIMP will use each layer as a frame of your animation.
Now you’re going to want to crop and resize as necessary. In GIMP you crop using this tool:
Click and drag to choose the area you want to keep and hit enter to crop it. To resize, go Image > Scale Image… You probably don’t want most gifs to be over maybe 250px at most in height or width (and probably more around 150px).
Part three: Save the animation
Once everything looks peachy, go Filters > Animation > Optimize (for GIF). When the new window comes up, go File > Save As… Give your animation a name and be sure to end it in ‘.gif’.
GIMP will give you these export options, and be sure to pick ‘Save as Animation.’

In this dialog we can control the speed of the animation. 100ms will probably be sufficient.

For a gif to work on Tumblr, it needs to be under 500kb UPDATE: Now it’s 1MB! If your gif isn’t animating on Tumblr, you may need to cut down the file size by resizing the image or removing frames.
Using this process, we can produce a simple gif like this:

Yay!
A tip
In some cases, it won’t look good for a gif to run in a loop in this way, and you’ll want your gif to fade to black or white instead.
First, go to the last frame of the animation (that’s the layer at the very top of the layer list) and duplicate it (Layer > Duplicate Layer…). Then, create a new layer (Layer > New Layer…) and fill it with black (or white or any other color — I’m using black). Duplicate it, because you’ll need two.
Set the opacity on the first layer you made to about 50%.

Then merge it down (Layer > Merge down), so you end up with one layer that is a half-darkened version of the last frame of your image, and another layer that is all black.
You won’t want these frames to fly by at the same speed as your other frames, so you’re going to want to specify to GIMP how long those frames should last. To do this, edit the frame and put the frame delay, in milliseconds, in parentheses after the layer name. Something quicker than a normal frame, like 70-80ms, is probably good for the half-black layer, while something longer, like 800-1000ms is good for the all-black layer.

If we save the gif again using the steps above, we now have a gif that fades to black:

You can expand upon this to create a smoother transition or try and achieve other effects.
Conclusion
Hopefully now you understand how to make simple gifs on your own. If you run into problems with this tutorial, you can leave me a message in my ask box and I’ll try my best to help you out.
Go forth with the power of gifs!