IOS FFmpeg编译(包含x264, fdk-aac)

3 篇文章 0 订阅
3 篇文章 2 订阅

1.源码及脚本下载

FFmpeg官网最新源码:http://www.ffmpeg.org  

FFmpeg历史版本源码:Index of /releases

FFmpeg脚本:https://github.com/kewlbear/FFmpeg-iOS-build-script

x264源码:x264, the best H.264/AVC encoder - VideoLAN

x264脚本:https://github.com/kewlbear/fdk-aac-build-script-for-iOS

fdk-aac源码:http://www.linuxfromscratch.org/blfs/view/svn/multimedia/fdk-aac.html

fdk-aac脚本:https://github.com/kewlbear/x264-ios

2.编译

以我的下载为例,下载的包分别为:

ffmpeg-4.0.2.tar,FFmpeg-iOS-build-script-master.tar.gz

x264-master.tar.bz2,x264-ios-master.zip

fdk-aac-2.0.1.tar.gz,fdk-aac-build-script-for-iOS-master.zip

2.1 首先解压 FFmpeg-iOS-build-script-master.tar.gz得到FFmpeg-iOS-build-script-master,然后把ffmpeg-4.0.2.tar放到FFmpeg-iOS-build-script-master中解压得到ffmpeg-4.0.2。

2.2 编译 x264

  1. 为了防止混乱,咱们在 FFmpeg-iOS-build-script-master 新建 x264 文件夹
  2. 解压源码包 x264-master.tar.bz2 到 x264 文件夹下,解压脚本包 x264-ios-master.zip 得到 build-x264.sh 放到 x264 文件夹下。
  3. chmod 777 build-x264.sh 修改权限,否则有可能会报Permission denied
  4. 打开编辑 build-x264.sh,SOURCE="x264-master" 对应你的源码包名字,FAT="x264-iOS" 编译完成输出的文件名,这个都可以看情况自定义
  5. 进入到 x264 目录,执行 ./build-x264.sh  编译
  6. 如果编译成功则会在 x264 文件夹下生成 x264-IOS,库文件和头文件都在其中

2.3 编译 dk-aac

  1. 为了防止混乱,咱们在 FFmpeg-iOS-build-script-master 新建 fdk-aac 文件夹
  2. 解压源码包 fdk-aac-2.0.1.tar.gz 到 fdk-aac 文件夹下,解压脚本包 fdk-aac-build-script-for-iOS-master.zip 得到 build-fdk-aac.sh 放到 fdk-aac 文件夹下。
  3. chmod 777 build-fdk-aac.sh 修改权限,否则有可能会报Permission denied
  4. 打开编辑 build-fdk-aac.sh,SOURCE="fdk-aac-2.0.1" 对应你的源码包名字,FAT="fdk-aac-ios" 编译完成输出的文件名,这个都可以看情况自定义
  5. 进入到 fdk-aac 目录,执行 ./build-fdk-aac.sh  编译
  6. 如果编译成功则会在 fdk-aac 文件夹下生成 fdk-aac-ios,库文件和头文件都在其中

2.4 编译 FFmpeg

  1. chmod 777 build-ffmpeg.sh 修改权限,否则有可能会报Permission denied
  2. 打开编辑 build-ffmpeg.sh,更改你对应的版本 FF_VERSION="4.0.2",输出文件名 FAT="FFmpeg-iOS",选项 X264=`pwd`/x264/x264-iOS 和 FDK_AAC=`pwd`/fdk-aac/fdk-aac-ios 路径是刚才生成库的路径。
  3. 进入到 FFmpeg-iOS-build-script-master 目录,执行 ./build-ffmpeg.sh 编译
  4. 如果编译成功则会在 FFmpeg-iOS-build-script-master 文件夹下生成 FFmpeg-iOS,库文件和头文件都在其中

3. 报错处理

3.1 Found no assembler Minimum version is nasm-2.13 If you really want to compile without asm, configure with --disable-asm. (缺少nasm 通过brew安装 )

brew install nasm

3.2 No working C compiler found.(编译x264时报的错, 如果fdk-aac编译时也报这个也这样处理)

CFLAGS="$CFLAGS -mios-simulator-version-min=7.0" 和 5.0 都改为8.0 就好了,我的是这样

3.3 no member named “encoderDelay” (ffmpeg编译集成fdk-aac报的错误)

ffmpeg针对fdk-aac,存在如下patch解决此问题。大家可以参考下:https://github.com/libav/libav/commit/141c960e21d2860e354f9b90df136184dd00a9a8.patch 这是由于使用的fdk-aac版本太新,数据结构有所改变。修改文件目录ffmpeg-4.0.2/libavcodec/libfdk-aacenc.c 。另外一种变通的修改方式,降低fdk-aac的版本,也可以解决问题

3.4 GNU assembler not found, install/update gas-preprocessor

是因为 gas-preprocessor.pl 版本太老了,去这个地址 https://github.com/libav/gas-preprocessor 下载最新的,下载完放在/usr/local/lib/下,增加权限即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值