How to cross-compile ffmpeg for Windows
Notes. Assumes:
- SDL headers in ../../withplayer_win/SDL/include
- SDL.dll in ../../withplayer_win/SDL/src/.libs/SDL.dll
- A cross compiler set /home/jdmol/withplayer_win/xcomp/bin/mingw32-*. Create one with the attached install_xcc script, which creates an xcomp dir and builds a cross-compiler in it. Have patience and 1GB of diskspace.
- The attached uname should be in the beginning of the path (code below assumes {{../../win32}}} dir)
mkdir svn
cd svn
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
cd ffmpeg
PATH=../../win32:$PATH CFLAGS=-I../../withplayer_win/SDL/include LDFLAGS=../../withplayer_win/SDL/src/.libs/SDL.dll ./configure --enable-mingw32 --cpu=i686 --arch=i386 --enable-memalign-hack --cross-prefix=/home/jdmol/withplayer_win/xcomp/bin/mingw32- --cc=gcc
make
make ffplay.exe
Now, copy ffplay.exe and ../../withplayer_win/SDL/src/.libs/SDL.dll to your Windows machine.
Update for new ffmpeg versions
(Tested with ffmpeg SVN revision 8885)
Follow the procedure above, with the following differences:
- uname is not needed anymore
- the SDL headers are in ../SDL/include
- the SDL.dll is in ../SDL
- Use the following configuration line instead
./configure --extra-cflags="-I../SDL/include -I/usr/win32/include" --extra-ldflags="../SDL/SDL.dll
-L/usr/win32/lib" --cross-compile --target-os=mingw32 --cpu=i686 --arch=i386 --enable-memalign-hack
--cross-prefix=/home/ivaylo/tribler/xcomp/bin/mingw32- --cc=gcc --enable-libfaad --enable-libfaac --enable-gpl --enable-x264
- If they did not fix this, you might need to add the headers below in libavcodecvc1_parser.c to get it compiling:
#include "dsputil.h"
+#include "bitstream.h"
+#include "mpegvideo.h"
#include "parser.h"
#include "vc1.h"
|