Free File Viewer itself is not open source software.
For video and audio playback, Free File Viewer uses the LGPL version of FFmpeg and related libraries as its playback engine. The entire development environment setup and build procedure is explained here.
You ONLY need these files if you want to build your own media player! If you just want to play movies, download Free File Viewer and install it. It is ready to use as-is.
You will need MinGW to build FFmpeg on Windows. Also, you need to have Microsoft's LIB.EXE in your system path - get it e.g. from Visual C++, there is a free Express edition. Run these installers in the listed order and use the installation paths suggested by the installers:
Unless stated otherwise, always extract the archive files with full folder information.
Extract binutils-2.20-1-mingw32-bin.tar.gz to C:\MinGW\
Extract gcc-core-3.4.5-20060117-3.tar.gz to C:\MinGW\
Extract mingwrt-3.17-mingw32-dev.tar.gz to C:\MinGW\
Extract mingwrt-3.17-mingw32-dll.tar.gz to C:\MinGW\
Extract w32api-3.14-mingw32-dev.tar.gz to C:\MinGW\
Run MSYS-1.0.11.exe - Minimal SYStem. Use default options.
When the command prompt pops up, answer the questions like this:
"Do you wish to continue with the post install [yn ]" y
"Do you have MinGW installed? [yn ]" y
"Where is your MinGW installation?" c:/mingw
Run msysDTK-1.0.1.exe - MSYS Developer Tool Kit. Use default options.
Extract pr.exe from coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2 tar file to c:\msys\1.0\bin
Extract gcc-core-4.5.0-1-mingw32-bin.tar.lzma to C:\MinGW
Extract gcc-c++-4.5.0-1-mingw32-bin.tar.lzma to C:\MinGW
Extract libgcc-4.5.0-1-mingw32-dll-1.tar.lzma to C:\MinGW
Extract libstdc++-4.5.0-1-mingw32-dll-6.tar.lzma to C:\MinGW
Extract libgmp-5.0.1-1-mingw32-dll-10.tar.lzma to C:\MinGW
Extract libmpc-0.8.1-1-mingw32-dll-2.tar.lzma to C:\MinGW
Extract libmpfr-2.4.1-1-mingw32-dll-1.tar.lzma to C:\MinGW
Extract gdb-7.1-2-mingw32-bin.tar.gz to C:\msys\1.0
Extract libexpat-2.0.1-1-mingw32-dll-1.tar.gz to C:\msys\1.0
Extract wget-1.11.4-1-bin.zip to C:\MinGW.
Extract wget-1.11.4-1-dep.zip to C:\MinGW
Extract unzip-5.51-1-bin.zip to C:\MinGW.
Extract pkg-config-lite-0.27-1_bin-win32.zip to C:\MinGW
Save yasm-1.1.0-win32.exe as yasm.exe in C:\msys\1.0\bin
Yes, unfortunately it is needed to patch 2 system include files in order to build the newest FFmpeg.
tempnam.diff and strcasecmp.diff.
After you have installed MinGW and updated it as described above, you are ready to build FFmpeg and related libraries. Start a shell by double-clicking the MSYS icon on your desktop and follow the instructions below.
mkdir /ffmpeg mkdir /ffmpeg/libraries mkdir /ffmpeg/Binaries_LGPL mkdir /ffmpeg/olibs/include mkdir /ffmpeg/olibs/lib mkdir /ffmpeg/olibs/man mkdir /ffmpeg/olibs/man/man3
Extract libgsm_1.0.13.orig.tar.gz to /ffmpeg/libraries (License: Proprietary, Home page)
cd /ffmpeg/libraries/gsm-1.0-pl13 make (ignore errors in toast.c) cp lib/* /ffmpeg/olibs/lib mkdir /ffmpeg/olibs/include/gsm cp inc/gsm.h /ffmpeg/olibs/include/gsm/
Extract opencore-amr-0.1.3.tar.gz to /ffmpeg/libraries (License: Apache, Home page)
cd /ffmpeg/libraries/opencore-amr-0.1.3 ./configure --prefix=/ffmpeg/olibs --enable-static --disable-shared make make install
Extract libogg-1.3.0.tar.gz to /ffmpeg/libraries (License: Public Domain, Home page)
cd /ffmpeg/libraries/libogg-1.3.0 ./configure --prefix=/ffmpeg/olibs --enable-static --disable-shared make make install
Extract libvorbis-1.3.3.tar.gz to /ffmpeg/libraries (License: Public Domain, Home page)
cd /ffmpeg/libraries/libvorbis-1.3.3 ./configure --prefix=/ffmpeg/olibs --enable-static --disable-shared make make install
Extract SDL-1.2.15.zip to /ffmpeg/libraries (License: LGPL v2.1, Home page)
Extract directx-devel.tar.gz to /ffmpeg/libraries/SDL-1.2.13 (Home page)
cd /ffmpeg/libraries/SDL-1.2.15 ./configure --prefix=/ffmpeg/olibs --enable-static --enable-shared --enable-joystick=no --enable-cdrom=no make make install strip --strip-debug /ffmpeg/olibs/bin/SDL.dll
Extract libtheora-1.1.1.tar.bz2 to /ffmpeg/libraries (License: Public Domain, Home page)
cd /ffmpeg/libraries/libtheora-1.1.1 ./configure --prefix=/ffmpeg/olibs --enable-static --disable-shared --disable-oggtest --disable-vorbistest --with-ogg=/ffmpeg/olibs --with-vorbis=/ffmpeg/olibs --with-sdl-prefix=/ffmpeg/olibs make make install
Extract speex-1.2rc1.tar.gz to /ffmpeg/libraries (License: Proprietary, Home page)
cd /ffmpeg/libraries/speex-1.2rc1 ./configure --prefix=/ffmpeg/olibs --enable-static --disable-shared make make install
export PATH=$PATH:/ffmpeg/olibs/bin mkdir /ffmpeg/ffmpeg_lgpl mkdir /ffmpeg/ffmpeg_lgpl/src
Extract ffmpeg-0.10.4.tar.gz to /ffmpeg/ffmpeg_lgpl/src (License: LGPL v2.1, Home page)
cd /ffmpeg/ffmpeg_lgpl/src ./configure --prefix=/ffmpeg/Binaries_LGPL --disable-debug --disable-static --enable-shared --enable-memalign-hack --enable-avisynth --enable-libgsm --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libspeex --enable-version3 --extra-cflags=-I/ffmpeg/olibs/include --extra-ldflags=-L/ffmpeg/olibs/lib make make install
To decompress the compressed files above, you will need a tool like BitZipper.
Updated August 10, 2012 to reflect the library versions used in Free File Viewer 2012.