简介
在 iOS 使用学习 FFmpeg 相关的笔记
初始化
配置 Xcode环境
以下内容借鉴了雷晓华博客,但是有些不适用的内容做了修改。
下面以Xcode的IOS中的Single View Application为例,记录一下配置步骤:
(a) 拷贝文件 FFmpegPackage,包含 include 和和fat版本的FFmpeg类库(包括libavformat.a, libavcodec.a, libavutil.a, libavdevice.a, libavfilter.a, libpostproc.a, libswresample.a, libswscale.a;以及第三方fat版本类库libx264.a, libfaac.a)至项目根目录文件夹中。并将它们添加至项目根目录中。
(b) 项目属性->Build Settings中配置以下4个选项。
Linking->Other Linker Flags中添加下面内容:
-lavformat
-lavcodec
-lavutil
-lavdevice
-lavfilter
-lpostproc
-lswresample
-lswscale
-lx264
-lfaac
Search Paths->Header Search Paths添加下面内容
$(PROJECT_DIR)/FFmpegPackage/include
Search Paths->Library Search Paths添加下面内容
$(PROJECT_DIR)/FFmpegPackage
Bitcode 中改为 NO
(c) 其它的一些配置。这些配置随着FFmpeg版本的不同而有略微的不同(在某些情况下也可能不需要配置)。我目前使用的2.7.1版本的FFmpeg需要配置下面的选项。
项目属性->General->Linked Frameworks and Libraries中添加两个类库:AVFoundation.framework和libz.dylib。
然后 Add Other,将上面的10个.a 库导入进来。
编写 C 语言代码
如果类库编译无误,启动IOS程序的时候会在控制台打印版本信息。
#import "ViewController.h"
#include <libavcodec/avcodec.h>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
printf("%s",avcodec_configuration());
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
@end