陈斌彬的技术博客

Stay foolish,stay hungry

iOS配置FFmpeg框架(原创)

img

FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用 LGPL 或 GPL 许可证。它提供了录制、转换以及流化音视频的完整解决方案。由于公司项目要用到实时视频监控播放,所以在这里记下如何移植 FFmpeg 开源框架到 iOS 上面。

准备条件

1.安装 yasm。点击这里,版本是yasm-1.2.0。解压后

 cd yasm-1.2.0
 ./configure
 make
 make install

2.到https://github.com/libav/gas-preprocessor下载 gas-preprocessor.pl 文件,复制gas-preprocessor.pl/usr/bin下,修改文件权限 chmod 777 /usr/local/bin/gas-preprocessor.pl

搭建步骤

1.下载脚本文件

https://github.com/kewlbear/FFmpeg-iOS-build-script

这个脚本可以一次编译,就生成适合各个版本的iPhone。ffmpeg官网,可以找到适合所对应操作系统下载源码包。

2.编译脚本

解压后找到 build-ffmpeg.sh 文件,输入

./build-ffmpeg.sh

脚本则会自动从github中把ffmpeg源码下到本地并开始编译。 编译结束后,文件目录如下:

img

ffmpeg-2.6.2是源码, FFmpeg-iOS是编译出来的库,里面是我们需要的.a 静态库,一共有7个。 终端输入

lipo -info libavcodec.a 

可以查看.a 包支持的架构,包括 armv7 armv7s i386 x86_64 arm64这几个架构。

3.把 FFmpeg-iOS 导入工程。

这里我下载一个 demo 工程 iFrameExtractor-master,git代码参考:https://github.com/lajos/iFrameExtractor或者 RTSPPlayer https://github.com/SutanKasturi/RTSPPlayer

demo目录如下:

img

然后在Build Settings中找到Search Paths,设置Header Search PahtsLibrary Search Paths如下。不然会报include“libavformat/avformat.h” file not found 错误。

img

img

4.在工程中导入其他库文件。

libz.dylib libbz2.dylib libiconv.dylib是必须要导入的。配置好如下目录:

img

5.编译和运行

点击 play ,出现下图小娃娃视频,搭建成功

img

参考: