IOS 下的音视频解决方案-FFMPEG

IOS平台下的ffmpeg编译简介,写在经历了n翻折腾之后。首先感谢Cocoachina中众多的资源

IOS下基于H264的音视频网传前后走通花了差不多1个多月时间。

先说下总的流程如下:

a)从网络接收H264视频数据 adpcm音频数据

b)网络数据输入到ffmpeg解码库 音频数据输入到音频解码库(音频解码库为自己所写)

c)ffmpeg解码出YUV420P视频数据 音频解码出PCM数据

d)将YUV420P数据转换为RGB24图像 用UIImageview输出 用OPENGL ES输出也可以(两种方法均验证过可行)

e)将音频PCM数据输入OPEN AL中输出

f)以上为整个流程,d1在iphone4上可以达到16桢 左右的效率


下面来说说FFMPEG部分。刚开始接触ffmpeg的时候遇到的第一个问题就是编译问题。

1 下载FFMPEG代码,该步比较简单可在ffmpeg官方网站上下载(我下的是0.6.5的,下了0.10的没编译过部分arm指令)

2 用gcc进行编译,写配置信息。该步骤浪费了太多的精力和时间,主要是没有在ios平台下的经验导致。

1)编译的时候不明白版本问题,编译后才发现每次编译需要制定不同的处理器模式为3种:armv6 armv7 i386版本

2)configure配置信息,前期犯了各种错误。还是对于ffmpeg的configure配置参数步了解导致。另外用gcc编译的经验也步丰富。

最终领悟出:配置信息主要为配置gcc的位置和汇编的编译器位置。

configure命令如下(该段配置信息为iFrameExtractor中。该demo也让我学习到很多知识,需要的可以在网上搜索下载):

./configure --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --disable-avfilter --enable-cross-compile --arch=arm --target-os=darwin --cc=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc --as='gas-preprocessor/gas-preprocessor.pl /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc' --sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk --cpu=cortex-a8 --extra-cflags='-arch armv7' --extra-ldflags='-arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk' --enable-pic


配置成功后 make即可编译出armv7版本的lib*。a文件。

到此既可以生成ios下需要的ffmpeg静态库文件,需要用的时候拖入到项目中即可。

另外还需要添加libbz 、libz的framework

补充:在iOS6中编译出的。a的库在armv7s下编译目前有问题,可以修改target的Valid Architectures只支持Armv7去掉Armv7s


原文地址:http://blog.csdn.net/xufeidll/article/details/7419160

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值