iphone FFmpeg移植

 一,
新建一个Mac OS的项目,按照下面的步骤,加入ffmpeg。

静态库编译
参考: 移值FFMPEG到iPhone或Mac OS/X

链接静态库
在xcode建立一个libs目录,加入生成的静态库(.a文件)。一般包含avcodec, avformat, avutil, swscale这四个库。

加入头文件
在工程配置中,build选项,Header Search Paths,中加入源文件的根目录(记得选择recusive)。

加入其他依赖
需要加入libz的支持,工程->add->Existing Framework->libz.dylib
 

二、         交叉编译

a)        开始用了ffmpeg_mac中的build_armv6发现编出来的仍是x86的东西。检查makefile才发行C complier test fail。然后就默认为i386/i686的gcc了,开始以为是arm-apple-darwin10-gcc的问题,

b)        后来发现是因为找不到一些库在命令行下:加上-isysroot = 所用SDK的路径 就好了在重新修改build_armv6的脚本,ok,成功编译成了arm库。

c)        移到xcode中发现在build 中只有armv6  armv7, armv7的,选armv6  armv7,这是库要求有armv6 和armv7的,最后选择armv7的。

 

 

总结:

在做开源库的移植时,除了注意交叉编译器之外,也要注意一些系统库和参数的设置。

三、         版本

我对三个版本的ffmpeg做了调研,具体情况如下,其中ffmpeg_mac是从同事那里拿来的,其余的都是从官网下的。具体情况如下:

 

ffmpeg_0.6: ffplay(ok),ffserver(ok),ffmpeg(段错误)

ffmpeg_0.7: ffplay(ok),ffserver(ok),ffmpeg(无效指针)

ffmpeg_Mac:ffplay(ok),ffserver(有点问题),ffmpeg(ok)

 

我在iphone中采取的是ffmpeg_mac版本的。并在虚拟机上对这个版本做了测试:

Mac中的iphone模拟器上启动ffserver,然后ffmpeg流化,最后在xp端用VLC播放器播ffserver上的流媒体。分别用flv,asf,3gp,avi测试,发现只有flv可以正常播发。可能与我的ffserver.conf有关,暂没做深入调查。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值