ffmpeg-0.10.2 xcode4.3 IOS5.1 真机调试编译过程

首先下载以下工程代码:iFrameExtractor(https://github.com/lajos/iFrameExtractor), gas-preprocessor(https://github.com/yuvi/gas-preprocessor), ffmpeg(http://ffmpeg.org/download.html)。

把iFrameExtractor工程目录下的那个ffmpeg删掉,里面的ffmpeg版本实在太老。将自己下载的ffmpeg代码解压拷贝到iFrameExtractor目录下。 把gas-preprocessor.pl放到工程目录,或者干脆直接丢到/usr/bin下也成。 使用ffmpeg下面的configure来进行编译设置。

编译成真机调试还是模拟器调试的关键在于CC的类型,是用于编译macos程序的gcc还是供iPhone platform程序使用的gcc,以及config参数中arch是指定成x86还是armv7。 Xcode4.3中iPhone platform编译的gcc路径如下:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc IOS5.1的SDK目录为:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk 用于真机调试的configure运行参数如下:

复制代码

export DEVRoot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
export SDKRoot=$DEVRoot/SDKs/iPhoneOS5.1.sdk
export CC=$DEVRoot/usr/bin/llvm-gcc

./configure \
--cc=${CC} \
--as="gas-preprocessor.pl ${CC}" \
--sysroot=${SDKRoot} \
--enable-cross-compile \
--target-os=darwin \
--arch=arm \
--cpu=cortex-a8 \
--extra-cflags="-arch armv7" \
--extra-ldflags="-arch armv7 -isysroot ${SDKRoot}" \
--enable-pic \
--disable-doc \
--disable-ffplay \
--disable-ffserver \
--disable-gpl \
--disable-shared \
--enable-static \
--disable-mmx \
--disable-debug \
--enable-decoder=h264  \
--disable-asm
复制代码

脚本中使用了“--disable-asm”来禁用了汇编生成。这条会严重影响视频播放的效率。以iFrameExtractor为例,在iPhone4S上运行还成,在iPod touch上就显得有些慢动作了。但是不这么干,configure和make过程中会出错。使用IOS4.3 SDK编译的话,则不会出现此问题。stackoverflow上有人曾经提过,可以通过禁用不需要的解码器及修改源代码来避免,可惜我还没试成功过。大家有什么好办法,请千万留言。 整个脚本,可以在此下载。 设置编译成功后,将dist目录下的五个.a文件拖到Xcode中iFrameExtractor项目中去,替换掉原来那5个,再链上libbz2.1.0.dylib就可以在Xcode中进行真机调试了。

configure过程如果出现错误,可以查看生成的config.log,根据具体的错误信息来调整configure的参数。

祝大家好运吧,折腾这东西可真累且无聊。

同事因为需要在旧iOS设备上进行调试,这是他折腾出来的armv6的版本,适用于iPhone及iPhone3G系统:

复制代码
 1 #!/bin/sh
 2 
 3 export FFMPEG_DIR=ffmpeg
 4 
 5 export DEVRoot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
 6 export SDKRoot=$DEVRoot/SDKs/iPhoneOS5.1.sdk
 7 export CC=$DEVRoot/usr/bin/llvm-gcc
 8 export LD=$DEVRoot/usr/bin/ld
 9 
10 cd $FFMPEG_DIR
11 mkdir -p lib
12 
13 make clean
14 
15 ./configure \
16 --cc=${CC} \
17 --as="gas-preprocessor.pl ${CC}" \
18 --sysroot=${SDKRoot} \
19 --enable-cross-compile \
20 --target-os=darwin \
21 --arch=arm \
22 --cpu=arm1176jzf-s \
23 --extra-cflags="-arch armv6" \
24 --extra-ldflags="-arch armv6 -isysroot ${SDKRoot}" \
25 --disable-doc \
26 --disable-ffplay \
27 --disable-ffserver \
28 --disable-gpl \
29 --disable-shared \
30 --enable-static \
31 --disable-mmx \
32 --disable-debug \
33 --enable-decoder=h264  \
34 --disable-asm
35 
36 echo "ready to make "
37 
38 make 
39 
40 mv libavcodec/libavcodec.a lib/
41 mv libavdevice/libavdevice.a lib/
42 mv libavformat/libavformat.a lib/
43 mv libavutil/libavutil.a lib/
44 mv libswscale/libswscale.a lib/
复制代码

 转自:http://www.cnblogs.com/wupher/articles/2456421.html

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值