集成
- 下载FFmpeg For iOS编译脚本;
- 打开
terminal
执行sh build-ffmpeg.sh;
- 步骤2执行完成后运行
sh build-ffmpeg.sh lipo
将.a
文件合并成一个; - 步骤3执行完成将FFmpeg-iOS文件夹拖到目标工程并添加
libz.dylib
、libbz2.dylib
、libiconv.dylib
三个库,xcode7
及以上则是添加libz.tbd
、libbz2.tbd
、libiconv.tbd
,并添加框架VideoToolbox.framework
AudioToolbox.framework
CoreGraphics.framework
CoreMedia.framework
(此框架是 iOS8 新增的,用于硬解码)
- 设置头文件路径
$(PROJECT_DIR)/$(PRODUCT_NAME)/FFmpeg-iOS/include
:
- OC 工程在调用的时候直接#include "avformat.h";
-
swift 工程创建桥接头文件,在头文件内添加#import "avformat.h"
使用
通过以上我们得到一个集成了FFmpeg
的工程,接下来进行测试。为了方便,我们使用github
上一个基于FFmpeg
的框架 kxmovie。
kxmovie编译
- 终端运行:
git clone https://github.com/kolyvan/kxmovie
cd kxmovie
git submodule update --init
rake
- 将
kxmovie
目录下的kxmovie
文件夹拖到工程中
- 在桥接文件里添加要使用到的目标文件,如
#include "KxMovieViewController.h"
代码
vitamio 这里有一些视频链接供测试用。
- 按下按钮弹出视频窗口
@IBAction func playVedio(sender: AnyObject) {
let paths = ["http://live.3gv.ifeng.com/zixun.m3u8",
"http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8"]
guard let vedioVc = KxMovieViewController.movieViewControllerWithContentPath(paths[1], parameters: nil) as? UIViewController else {
print("err")
return;
}
self.presentViewController(vedioVc, animated: true, completion: nil);
}