编译kxmovie

KXMovie是基于ffmpeg的iOS播放器代码

下载KXMovie代码

地址:https://github.com/kinglonghuang

 git clone git://github.com/kinglonghuang/kxmovie.git

下载编译FFmpeg

在 https://github.com/FFmpeg/FFmpeg 中下载应该比clone快些,解压拷贝到kxmovie工程目录下的FFmpeg目录中。

下载gas-preprocessor.pl

地址:https://github.com/libav/gas-preprocessor

 sudo cp gas-preprocessor.pl /usr/bin sudo
 sudo chmod 777 /usr/bin/gas-preprocessor.pl

增加x86_64架构

用xcode打开kxmovie工程中的Rakefile文件,按i386的规则对应增加x86_64配置,保存关闭。

下载并编译x264

下载x264代码:http://www.videolan.org/developers/x264.html
下载x264 iOS build script:https://github.com/kewlbear/x264-ios

编译armv7架构库,成功后会在x264/armv7中生成include和lib目录。

./build-x264.sh armv7

如果报“Out of tree builds are impossible with config.h/x264_config.h in source dir.”,则删除x264中的config.h/x264_config.h。

增加x264支持

ffmpeg中只默认支持h264解码,没有支持编码,增强编译出的ffmpeg静态库功能。

以编译armv7为例,打开Rakefile,在FFMPEG_BUILD_ARGS_ARMV7中后面添加

'--enable-libx264',
'--enable-encoder=libx264',
'--enable-gpl',
"--extra-cflags='-I/xxx/workspace/kxmoviex/x264/armv7/include'",
"--extra-ldflags='-L/xxx/workspace/kxmoviex/x264/armv7/lib'"

修改为只执行armv7任务,

task :default => [:check_gas_preprocessor, :build_ffmpeg_armv7]

下载并编译faac

下载faac
http://nchc.dl.sourceforge.net/project/faac/faac-src/faac-1.28/faac-1.28.tar.gz
编译参考下面的链接,注意把编译脚本文件放到faac目录内
http://blog.csdn.net/cjj198561/article/details/38382889
https://github.com/EchoLiao/faac-prebuild/blob/master/build_ios.sh

增加faac支持

ffmpeg中自带的是acc编码

以编译armv7为例,打开Rakefile,在FFMPEG_BUILD_ARGS_ARMV7中后面添加

'--enable-libfaac',
'--enable-encoder=libfaac',
'--enable-nonfree',
"--extra-cflags='-I/xxx/workspace/kxmoviex/faac/build/install/armv7/include'",
"--extra-ldflags='-L/xxx/workspace/kxmoviex/faac/build/install/armv7/lib'"

重新编译ffmpeg

修改sdk版本号

用xcode打开kxmovie工程目录下的Rakefile,修改SDK_VERSION=’9.1’。或进入 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/,查看里面的目录快捷方式名中的版本号,或打开模拟器在关于中查看版本号。

运行

cd kxmovie
rake

执行rake命令

用xcode打开kxmovie工程目录下的Rakefile,修改SDK_VERSION=’9.2’。或进入 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/,查看里面的目录快捷方式名中的版本号,或打开模拟器在关于中查看版本号。

cd kxmovie
rake

如果报“XcodeDefault.xctoolchain/usr/bin/ranlib: archive member, does not match previous archive members cputype ”类似错误,清理对应目录中的.o文件。

在kxmoviex工程中,把x264/armv7中的库,和ffmpeg生成的库都加入到工程中。

参考文章:
http://stackoverflow.com/questions/5056600/how-to-install-gas-preprocessor
http://www.cnblogs.com/sunminmin/p/4463741.html
http://blog.sina.com.cn/s/blog_864456e50101emmx.html

发表评论