react-native 集成 FFmpeg 能力 - 使用 FFmpegKit(三)

相关文章:
react-native 集成 FFmpeg 能力 - 使用 FFmpegKit(一)
react-native 集成 FFmpeg 能力 - 使用 FFmpegKit(二)

这一篇主要记录自己尝试打包 FFmpegKit 遇到的一些问题

FFmpegKit 仓库地址

网上可以找到一些大佬打好的全功能包,但是有些功能可能用不上,自己不需要的话,可以尝试自己本地编译一个。
仓库作者大佬也把怎么打写在文档里了,包括多平台的。这里我只尝试打包 apple 和 android 的。

0、

首先最后一步是需要 x86 架构才能打出来,如果是苹果芯片电脑,需要安装 Rosetta 工具。否则会报这样的错:
arch: posix_spawnp: zsh: Bad CPU type in executable

先查看自己电脑有没有安装:

pgrep -q oahd && echo "Rosetta 已安装" || echo "Rosetta 未安装"

没有的话就进行安装

softwareupdate --install-rosetta

接着安装文档安装一系列必备的依赖和一些环境变量的设置,比如 android 需要设置 sdk 和 ndk 的路径。

其他问题:

1、

可能会遇到需要升级 bison 的问题,电脑自带的可能才 2.3,可以用 homebrew 下载新的版本,然后覆盖电脑自带的
相关 issue 《fails to build with –enable-gnutls》。

2、

可能会遇到 cmake 最低版本要求,报错:CMake Error at CMakeLists.txt:29 (cmake_minimum_required):
去相应的 CMakeLists.txt 文件,把 cmake_minimum_required (VERSION 3.1 FATAL_ERROR) 这一句的那个 3.1 数据改成 3.5

3、

用 —full 的时候,可能最后打包会报错,openssl 和 gnutls 不能同时启动。所以改成不要用 —full,按官网 readme 把所需要的参数一个个 enable 进去。二选一,deepseek 推荐用 openssl

4、

Android ndk 版本最好用 25.1.8937393,其他版本我试了都报错。

5、

报了一个缺失库的错误,记不太清楚了。是有一份文件有关于头文件引入的判断,大概是判断要引入类似于这样的库: <f.h> 还是 <math.h>,然后条件判断是要引入 <f.h>。结果这个库比较老导致报错了。我就尝试都改成使用 <math.h> 就通过了。具体是哪一份文件的哪一行记不住了。
本来文章就是想记录这个,结果却忘了。= =!