Ffmpeg Build 相关

ffmpeg在iOS下的编译(不包括x264,aac的库)

1. 下载gas-preprocessor.pl

2. 安装yasm

  • brew install yasm

3. 下载编译脚本

  • 下载地址https://github.com/applexiaohao/FFmpeg-iOS-build-script,脚本中有下载ffmpeg的操作. 这步也可用x264,fdk-aac编译到ffmpeg中提到的脚本
  • 脚本中要改下SOURCE="ffmpeg-4.0.2"为ffmpeg的版本号我当前为4.0.2. 还需要改下DEPLOYMENT_TARGET="8.0"iOS支持版本.
  • 执行./build-ffmpeg.sh得到FFmpeg-iOS这个文件夹就是我们需要导入的

4. 导入及头文件

  • 导入FFmpeg-iOS文件夹
  • Header Search Paths中添加$(PROJECT_DIR)/项目名字/FFmpeg-iOS/include
  • 需要的依赖的库如下:

    VideoToolbox.framework //硬解
    AudioToolbox.framework
    libiconv.tbd
    libbz2.tbd
    libz.tbd
    

编译x264

视频编码用的库

  • 下在x264源码,下载地址http://www.videolan.org/developers/x264.html. 或直接git clone http://git.videolan.org/git/x264.git下载
  • 下载编译脚本https://github.com/kewlbear/x264-ios.
  • 执行脚本./build-x264.sh
  • 如果遇到Out of tree builds are impossible with config.h/x264_config.h in source dir.,需要删除x264中的config.hx264_config.h
  • 如果编译后只有arm64架构的,则需./build-x264.sh armv7这样编译出其他需要的架构库,之后再./build-x264.sh lipo合成
  • 编译x86_64架构的时候需要先brew install nasm
  • 这样i386架构还是编译出来,因为这个架构已经用到,暂时不纠结

编译faac

音频编码用的库

编译fdk-aac

fdk-aac相比 faac以及其他的aac库,好处是输出码率控制精准,而且支持he-aac的编解码

将x264,fdk-aac编译到ffmpeg中

  • 1. 去https://github.com/kewlbear/FFmpeg-iOS-build-script中下载编译脚本. 修改脚本中的的ffmpeg为你的的版本号. 修改脚本中x264,fdk-aac库的路径.
  • 2. 执行脚本
  • 3. 编译过程中如果遇到libx264 no foundlibfdk-aac no found的错误.问题应该是对应的架构的x264,或aac库没有.应该去对应路径检查下
  • 4. 最后执行lipo合成
 
comments powered by Disqus