Now it is time to set up Cygwin: go to http://cygwin.com/ and run the installer setup.exe. For our purposes, the following packages need to be installed:
You will need to select all these packages by hand (at least I do not know about a way to script this).
Here are some screenshots of what you have to select: cygwin-selections.png (378.92 kb)
Now launch a Cygwin-shell, make a new folder (where you will build ffmpeg, say "cygwin"). Then get the Git-repository, and you are ready to configure and make ffmpeg - like so:
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
This should work without any flaw, and after a while you should find a newly-built ffmpeg.exe in the folder. If you happen to have more than one CPU on your machine, you might want to use 'make -j <number_of_parallel_jobs>' in order to speed up the build - where number_of_parallel_jobs should be around the number of cores you have. So, if you have 4 cores, then try 'make -j 4'.
Next, let's test-drive the binary and run the FATE-test-suite. This requires to download some test-data, around ~700MB. You may choose to download it to the ffmpeg-folder right away, or you may keep the samples in a separate folder (and re-use it for other builds). In the first case, with this command the samples will be downloaded to a folder "fate-suite" which is created in the ffmpeg-folder
make fate-rsync SAMPLES=fate-suite/
Or if you prefer to download it manually, try something like
rsync -vrltLW --timeout=60 --contimeout=60 rsync://fate-suite.ffmpeg.org/fate-suite/ fate-suite/
Now it is time to run the tests:
make fate SAMPLES=fate-suite/
You need to tell the path where the FATE-samples are to found as an argument to the SAMPLES-variable.
All tests should work ok, and now have done it: you built the ffmpeg-binary yourself! Of course, this is just the start...