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

FFMpeg简介

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

FFMpeg集成步骤

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

iOS 集成FFmpeg(通过ffmpeg.h进行调用)_第1张图片
Paste_Image.png

在这里我是将文件夹放到了桌面,可以查看此时的文件目录
iOS 集成FFmpeg(通过ffmpeg.h进行调用)_第2张图片
Paste_Image.png
你会发现只包含了三个文件。

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

iOS 集成FFmpeg(通过ffmpeg.h进行调用)_第3张图片
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添加(PRODUCT_NAME)/FFmpeg-iOS/include,(请根据自己实际路径更改)
  4. 在工程中新建ffmpeg文件夹,并从ffmpeg-3.0的文件中添加如下八个文件:


    iOS 集成FFmpeg(通过ffmpeg.h进行调用)_第4张图片
    Paste_Image.png

    添加完成如下所示:


    iOS 集成FFmpeg(通过ffmpeg.h进行调用)_第5张图片
    Paste_Image.png
  5. command+B编译会发现报这个错误:'config.h' file not found,这是由于找不到config.h文件,不要紧,去桌面源文件中找。于是我们在桌面文件夹中找到scratch文件夹,随便打开一个文件夹找到config.h ,拖到工程中。编译后发现这个问题得到了解决,此时工程结构如下:
    iOS 集成FFmpeg(通过ffmpeg.h进行调用)_第6张图片
    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. 将所有的文件导入以后,会得到如下结构的工程列表:


    iOS 集成FFmpeg(通过ffmpeg.h进行调用)_第7张图片
    Paste_Image.png

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

总结

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

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


iOS 集成FFmpeg(通过ffmpeg.h进行调用)_第8张图片
0.jpg

你可能感兴趣的:(iOS 集成FFmpeg(通过ffmpeg.h进行调用))