本文是上面文章的摘要,只用于自己快速浏览.
目录
目标
编译出ffmpeg、ffprobe、ffplay三个命令行工具
只产生动态库,不产生静态库
将fdk-aac、x264、x265集成到FFmpeg中
x264、x265会在以后讲解的视频模块中用到
下载源码
Mac编译
一. 依赖项
brew install yasm
#ffmpeg的编译过程依赖yasm
#若未安装yasm会出现错误:nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.
brew install sdl2
#ffplay依赖于sdl2
#如果缺少sdl2,就无法编译出ffplay
brew install fdk-aac
#不然会出现错误:ERROR: libfdk_aac not found
brew install x264
#不然会出现错误:ERROR: libx264 not found
brew install x265
#不然会出现错误:ERROR: libx265 not found
其实x264、x265、sdl2都在曾经执行brew install ffmpeg的时候安装过了。
可以通过brew list的结果查看是否安装过
brew list | grep fdk
brew list | grep x26
brew list | grep -E 'fdk|x26'
如果已经安装过,可以不用再执行brew install
二. configure
# 我的源码放在了Downloads目录下
cd ~/Downloads/ffmpeg-4.3.2
#然后执行源码目录下的configure脚本,设置一些编译参数,做一些编译前的准备工作。
./configure --prefix=/usr/local/ffmpeg --enable-shared --disable-static --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265
–prefix
用以指定编译好的FFmpeg安装到哪个目录
一般放到/usr/local/ffmpeg中即可
–enable-shared
生成动态库
–disable-static
不生成静态库
–enable-libfdk-aac
将fdk-aac内置到FFmpeg中
–enable-libx264
将x264内置到FFmpeg中
–enable-libx265
将x265内置到FFmpeg中
–enable-gpl
x264、x265要求开启GPL License
–enable-nonfree
fdk-aac与GPL不兼容,需要通过开启nonfree进行配置
你可以通过configure –help命令查看每一个配置项的作用。
./configure --help | grep static
# 结果如下所示
--disable-static do not build static libraries [no]
三. 编译
make -j8
Makefile描述了整个项目的编译和链接等规则
四. 安装
#将编译好的库安装到指定的位置:/usr/local/ffmpeg。
make install
五. 配置PATH
为了让bin目录中的ffmpeg、ffprobe、ffplay在任意位置都能够使用,需要先将bin目录配置到环境变量PATH中。
# 编辑.zprofile
vim ~/.zprofile
# .zprofile文件中写入以下内容
export PATH=/usr/local/ffmpeg/bin:$PATH
# 让.zprofile生效
source ~/.zprofile
如果你用的是bash,而不是zsh,只需要将上面的.zprofile换成.bash_profile。
六. 验证
接下来,在命令行上进行验证。
#自己编译的ffmpeg可以将showBanner信息去掉,也可以通过这个特征来验证使用的是否是自己编译出的ffmpeg
ffmpeg -version
Windows编译
一. 下载安装MSYS2
二. 安装依赖
三. configure
四. 编译、安装
五. bin
六. Path
行者常至,为者常成!