https://cnbin.github.io/blog/2015/05/19/iospei-zhi-ffmpegkuang-jia/
FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用 LGPL 或 GPL 许可证。它提供了录制、转换以及流化音视频的完整解决方案。由于公司项目要用到实时视频监控播放,所以在这里记下如何移植 FFmpeg 开源框架到 iOS 上面。
1.第一步先安装yam
http://pan.baidu.com/s/1nv5Mj6h
解压之后输入一下命令:
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)???
问题:/usr/bin无法获取修改权限
由于系统启用了SIP(System Integerity Protection)导致root用户也没有修改权限,所以我们需要屏蔽掉这个功能,具体做法是:
1.重启电脑
2.command + R 进入recover模式
3.点击最上方菜单使用工具,选择终端
4.运行命令csrutil disable
5.当出现successfully字样,代表关闭成功!
搭建步骤
1.下载脚本文件
https://github.com/kewlbear/FFmpeg-iOS-build-script。
这个脚本可以一次编译,就生成适合各个版本的iPhone。ffmpeg官网,可以找到适合所对应操作系统下载源码包。
2.编译脚本
解压后找到 build-ffmpeg.sh 文件,输入
./build-ffmpeg.sh
脚本则会自动从github中把ffmpeg源码下到本地并开始编译。 编译结束后,文件目录如下:
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目录如下:
然后在Build Settings
中找到Search Paths
,设置Header Search Pahts
和 Library Search Paths
如下。不然会报include“libavformat/avformat.h” file not found
错误。