iOS编译可用的FFMpeg库

前言

笔者也是刚开始学习FFMpeg,对于FFMpeg在iOS上的环境搭建在网上找了很多文章,发现大多都是copy,而且有些是不可用的;有些可用但是版本比较老,对于有强迫症的我来说是接受不了的;为此笔者在这里绕了很久,写下这篇文章用来记录怎么在iOS搭建可以使用的FFMpeg库,以及给后来者一些借鉴,如有异议请指出。

概念

FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation. It is also highly portable: FFmpeg compiles, runs, and passes our testing infrastructure FATE across Linux, Mac OS X, Microsoft Windows, the BSDs, Solaris, etc. under a wide variety of build environments, machine architectures, and configurations.

总的来说FFMpeg是一个跨平台的解码、编码、转码、复用、解复用、流式传输、过滤和播放的库

环境搭建

1.下载ffmpeg,打开终端执行下面的命令

brew install ffmpeg

如果未安装homebrew终端会提示

-bash: brew: command not found

使用下面的命令安装homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装完homebrew之后,再下载ffmpeg,此时有可能提示Xcode需要更新等,按照提示完成相关操作即可。

2.下载shell脚本FFmpeg-iOS-build-script
下载完脚本后,解压会看到三个文件,我们只需要编译iOS库所以只需要build-ffmpeg.sh即可;在终端cd到该文件的目录,执行下面命令

./build-ffmpeg.sh arm64 x86_64

解释下上面命令,arm64指的是ARM CPU的指令集,不同的芯片对应不同的指令集,指令集是向下兼容的,所以用arm64即可

指令集.png

x86_64是Mac处理器的指令集,即用于模拟器

执行上面命令提示如下报错xcrun -sdk iphoneos clang is unable to create an executable file.


xcrun -sdk.png

解决方案,在终端执行下面命令即可

sudo xcode-select --switch /Applications/Xcode.app

接下来再次执行build-ffmpeg.sh脚本,经过漫长的等待,在build-ffmpeg.sh脚本目录下会多出几个文件夹ffmpeg-4.1FFmpeg-iOSscratchthin

3.打开Xcode,新建项目
FFmpeg-iOS拖入工程,添加

  • libz.tbd
  • libbz2.tbd
  • libiconv.tbd
  • AudioToolBox.framework
  • VideoToolBox.framework

至此FFMpeg环境搭建告一段落。

你可能感兴趣的:(iOS编译可用的FFMpeg库)