编译安装
针对 macOS
平台编译
安装 Xcode
需要编译工具链 LLVM
。
最新版本 AppStore
下载即可,历史版本 官网下载,需要通过AppID
账号登陆。
安装 Yasm or NASM
Yasm
Yasm
是汇编编译器,ffmpeg
为了提高效率使用了汇编指令,如 MMX
和 SSE
等。所以系统中未安装 yasm
时,就会报下面的错误。
liyouchengs-MacBook-Pro:ffmpeg lyc$ ./configure --prefix=/usr/local/ffmpeg
nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.
If you think configure made a mistake, make sure you are using the latest
version from Git. If the latest version fails, report the problem to the
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "ffbuild/config.log" produced by configure as this will help
下载 Yasm
执行解压(tar)、配置(configure
)、编译、安装
tar xvzf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make
make install
获取版本号,可以通过配置环境变量,方便全局调用
在 ~/.bash_profile
文件(未存在此文件,可新建),添加
export PATH=$PATH:/Users/lyc/Desktop/D/de/ffmpeg-study/yasm-1.3.0
通过 source ~/.bash_profile
命令,可使环境变量立即生效。
yasm --version
NASM
通过 brew
安装 nasm
brew install nasm
获取版本号
nasm --version
输出如下内容
NASM version 2.15.05 compiled on Aug 29 2020
安装 ffmpeg
下载 ffmpeg,任选一种方式下载。
通过 git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
下载 ffmpeg
当前目录下主要文件说明
libavcodec 编解码
libavfilter 滤镜
libavutil 常用工具
libavdevice 管理设备(音视频采集)
libavformat 多媒体格式解析
libavresample 音频重采样
libswscale 视频操作,视频缩放
libswresample 音频操作
首先执行配置(configure
)、编译、安装
./configure --prefix=/usr/local/ffmpeg --enable-debug=3 --disable-static --enable-shared --enable-ffplay
make -j 16 (j 开启 16 个运行)
make install
接着配置环境变量
vim ~/.bash_profile
export PATH=$PATH:/usr/local/ffmpeg/bin
source ~/.bash_profile
安装完成之后
ffmpeg 安装文件结构
bin
所有命令工具
include
所有头文件
lib
动态库,静态库
share
一些文档,例子
- Bin
ffmpeg 编解码
ffprobe 侦测
ffplay 播放
- includes
libavcodec 编解码
libavfilter 滤镜
libavutil 常用工具
libavdevice 管理设备(音视频采集)
libavformat 多媒体格式解析
libavresample 音频重采样
libswscale 视频操作,视频缩放
libswresample 音频操作
- lib
libavcodec.58.115.102.dylib 真正库 libavformat.dylib
libavcodec.58.dylib libavutil.56.62.100.dylib
libavcodec.a libavutil.56.dylib
libavcodec.dylib 编解码动态库 libavutil.a
libavdevice.58.11.103.dylib libavutil.dylib
libavdevice.58.dylib libswresample.3.8.100.dylib
libavdevice.a libswresample.3.dylib
libavdevice.dylib libswresample.a
libavfilter.7.93.100.dylib libswresample.dylib
libavfilter.7.dylib libswscale.5.8.100.dylib
libavfilter.a libswscale.5.dylib
libavfilter.dylib libswscale.a
libavformat.58.65.100.dylib libswscale.dylib
libavformat.58.dylib pkgconfig
libavformat.a
问题
查看/usr/local/ffmpeg/bin
是否包含 ffplay
,不包含?
解决:下载 SDL-2.0 并配置
./configure && make -j 16 && sudo make install
验证
使用此命令是否可以播放
ffplay /Users/lyc/Desktop/D/download/071.flv
参考
ffmpeg 编译错误 nasm/yasm not found or too old