iOS开发笔记

编译带 OpenSSL 的 FFmpeg(4.1.1) iOS

2019-02-27  本文已影响136人  ZTRogers

0. 本文部分参考自 https://blog.csdn.net/github_35041937/article/details/80727772 及 https://www.jianshu.com/p/f98db1d84d93

1. 首先把 https://github.com/kewlbear/FFmpeg-iOS-build-script clone到本地。

2. 修改 build-ffmpeg.sh 中 FF_VERSION="4.1.1"。

3. 添加 OPENSSL=`pwd`/openssl ,此时需要在工程目录中新建名为 openssl 的文件夹,把编译好的 openssl 的 include 和 lib 文件夹放入其中。具体编译方法见 https://www.jianshu.com/p/6066075d3aef  。

3. 添加对 https 和 openssl 的支持,在 CONFIGURE_FLAGS 后追加 --enable-protocol=https --enable-openssl --enable-protocol=crypto --enable-protocol=tls_openssl ,如果在第二步中已经定义 OPENSSL 的话,可以写成如图形式:

4. 精简体积:如果不需要许多复杂的功能,可以在 CONFIGURE_FLAGS 中如下代码:

CONFIGURE_FLAGS="$CONFIGURE_FLAGS --disable-decoders --enable-decoder=h264 --enable-decoder=aac" 

CONFIGURE_FLAGS="$CONFIGURE_FLAGS --disable-encoders --enable-encoder=aac --enable-encoder=mjpeg" 

CONFIGURE_FLAGS="$CONFIGURE_FLAGS --disable-filters"

CONFIGURE_FLAGS="$CONFIGURE_FLAGS --disable-muxers"

具体其他的 flag 还待研究,可以参考 ijkplayer 中的 module-lite.sh 自主选择。

5. 添加对 openssl 的引用路径,如图:

6. 注:如果想修改最低 iOS 版本的支持,修改 DEPLOYMENT_TARGET="8.0" 即可。

7. 保存后 cd 到该文件夹,执行 ./build-ffmpeg.sh (不要直接拖文件进来执行,不然导出的时候因为路径不对会报错)。如果终端显示 Done ,说明编译成功。

8. 编译成功后在 FFmpeg-iOS 文件夹下可得 include 和 lib 。

9. 注: 该文章里使用的 OpenSSL 版本是 1.0.2r,使用 1.1.0 及以上版本编译时会报错 "ERROR: openssl not found",需要修改 FFmpeg 配置文件,具体解决方法见第二个参考文。

上一篇下一篇

猜你喜欢

热点阅读