移植ffmpeg for iphone模拟器
原创,转载请注明出处:http://www.cnblogs.com/xuanyuanchen/archive/2012/04/17/2454285.html
编译ffmepg模拟器版本:
1、下载ffmpeg-iphone-build
下载地址:https://github.com/gabriel/ffmpeg-iphone-build
2、将gas-preprocessor.pl拷贝到/usr/sbin
方法:$ sudo cp gas-preprocessor.pl /usr/sbin/
3、到ffmpeg官网上下载ffmpeg源码(项目中用的是ffmpeg-0.8.6版本,主要是考虑当时已经有在做的项目用了该版本)
ffmpeg官网上ffmpeg-0.8分支的最新版本已经是ffmpeg-0.8.11版本,经测试ffmpeg-0.8.11是兼容ffmpeg-0.8.6的,所以可以直接下载ffmpeg-0.8.11
下载地址:http://ffmpeg.org/download.html,版本选择:Ffmpeg 0.8.11 "Love"
4、打开终端,解压ffmpeg。切换到ffmpeg 0.8.11的目录下,拷贝以下内容到命令行上(不要前面的"$"符号):
$ ./configure --enable-protocol=mmst --enable-protocol=mmsh --enable-protocol=http --enable-protocol=rtp --enable-muxer=rtp --enable-muxer=rtsp --enable-demuxer=rtp --enable-demuxer=rtsp --enable-cross-compile --disable-armv5te --enable-decoder=h264 --enable-pic --disable-avfilter --cc=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc --as='gas-preprocessor/gas-preprocessor.pl /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc' --extra-ldflags=-L/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/lib/system --sysroot=/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk --target-os=darwin --arch=i386 --cpu=i386 --extra-cflags='-arch i386' --extra-ldflags='-arch i386'
请注意:
我的模拟器的sdk版本是4.3,这个对于不同版本的Xcode是不一样的,需要根据实际情况进行修改。
有两个地方需要修改,一个是--extra-ldflags,另一个是--sysroot
5、在终端下输入make指令,开始编译ffmpeg的静态库。如果想只生成动态库的版本的话,可以看下面的配置:
$ --disable-debug --disable-ffserver --enable-protocol=mmst --enable-protocol=mmsh --enable-protocol=http --enable-protocol=rtp --enable-muxer=rtp --enable-muxer=rtsp --enable-demuxer=rtp --enable-demuxer=rtsp --enable-cross-compile --disable-armv5te --enable-decoder=h264 --enable-pic --enable-avfilter --enable-swscale --enable-pthreads --enable-static --enable-shared --cc=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc --as='gas-preprocessor/gas-preprocessor.pl /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc' --extra-ldflags=-L/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/lib/system --sysroot=/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk --target-os=darwin --arch=i386 --cpu=i386 --extra-cflags='-arch i386' --extra-ldflags='-arch i386'
这个配置既去掉了调式信息(--disable-debug),又生成了动态库(--enable-shared)。
6、新建一个文件夹
$ mkdir ffmpeg_lib $ find . -name '*.a' -exec cp {} ./ffmpeg_lib \;
这样就把所有ffmpeg的库复制保存到了./ffmpeg_lib文件加下。
7、经过以上的步骤后,编译出的ffmpeg库就可以在工程中进行使用了。
参考文章:模拟器与真机下ffmpeg的编译