美文网首页iOS开发资料收集区iOS
iOS 集成FFmpeg(通过ffmpeg.h进行调用)

iOS 集成FFmpeg(通过ffmpeg.h进行调用)

作者: Peak_One | 来源:发表于2016-07-04 03:05 被阅读5809次
    FFMpeg简介

    根据个人的理解,ffmpeg是一个多媒体转码、音视频流化传输的一个第三方开源框架,并且这个第三方库是基于C语言的(表示看不懂,一般看不懂的东西才是牛逼的)。 iOS平台下的ffmpeg主要包括以下一些功能:影音的解码、编码、编码转换、混合、抽取、串流和滤镜:相关博客:iOS9 新滤镜介绍基于GPUImage的实时美颜滤镜

    FFMpeg集成步骤

    第一步:下载FFmpeg脚本地址,获取得到如下图所示的文件夹:

    Paste_Image.png
    在这里我是将文件夹放到了桌面,可以查看此时的文件目录
    Paste_Image.png 你会发现只包含了三个文件。

    第二步:下载完整的ffmpeg支持库。
    首先打开终端,刚开下载的文件的目录:cd 文件目录。这里我的目录是在桌面,所以:cd /Users/lxh/Desktop/FFmpeg-iOS-build-script-master 然后输入:./build-ffmpeg.sh 随后便开始了漫长的下载过程。等完全下载完成以后你会发现,桌面上的文件夹(刚下载的)多了好多的文件。,如图所示:

    Paste_Image.png 这个就是我们刚才通过终端下载的ffmpeg的编译库。
    其中FFmpeg-iOS文件是我们在项目中需要用到的,另外ffmpeg-3.0文件是全平台下载的编译文件(包含了TVOS、Mac OS、iOS等)。

    第三步:集成 iOS平台下的ffmpeg

    1. 新建一个新项目,例如:LHTestFFmpeg。
    2. 将FFmpeg-iOS文件夹(桌面下载的ffmpeg库文件)添加到LHTestFFmpeg工程中。
    3. 配置头文件搜索路径:在工程文件->Bulid Setting->Search Paths->Header Search Paths添加(SRCROOT)/(PRODUCT_NAME)/FFmpeg-iOS/include,(请根据自己实际路径更改)
    4. 在工程中新建ffmpeg文件夹,并从ffmpeg-3.0的文件中添加如下八个文件:


      Paste_Image.png

      添加完成如下所示:


      Paste_Image.png
    5. command+B编译会发现报这个错误:'config.h' file not found,这是由于找不到config.h文件,不要紧,去桌面源文件中找。于是我们在桌面文件夹中找到scratch文件夹,随便打开一个文件夹找到config.h ,拖到工程中。编译后发现这个问题得到了解决,此时工程结构如下:
      Paste_Image.png
    6. 编译后,会发现又出现了如下的问题:'libavcodec/avcodec.h' file not found'compat/va_copy.h' file not found,这个问题是由于没有找到对应的文件,我们继续到ffmpeg-3.0对应的文件夹中去查找,并添加。添加规则如下:compat/va_copy.h这个就是要在ffmpeg-3.0中的compat文件夹中去找va_copy.h文件。libavcodec/avcodec.h就是要到ffmpeg-3.0中的libavcodec文件夹中去查找avcodec.h。然后依次在工程的FFmpeg-iOS文件夹下的include文件夹下创建相应的文件夹,例如:compatlibavcodec文件夹,并添加相关文件。
      这一步是最繁琐的也是最容易出错的,这里不懂得可以给我回复,我会及时回答的。
    7. 将所有的文件导入以后,会得到如下结构的工程列表:


      Paste_Image.png

      8.添加工程所缺的库文件,编译后,会发现编译成功了

    总结

    集成的过程中会遇到各种各样的问题,耐心做下去,总会集成成功的,如果本篇内容有哪里不正确的地方欢迎指正。共同进步,才是咱们想要的!实例代码参考: http://pan.baidu.com/s/1o7PyqCU 密码: wfsk
    我是一个很low的程序员,竟然没有自己的git,哈哈哈!!!!

    欢迎关注我的个人微信公众号,免费送计算机各种最新视频资源!你想象不到的精彩!


    0.jpg

    相关文章

      网友评论

        本文标题:iOS 集成FFmpeg(通过ffmpeg.h进行调用)

        本文链接:https://www.haomeiwen.com/subject/dvecjttx.html