iOS 音视频ffmpeg入门~编译ffmpeg

598 阅读1分钟

网上提供了几乎一致的编译ffmpeg的方式,就是通过此编译脚本实现。

较其他博客,此处主要记录由于系统版本和ffmpeg版本升级,导致的一些问题。话不多少,直接上步骤,并记录各步骤中出现的问题解决方式

1、安装 gas-preprocessor。

地址:github.com/yuvi/gas-pr…

下载后解压,将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

image.png

3.2.3 - 配置架构和iOS系统版本

说明:去掉了arm64外的其他架构减少体积,选择DEPLOYMENT_TARGER = 13是因为ffmpeg5.1.2版本中有API支持最低13。

image.png

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 头文件

image.png

至此,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目录

image.png

编译成功,ffmpeg 静态库导入完成。