Compiling ffmpeg on Windows Vista

There’s a great resource for compiling ffmpeg on windows here: ffmpeg on Windows
I won’t repeat the directions, but I will mention a few things I had to do to get it to work on Windows Vista. All of the file paths mentioned below assume that you installed everything as directed in the wiki.
Resolving the “Permission denied” error when patching or compiling:
When you try to either apply a patch or compile, you may get a “permission denied” error. This is because Vista automatically insists that some of the msys files require admin permissions to run. You can see which files they are because their icons have the administrator icon superimposed over them in Windows explorer. You can see that here looking at the icons for install.exe and install-info.exe in my c:\msys\bin directory:
![]()
In looking through the whole directory, the files that require admin privileges are install.exe, install-info.exe, and patch.exe.
There are two things that seem to help resolve this issue. You’ll have to be an administrator on the system to apply them:
- 1. Set the compatibility mode for all the files to windows XP. Do this by right-clicking on a file in Windows Explorer and choosing “Properties” from the bottom of the context menu. View the “Compatibility” tab and check “Run this program in compatibility mode for” and choose Windows XP from the list:

- 2. Add a manifest file for each file that sets the permissions. These are saved with “.manifest” appended to the name of the file it applies to. The manifest files tell Vista how to manage the security requirements when the exe is invoked.
Right-click on each of these links and choose “Save link as” to save the files to your c:\msys\bin directory and that should take care of it:
install.exe.manifest
install-info.exe.manifest
patch.exe.manifest
Note that once you place these files in the bin directory, Vista shows the icons for the files without the admin overlay.
If you also installed the msys/mingw system under c:\msysDVLPR as indicated in the wiki for building the toolset, you’ll need to take the same steps for install.exe, install-info.exe and patch.exe in that folder.
Getting the pthreads library to compile:
When I tried compiling the pthreads library using the patch supplied on the wiki pthreads page, I got this result:
sem_open.c:54: error: conflicting types for ’sem_open’ semaphore.h:147: error: previous declaration of ’sem_open’ was here make[1]: *** [pthread.o] Error 1 make[1]: Leaving directory `/c/work/pthreads-w32-2-8-0-release’ make: *** [GC-static] Error 2
Others have seen the same problem as reported here.
The patch modifies the sched.h file in a way that makes my system unhappy. I was able to resolve this by re-extracting the pthreads download to regain the original sched.h file and then applying the changes as suggested in the pthreads forum.
You can get a copy of the modified sched.h file I used here:
This allows the pthreads library to compile successfully and ffmpeg seems to be behaving well.
I don’t know if these fixes will work on all or even most Vista systems, but they got me going.

Is there any way for you to send me the binaries for ffmpeg for Vista? I’m especially interested in x64 compile.
Thanks
Sorry Mark,
I haven’t compiled it for x64. I think you need mingw-w64 .
For compiling ffmpeg, the best resource I’ve found is here:
http://ffmpeg.arrozcru.org/wiki/index.php?title=Main_Page
There’s some information specific to 64 bit here:
http://ffmpeg.arrozcru.org/forum/viewtopic.php?f=1&t=872
There’s another, later, win-tutorial over at ataylor.com/ffmpeg, although it’s not Vista-64 specific.
Has screen-shots for each step.
Triola