由于项目需要,自行编译的FFmpeg SDK for WinCE, 但是FFmpeg的Source Code用的是 ffmpeg-checkout-2008-06-13的版本,后面新版的的ffmpeg由于mingw32ce未出来3.15版配套的,故暂无法编译成功(主要是想用后来的swscale,用来转换color space)。
下载地址:
ffmpeg_ce.part01.rar
ffmpeg_ce.part02.rar
ffmpeg_ce.part03.rar
ffmpeg_ce.part04.rar
附编译方法如下:
第一步:设置环境变量
rem set ARMPATH=C:\\Program Files\\Windows CE Tools\\wce500\\Windows Mobile 5.0 Pocket PC SDK
rem set INCLUDE=%ARMPATH%\\ATL\\INCLUDE;%ARMPATH%\\INCLUDE\\ARMV4I;%ARMPATH%\\MFC\\INCLUDE;%ARMPATH%\\INCLUDE\\ARMV4I
rem set LIB=%ARMPATH%\\Lib\\ARMV4I;%ARMPATH%\\MFC\\LIB\\ARMV4I;%ARMPATH%\\LIB\\ARMV4I
第二步:下载cygwin-cegcc-mingw32ce-0.51.0-1.tar.gz,最好也下载cygwin,因为要用到它的一个dll。
第三步:安装msys环境,请参考另外一个文档~
第四步:将下载好的cygwin-cegcc-mingw32ce-0.51.0-1.tar.gz解压到c:\\msys\\1.0\\opt目录下面,并将cygwin1.dll拷贝到C:\\msys\\1.0\\opt\\mingw32ce\\bin下面。
第五步:修改c:\\msys\\1.0/etc/profile
修改内容如下:
if [ $MSYSTEM == MINGW32 ]; then
export PATH=".:/usr/local/bin:/mingw/bin:/bin:/opt/cegcc/bin:/opt/mingw32ce/bin:/opt/arm-wince-pe/bin:$PATH"
else
export PATH=".:/usr/local/bin:/bin:/mingw/bin:/opt/cegcc/bin:/opt/mingw32ce/bin:/opt/arm-wince-pe/bin:$PATH"
fi
export INCLUDE=".:/opt/mingw32ce/arm-wince-mingw32ce/include"
备注:测试交叉环境是否正确。
$ arm-wince-mingw32ce-gcc -version
正确的话会返回一串内容。
$ arm-wince-mingw32ce-ar.exe
Usage: /cygdrive/c/msys11/opt/mingw32ce/bin/arm-wince-mingw32ce-ar [emulation tions] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file..
/cygdrive/c/msys11/opt/mingw32ce/bin/arm-wince-mingw32ce-ar -M [<mri-scpt]
commands:
d - delete file(s) from the archive
m[ab] - move file(s) in the archive
p - print file(s) found in the archive
q[f] - quick append file(s) to the archive
r[ab][f][u] - replace existing or insert new file(s) into the archive
t - display contents of archive
x[o] - extract file(s) from the archive
command specific modifiers:
[a] - put file(s) after [member-name]
[b] - put file(s) before [member-name] (same as [i])
[N] - use instance [count] of name
[f] - truncate inserted file names
[P] - use full path names when matching
[o] - preserve original dates
[u] - only replace files that are newer than current archive conten
generic modifiers:
[c] - do not warn if the library had to be created
[s] - create an archive index (cf. ranlib)
[S] - do not build a symbol table
[v] - be verbose
[V] - display the version number
@<file> - read options from <file>
emulation options:
No emulation specific options
/cygdrive/c/msys11/opt/mingw32ce/bin/arm-wince-mingw32ce-ar: supported targetspe-arm-wince-little pe-arm-wince-big pei-arm-wince-little pei-arm-wince-big sr symbolsrec tekhex binary ihex
arm-wince-cegcc
编译方法跟这个差不多~但是新版本有改变~
如:--cross-compile在新版本里叫--enable-cross-compile等等
先告诉你配置的方法吧,你首先配置好mysys的环境,然后下载到相应的ffmpeg的最新代码。按照如下的方法进行编译即可。
1)修改config_wce.sh
./configure --enable-shared \\
--disable-static \\
--enable-memalign-hack \\
--cross-compile \\
--cross-prefix=arm-wince-mingw32ce- \\
--arch=arm \\
--enable-small \\
--disable-mmx \\
--disable-zlib \\
--disable-ipv6 \\
--disable-vhook \\
--disable-encoders \\
--disable-muxers \\
--disable-demuxers \\
--disable-parsers \\
--disable-bsfs
2)更改config.mak
SLIB_EXTRA_CMD=-lib /machine:arm /def:$(@:$(SLIBSUF)=.def)
EXTRALIBS= -lm -lws2
3)执行如下命令:
#sh config_wce.sh
#make clean
#make
就可以编译出相应DLL文件。
(iwgh) |