[iOS] ffmpeg iOS 版本编译和 KxMovie 播放器编译

1、ffmpeg 编译:
ffmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。

1)环境和版本:
Xcode 6.4
ffmpeg v2.7.2

2)下载 ffmpeg(可选,如果没有预先下载编译脚本也会下载):
http://www.ffmpeg.org/download.html
或者从百度网盘下载:
http://pan.baidu.com/s/1qWCBwHu

3)下载编译脚本:
下载 gas-preprocessor:
https://github.com/yuvi/gas-preprocessor
下载 FFmpeg-iOS-build-script:
https://github.com/kewlbear/FFmpeg-iOS-build-script
或者从百度网盘下载:
http://pan.baidu.com/s/1qWQi47U

4)将编译脚本和源文件解压后放入同一目录,如下:
.\build-ffmpeg.sh
.\gas-preprocessor.pl
.\ffmpeg-2.7.2\

5)在命令行运行:

如果没有错误的话,这个脚本就会在 FFmpeg-iOS 目录下生成 include 和 lib 文件,这就是我们需要的 iOS 版本 ffmpeg 库,包含了 armv7、arm64、i386、x64_64 四个版本。也就是说真机和模拟器版本都有了。
当然,如果你只需要其中某个版本,也可以在 thin 目录下找到相应的库。

2、编译 kxmovie 播放器:
1)下载 kxmovie 源代码:
https://github.com/kolyvan/kxmovie
或者百度网盘:
http://pan.baidu.com/s/1eQ76dLg

2)打开 kxmovie 源码文件夹,在其根目录下添加 FFmpeg 目录并将刚才编译的 include 和 lib 目录拷入;
.\FFmpeg\include
.\FFmpeg\lib

3)打开 kxmovie.xcworkspace,在 kxmovie 静态库工程里面 Header Search Paths 增加 ffmpeg 路径:
$(SRCROOT)/FFmpeg/include

4)在 KxMovieExample 工程里面 Library Search Paths 增加 ffmpeg 路径:
$(SRCROOT)/FFmpeg/lib

5)在 KxMovieExample 工程里面 Link With Libraries 增加如下框架:
MediaPlayer, CoreAudio, AudioToolbox, Accelerate, QuartzCore, OpenGLES, AVFoundation
以及动态链接库:
libz.dylib,libiconv.dylib, libbz2.dylib
当然还有 ffmpeg 下的所有 lib。

如下图所示:
Screen Shot 2015-08-26 at 3.22.46 PM

6)编译运行 KxMovieExample。

常见问题 Q&A:
1、无法链接 bz 库:
出现如下问题时:

请检查 2 中步骤 5)是否添加了 libbz2.dylib。

2、无法链接 AVCapture 库:
出现如下问题时:

请检查 2 中步骤 5)是否添加了 AVFoundation.framework。

附录:
1、完整 iOS 版本 ffmpeg 库下载:
http://pan.baidu.com/s/1gdEVFc3

参考文献:
1、http://blog.sina.com.cn/s/blog_4462d1710101k4ld.html
2、https://github.com/kewlbear/FFmpeg-iOS-build-script/issues/2
3、https://github.com/kewlbear/FFmpeg-iOS-build-script/issues/24

Add a Comment

您的邮箱地址不会被公开。 必填项已用 * 标注