这是我参与更文挑战的第3天,活动详情查看: 更文挑战
FFmpeg环境安装
确保已经安装了
brew
安装FFmpeg
在终端执行命令行
brew install ffmpeg
查看安装情况
安装完成之后,执行如下命令:
brew info ffmpeg
✘标识的为没有安装此依赖库,需要安装此依赖库
安装依赖库
brew install nasm
确认FFmpeg及其依赖库安装情况
安装成功
FFmpeg-iOS-build-script脚本
下载FFmpeg-iOS-build-script脚本
修改FFmpeg版本
将
build-ffmpeg-iOS-framework.sh文件中的FFMPEG_VERSION修改为当前安装的FFmpeg的版本,此处安装的为4.3.1版本
执行脚本编译
以下四个脚本命令请按照自己的情况,选择一个执行
./build-ffmpeg.sh// 支持全部架构
./build-ffmpeg.sh arm64// 只支持arm64架构
./build-ffmpeg.sh armv7 x86_64// 支持armv7 x86_64架构
./build-ffmpeg.sh lipo// 从单独构建的瘦库构建胖库
修复错误
因为命令行安装gas-preprocessor.pl大概率会失败,此处直接下载,然后将gas-preprocessor.pl文件放在 /usr/local/bin目录下
然后可以使用命令which gas-preprocessor.pl查看文件路径
重新执行脚本
./build-ffmpeg.sh
此过程耗时较长,请耐心等待......
Xcode编译
1、添加文件
将目录下生成的FFmpeg-iOS文件夹拖进Xcode项目
可能需要添加头文件路径:
Bulid Setting->Search Paths->Header Search Paths添加$(SRCROOT)/$(PRODUCT_NAME)/FFmpeg-iOS/include
2、添加文件
在生成的ffmpeg-4.3.1文件夹下的fftools目录下,复制以下文件到工程
3、解决编译错误
可能需要将
#include "libavutil/avutil.h"此种引入修改为#include "avutil.h"
-
config.hfile not found 在FFmpeg-iOS-build-script-master目录下找到scratch目录,在里边随便打开一个架构文件夹,找到config.h文件,复制到项目中 -
libavcodec/avcodec.hfile not found 在工程的FFmpeg-iOS/include文件夹下创建文件夹libavcodec,然后将FFmpeg-iOS-build-script-master/ffmpeg-4.3.1/libavcodec目录下的avcodec.h文件复制到FFmpeg-iOS/include/libavcodec文件夹下,然后Add Files to ***** -
compat/va_copy.hfile not found 在工程的FFmpeg-iOS/include文件夹下创建文件夹compat,然后将FFmpeg-iOS-build-script-master/ffmpeg-4.3.1/compat目录下的va_copy.h文件复制到FFmpeg-iOS/include/compat文件夹下,然后Add Files to *****
缺少的文件就去
FFmpeg-iOS-build-script-master/ffmpeg-4.3.1目录下查找,放在FFmpeg-iOS/include/相同的文件夹下,没有文件夹的就创建