home
From sources
- Prerequisites
- Latest packages from mingw project. You'll need gcc, binutils, mingw-runtime, w32api and mingw32-make.
- DirectX SDK or Microsoft Platform SDK. Can be downloaded from here.
- Optionally STLPort. It's a STL replacement. If you'll install it to C:/Program Files/STLport, ffdshow Visual Studio projects will automatically use it. If you'd install it to other directory, just change the include path for ffdshow.ax and ff_wmv9.dll projects.
- Dynamic libraries
- libmplayer.dll
- Go to ffdshow/src/mplayer directory
- If compiling using GNU tools (mingw, cygwin) run make command. This is recommended, because hand-optimized assembler code will be used.
- If using Visual Studio 6 open libmplayer.dsw workspace file, select target and build project
- If using Visual Studio .NET 2003 open libmplayer.sln solution file, select target and build solution
- In ffdshow/bin directory libmplayer.dll file will be created
- libavcodec.dll
- Go to ffdshow/src/ffmpeg directory
- If compiling using GNU tools (mingw, cygwin) run make command. This way hand-optimized assembly code will be used.
- If using Visual Studio 6 open libavcodec.dsw workspace file, select target and build project. Additional two targets are present: Release ICL and Debug ICL. If you have Intel C++ Compiler installed and selected and also GCC is preset, it will build libavcodec with C portions optimized by Intel C++ Compiler and hand-optimized assembler code compile by gcc. This could produce quite well optimized result, but I've never did any speed comparison of such build against simple GCC compiled one.
- If using Visual Studio .NET 2003 open libavcodec.sln solution file, select target and build solution
- In ffdshow/bin directory libavcodec.dll file will be created
- ff_libmad.dll
- Go to ffdshow/src/codecs/libmad directory
- If compiling using GNU tools (mingw, cygwin) run make command
- If using Visual Studio 6 open ff_libmad.dsw workspace file, select target and build project
- If using Visual Studio .NET 2003 open ff_libmad.sln solution file, select target and build solution
- In ffdshow/bin directory ff_libmad.dll file will be created
- libmpeg2_ff.dll
- Go to ffdshow/src/codecs/libmad directory
- If compiling using GNU tools (mingw, cygwin) run make command. This is recommended, because hand-optimized assembler code will be used.
- If using Visual Studio .NET 2003 open libmpeg2_ff.sln solution file, select target and build solution
- In ffdshow/bin directory libmpeg2_ff.dll file will be created
- ff_mpeg2enc.dll
- Go to ffdshow/src/codecs/mpeg2enc directory
- If compiling using GNU tools (mingw, cygwin) run make command. This is recommended, because hand-optimized assembler code will be used.
- If using Visual Studio 6 open ff_mpeg2enc.dsw workspace file, select target and build project
- If using Visual Studio .NET 2003 open ff_mpeg2enc.sln solution file, select target and build solution
- In ffdshow/bin directory ff_mpeg2enc.dll file will be created
- ff_theora.dll
- Go to ffdshow/src/codecs/theora directory
- If compiling using GNU tools (mingw, cygwin) run make command
- If using Visual Studio 6 open ff_theora.dsw workspace file, select target and build project
- If using Visual Studio .NET 2003 open ff_theora.sln solution file, select target and build solution
- In ffdshow/bin directory ff_theora.dll file will be created
- ff_wmv9.dll
- Go to ffdshow/src/codecs/wmv9 directory
- If using Visual Studio 6 open ff_wmv9.dsw workspace file, select target and build project
- If using Visual Studio .NET 2003 open ff_wmv9.sln solution file, select target and build solution
- In ffdshow/bin directory ff_wmv9.dll file will be created
- ff_x264.dll
- Go to ffdshow/src/codecs/x264 directory
- Run make command to compile library using GNU tools
- In ffdshow/bin directory ff_x264.dll file will be created
- TomsMoComp_ff.dll
- Go to ffdshow/src/imgFilters/TomsMoComp directory
- If using Visual Studio 6 open TomsMoComp_ff?.dsw workspace file, select target and build project
- If using Visual Studio .NET 2003 open TomsMoComp_ff?.sln solution file, select target and build solution
- In ffdshow/bin directory TomsMoComp_ff?.dll file will be created
- ffdshow.ax
- Prepare baseclasses library
- If compiling using GNU tools (mingw, cygwin), go to ffdshow/src directory and run make command. This will take a long time, because current GCC windows port can't use precompiled headers.
- If using Visual Studio 6 go to ffdshow directory, open ffdshow.dsw workspace file, select ffdshow as active project, choose target and build project
- If using Visual Studio .NET 2003 go to ffdshow directory, open ffdshow.sln solution file, set ffdshow as startup project, select target and build solution.
- Visual Studio workspace/solution contains ff_libmad, ff_theora, ff_wmv9 and TomsMoComp_ff? projects, so you don't need to build them separately as described above.
- Intel C++ Compiler is unable to compile TomsMoComp_ff?. You have to use Microsoft C Compiler.
- Makefile builds all dynamic libraries except for ff_wmv9.dll and TomsMoComp_ff?.dll.
- Creating installer package
- Download NSIS 2.
- NSIS associates nsi extension, but for historical reasons ffdshow uses nsis2 extension for file describing the installer package. Go to ffdshow/bin/distrib directory, associate nsis2 extension with nsis and build the installer. UPX executalbe compressor is used to get slightly smaller installer packages.