Mac安装集成FFmpeg步骤

FFmpeg 是一个跨平台的音视频录制、转换和流媒体化的解决方案。在Windows平台上,FFmepg的使用非常广泛,大部分播放器都是基于FFmpeg内核的,比如:Mplayer,ffplay,射手播放器,暴风影音,KMPlayer,QQ影音等。而且FFmpeg的音视频编解码功能非常强大,它几乎囊括了所有的音视频编解码标准,我们熟知的格式转码工具格式工厂也是基于FFmpeg内核的。

其实在iOS的音视频开发上,大多数情况我们都不需要引入第三方框架,苹果提供了非常方便的AVPlayer,其性能和格式支持上的优异性使AVPlayer完全能满足大部分音视频开发的需求。但如果要在项目中增加对VR和直播的支持,AVPlayer就不能满足需求了,这个时候就有必要引入FFmpeg框架了。

一、Mac安装FFmpeg

1)安装Homebrew,打开终端执行

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

2)安装好Homebrew,然后终端执行 

brew install ffmpeg

等待完成即可。在终端中输入ffmpeg,验证是否安装成功。

如果出现大概如上图,说明ffmpeg安装成功。

二、编译iOS下FFmpeg

1)安装 gas-preprocessor,后面运行 FFmpeg-iOS-build-script 这个自动编译脚本需要 gas-preprocessor。打开终端,依次执行下面命令:

sudo git clone https://github.com/bigsen/gas-preprocessor.git  /usr/local/bin/gas
sudo cp /usr/local/bin/gas/gas-preprocessor.pl /usr/local/bin/gas-preprocessor.pl
sudo chmod 777 /usr/local/bin/gas-preprocessor.pl
sudo rm -rf /usr/local/bin/gas/

2)安装yasm,yasm是汇编编译器,因为ffmpeg中为了提高效率用到了汇编指令,所以编译时需要安装。在终端中输入:

brew install yasm

如果卡在 Updating Homebrew... 很长时间,则按住 control + c 取消本次更新操作。按住 control + c 之后命令行会显示^C,就代表已经取消了 Updating Homebrew 操作,大概几秒钟之后就会去执行我们真正需要的安装操作了。

检测是否已安装 yasm

brew install yasm

如果你成功安装了 yasm,输出大概如下图:

3)下载FFmpeg自动编译的脚本,该脚本会自动从github中把ffmpeg源码下到本地并开始编译出iOS可用的库,支持各种架构。下载地址:https://github.com/kewlbear/FFmpeg-iOS-build-script

4)下载后的文件为 FFmpeg-iOS-build-script-master ,可看到里面包含四个文件:

其中build-ffmpeg.sh为我们所需要的。

5)打开终端,cd至 FFmpeg-iOS-build-script-master 文件所在目录,执行

./build-ffmpeg.sh

6)安装过程会比较漫长,如果出现如下错误信息:

执行命令

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

然后再次在终端中执行 ./build-ffmpeg.sh 命令,完成安装ffmpeg。

完成后可看到多出了ffmpeg-4.3.1、FFmpeg-iOS 、scratch、thin 这些文件夹。

三、iOS下集成FFmpeg

生成完FFmpeg库与代码后,我们就可以集成到iOS项目中进行使用了。

1)新建一个空项目,在 Link Binary With Libraries 里添加

libz.tbd

libbz2.tbd

libiconv.tbd

CoreMedia.framework

VideoToolbox.framework

AVFoundation.framework

2)将生成的 FFmpeg-iOS 文件拖入项目中,设置Header Search Paths路径,指向文件中的 include 目录 。

3)然后在项目中导入 avformat.h 头文件在代码中编写 av_register_all() 进行编译,如果没有报错,代表集成成功。

猜你喜欢

转载自blog.csdn.net/Alexander_Wei/article/details/85765619