iOS中使用ffmpeg

来源:互联网 发布:c语言模块化编程视频 编辑:程序博客网 时间:2024/04/29 18:15

由于需要更加灵活的解码方式,不得不使用ffmpeg

1.编译ffmpeg

编译ffmpeg指的是将ffmpeg源码编译成iOS可用的.a静态库,如libavcodec.a。所以编译d的第一步是下载ffmpeg源码
最关键的步骤是编译脚本,对于不同的平台,需要不同d编译参数
一篇靠谱d帖子:http://blog.csdn.net/k214k/article/details/26567303
说明:网上有很多mac下编译ffmpeg的帖子,但是几乎没有一篇能说的详细,明白
要注意的几个问题:编译方法(脚本内容)跟Xcode版本是相关的,网上大多是针对xcode4.x的

在编译源码之前就出现错误时,肯定是因为编译脚本有问题;

编译源码,install的时候,可能需要加sudo,否则权限不够

                                        编译完的库文件和头文件在/usr/local/

2.在iOS中使用ffmpeg库

3.解码后数据显示

关于ffmpeg解除的yuv420p数据直接显示与SDL这个问题我已经解决了,因为解码之后出来的yuv数据的行数据长度比实际要显示的图像宽度要大,所以在将yuv分量数据拷贝到SDL的时候要注意拷贝实际显示的图像宽度,以420P格式来讲,Y分量拷贝全部宽度,U和V分别拷贝1/2。
虽然通过SDL可以正常顺利显示D1的图像,但是现在有个问题了,如何通过SDL分别显示4路画面在屏幕上,网上有人说和控件绑定,但不知道如何实现,正在研究这个。如果有人知道的话希望能够不吝分享一下。
再说一下xinaction 说的使用sws_scale转换成RGB显示到UIImage这种方式,这种方式虽然可以方便和控件绑定显示,但是在iPhone/iPad上运行起来的效率很低,基本上图像不能顺利显示,显示D1和CIF图像都是如此,我做的时候反正是这样,不知道有没有其他的优化方法。

0 0