目标
这里先提前说明一下,最后希望达到的效果:
- 编译出ffmpeg、ffprobe、ffplay三个命令行工具
- 只产生动态库,不产生静态库
- 将fdk-aac、x264、x265集成到FFmpeg中
- x264、x265会在以后讲解的视频模块中用到
下载源码
下载源码ffmpeg-4.3.2.tar.xz,然后解压。
FFmpeg源码结构
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
首先进入源码目录。
本文来详细讲解一下:如何在Mac、Windows环境下成功编译FFmpeg。
# 我的源码放在了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 --