iOS FFmpeg 的基本使用(1、 环境搭建)

在xcode 安装搭建ffmpeg 开发环境

ffmpeg 是基本上市面上所有有视频都会用到。那么如何在iOS 使用呢?
因为ffmpeg 使用的是c++ 所以在xcode 需要构建c++环境。
在使用ffmpeg 需要交叉编译 ,为什么需要交叉编译在这里不再详细说,请看这里。

当然有大神将交叉编译过程写成了脚本文件,我们只需要在这里 https://github.com/kewlbear/FFmpeg-iOS-build-script 将文件下载下来。
cd 到 build-ffmpeg.sh 文件下。
./build-ffmpeg.sh 执行 。
无法执行就使用 chmod 授权一下。
执行的时候会提示你Yasm not found不用担心,他会自己进行安装。
接下来自动下载ffmpeg 并完成交叉编译。
完成后是这个样子:

iOS FFmpeg 的基本使用(1、 环境搭建)_第1张图片
1.png

交叉编译会有指令集的问题。我们来看一下我们编译的版本支持哪些指令集
cd 到FFmpeg-iOS/lib 下

$ cd /Users/xxx/Downloads/FFmpeg-iOS-build-script-master/FFmpeg-iOS/lib 

使用
$ lipo -info libavfilter.a
内容如下:

Architectures in the fat file: libavfilter.a are: i386 armv7 x86_64 arm64 

armv7 和 arm64 是iPhone 使用的。具体对应到机型
arm64 : 6s | 6s plus|6 | 6plus|5S | iPad Air | iPadmini2(iPad mini with Retina Display)
armv7s: 5 |5C |iPad4(iPad with Retina Display)
armv7 : 4 |4S |iPad|iPad2 |iPad3(The New iPad)|iPad mini|iPod Touch3G|iPod Touch4
平时经常用的是 armv7 和arm64 ,当然并不是说其他不用,多一种指令集会使包变大。

那么 其他两种 是Mac系统处理器指令集。
i386 模拟器32位。
x86_64 64所支持的架构。

继续:
如果想要在项目中使用fmpeg
1、 将 FFmpeg-iOS 文件夹拖入项目中。
2、 Build setting 中 Header Search Paths 设置 $(SRCROOT)/FFmpeg-iOS/include (请根据自己文件拖入的路径设置)。
3、 Build setting 中 Library Search Paths 设置 $(PROJECT_DIR)/FFmpeg-iOS/lib (根据自己文件拖入的路径设置)。
4、增加frmework 如图片所示

iOS FFmpeg 的基本使用(1、 环境搭建)_第2张图片
2.png

5、 如果提示 other link error之类的错误,可以试试在Build Settings->Other Linker flags输入-all_load

6、

#import "ViewController.h"
#include 
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    printf("%s",avcodec_configuration());
    UILabel *lab = [UILabel new];
    lab.text = [NSString stringWithUTF8String:avcodec_configuration()];
    lab.numberOfLines = 0;
    lab.frame = self.view.bounds;
    [self.view addSubview:lab];  
}

在模拟器中运行成功显示


iOS FFmpeg 的基本使用(1、 环境搭建)_第3张图片
2432CB88-F91B-4ED0-BE53-E6E87C02576A.png

你可能感兴趣的:(iOS FFmpeg 的基本使用(1、 环境搭建))