1、首先获取安装所需的编译环境,在 OS X平台上使用的编译工具链为LLVM,但是呢,做iOS开发的都不用安装,因为Xcode自带LLVM环境。
2、然后需要yasm汇编编译工具
yasm下载地址:
http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
下载好之后,解压出来后,进入该文件夹,命令行输入:cd yasm-1.3.0
然后编译:./configure && make -j 16 && sudo make install
-j 16 表示16个并发执行线程。
3、下载FFmpeg源码,从 git://source.ffmpeg.org/ffmpeg.git 将源码克隆到本地。
然后进入ffmpeg文件夹:cd ffmpeg
然后编译并安装:./configure && make -j 16 && sudo make install
这样编译后的ffmpeg是不会生成ffplay可执行文件的,因为ffplay在旧版本时依赖于SDL-1.2,而ffplay在新版本时依赖于SDL-2.0,需要安装对应的SDL版本才能生成ffplay。
4、所以这一步我们去下载SDL-2.0
下载地址:http://libsdl.org/release/SDL2-2.0.8.tar.gz
下载完成后解压,进入 SDL2-2.0.8 文件夹,编译并安装:./configure && make -j 16 && sudo make install
现在SDL2安装完成,我们回到ffmpeg文件夹,重新编译就可以生成ffplay了。
到这里FFmpeg就编译完成了。
这种方法成功
下面是网上收集的方法
http://ffmpeg.org/download.html
1.git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
2.
./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-filter=delogo --enable-debug --disable-optimizations --enable-opengl --enable-libx265 --enable-libspeex --enable-libopus --enable-libmp3lame --enable-videotoolbox --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --cc=clang --host-cflags= --host-ldflags=
./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-filter=delogo --enable-debug --disable-optimizations --enable-libspeex --enable-videotoolbox --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --cc=clang --host-cflags= --host-ldflags=
./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-filter=delogo --enable-debug --disable-optimizations --enable-libspeex --enable-videotoolbox --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --cc=clang --host-cflags= --host-ldflags=
2.1Mac OS编译ffmpeg出错ERROR:
libfdk_aac not found,安装libfdk后解决
Failing that you can compile like I do-然后执行如下操作:
git clone git://github.com/mstorsjo/fdk-aac
cd fdk-aac
autoreconf -i
./configure
make install
2.2 ERROR: speex not found using pkg-config
brew install speex
brew install pkg-config
ERROR: libx264 not found
brew install x264
ERROR: x265 not found using pkg-config
brew install x265
ModuleNotFoundError: No module named 'setuptools'
安装SDL
如果你不安装的话,生成出来的 ffmpeg 没有 ffplay
// 下载
http://www.libsdl.org/release/SDL2-2.0.8.tar.gz
// 解压
tar -zvxf SDL2-2.0.8.tar.gz
// 进入盘
cd /Users/admin/Downloads/SDL2-2.0.8
// 生成Makefile
./configure --prefix=/usr/local
// 安装
sudo make -j 8 && make install
查看SDL是否安装成功
cd /usr/local/lib
// 查看是否安装成功
ls | grep SDL
进入 ffmpeg目录 配置
./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-filter=delogo --enable-debug --disable-optimizations --enable-libspeex --enable-videotoolbox --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --cc=clang --host-cflags= --host-ldflags=
如果是静态库
./configure --prefix=/usr/local/ffmpeg --pkg-config-flags=--static --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-filter=delogo --enable-debug --disable-optimizations --enable-libspeex --enable-videotoolbox --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --cc=clang --host-cflags= --host-ldflags=
// 未测试
--disable-shared --enable-static
// 因为关联的 libx264 这些 都默认动态,所以要删除对应目录文件 只留 .a <静态库>文件
等待等待后
查看文件,确认是否成功
vi Makefile
编译
sudo make
sudo make install
查看是否编译成功
/usr/local/ffmpeg/bin/ffmpeg
添加环境变量
vim ~/.bash_profile
// 加入这句
export PATH=$PATH:/usr/local/ffmpeg/bin
// 然后退出vim
wq
// 更新环境变量
source ~/.bash_profile
// 命令行中输入测试
ffmpeg
这样就可以直接使用 ffmpeg命令了
记录问题
No package ‘libavformat’ found
# 加入环境
export PKG_CONFIG_PATH="$PATH:/usr/local/ffmpeg/lib/pkgconfig"