之前公司内部使用的ffmpeg是比较陈旧的2.5.1版本,近期集成第三方sdk时,遇到兼容性问题,需要升级ffmpeg版本来解决,特此记录ffmpeg编译的处理流程。
1.确定编译脚本
ffmpeg完整库包含功能多,且存在很多针对各个平台的特殊处理,在ios平台使用时,需要进行裁剪,只编译ios平台需要的部分,所以一般使用编译脚本进行编译。
本次编译使用https://github.com/kewlbear/FFmpeg-iOS-build-script项目内的编译脚本进行编译。支持ffmpeg4.2版本编译脚本已上传,可点击build-ffmpeg-new.sh下载。
2.下载ffmpeg源码
编译脚本自带下载源码的功能,不过我们已经有其他部门更新了源码,为保证版本统一,采用直接使用同样的源码进行编译。
将源码解压并拷贝到脚本所在目录,即可进行编译。
3.修改编译脚本
根据编译版本和需求的不同,需要对编译脚本进行修改。
4.执行编译
编译脚本在命令行通过 ./xxxxxx.sh 命令执行。如果遇到提示没有权限,使用 chmod +x xx.sh 来提升脚本的权限。
编译完成后,支持所有系统架构的库文件输出在FFmpeg-iOS目录下,单独支持某个系统架构的库文件输出在thin目录下。
PS:
在项目中更新ffmpeg后,所有ffmpeg有关的头文件都需要进行更新,否则可能函数调用错误造成崩溃。
同一个项目中,ffmpeg头文件尽量使用一份,如果必须使用两份,一定要保持一致。