网上提供了几乎一致的编译ffmpeg的方式,就是通过此编译脚本实现。
较其他博客,此处主要记录由于系统版本和ffmpeg版本升级,导致的一些问题。话不多少,直接上步骤,并记录各步骤中出现的问题解决方式
1、安装 gas-preprocessor。
下载后解压,将gas-preprocessor.pl 放到/usr/local/bin文件路径中。
2、安装 yams。
地址:www.tortall.net/projects/ya…
下载解压后,cd到yasm的文件夹目录,执行
./configure && make -j 4 && sudo make isntall
mark:步骤 1,2均为使用脚本编译做环境准备,以上如果下载不顺利,可以尝试科学上网方式。
3、根据开篇地址,下载编译脚本文件FFmpeg-iOS-build-script.
3.1 - 下载脚本
3.2 - 配置build-ffmpeg文件。
3.2.1 - FF_VERSION表示FFmpeg版本,脚本中会根据此版本去下载对应的FFmpeg。
CONFIGURE_FLAG是配置项,具体ffmpeg官网有具体说明。
3.2.2 - unknown type name 'AudioDeviceID'; did you mean 'AudioFileID'?如果遇见此问题,如图添加 --disable-audiotoolbox,如有其他问题,可参开issue。
3.2.3 - 配置架构和iOS系统版本
说明:去掉了arm64外的其他架构减少体积,选择DEPLOYMENT_TARGER = 13是因为ffmpeg5.1.2版本中有API支持最低13。
3.3 - 配置好选项参数后就可以运行脚本,等待生成FFmpeg库。
3.3.1 cd到FFmpeg-iOS-buid-script
3.3.2 ./build-ffmpeg.sh
3.4 运行完毕就会生成:
-
ffmpeg-5.1.2、FFmpeg-iOS 、scratch、thin 等这些文件夹。
-
lib:对应的 FFmpeg 静态库
-
include:对应的 FFmpeg 头文件
至此,ffmpeg的静态库编译完成了。
4、Xcode集成ffmpeg
4.1 添加系统依赖库
- libz.tbd
- libbz2.tbd
- libiconv.tbd
- CoreMedia.framework
- VideoToolbox.framework
- AVFoundation.framework
4.2 添加ffmpeg库
将目录下的 include 和 lib文件夹 拖拽进项目中。
设置 Header Search Paths 路径,指向 项目中include目录
编译成功,ffmpeg 静态库导入完成。