首先官网下载源码文件:http://www.ffmpegmac.net/,注意点击“Download Now!"字样下面的“sourcecode”进行下载。下载后是一个.7z的压缩包,可以下载“The Unarchiver”程序进行解压,上传到资源栏里了,http://download.csdn.net/detail/enter_/9629936
这里有官网的编译方法:https://trac.ffmpeg.org/wiki/CompilationGuide/MacOSX。
首先最好是先把xcode装上,然后安装Homebrew ,它类似Ubuntu下面的 apt-get ,用习惯了apt-get 然后切换到mac下没有这样一个工具是一件很苦恼的事情,所以Homebrew就是apt-get一样好用。直接复制下面的代码到终端就好,这里不需要sudo,安装完使用的时候也不需要sudo。
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
下面就是brew的使用方法了,同样的,直接复制下面的代码到终端就好。
brew install automake fdk-aac git lame libass libtool libvorbis libvpx \
opus sdl shtool texi2html theora wget x264 xvid yasm
在下载安装这些工具的时候可能会出很多问题。如果出现类似 /usr/local/share/man/man1 : Permission denied 的错误,那应该是该目录下没有创建该目录,或者该目录没有写权限,解决办法是到该目录下mkdir对应的目录,然后修改权限为777,如:
$sudo mkdir /usr/local/share/man/man1
$sudo chmod 777 /usr/local/share/man/man1
然后是配置configure,首先应该进入到解压后的ffmpeg目录下,然后在执行configure之前先在解压的ffmpeg目录下执行,直接复制到终端即可:
CFLAGS=`freetype-config --cflags` LDFLAGS=`freetype-config --libs` PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/usr/X11/lib/pkgconfig
然后再执行configure,
./configure --prefix=/usr/local --enable-gpl --enable-nonfree --enable-libass \
--enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus \
--enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --extra-ldflags=-L/usr/local/lib
注意上面命令最后的参数:--extra-ldflags=-L/usr/local/lib,这个是用于找到相应的库的,如上面的yasm等,这些命令在安装并完成link后一般都会出现在/usr/local/lib目录下,所以这里直接添加库目录进去。
如果碰到类似的错误: ERROR: xxx not found,yasm/nasm not found or too old. Use --disable-yasm for a crippled build. 或者:yasm-1.3.0 already installed, it's just not linked。编译ffmpeg会用到汇编用于加速。解决办法:
首先,在终端上:$brew install xxx,如这里可以$brew install yasm,安装相应的命令。
如果提示xxx已经安装只是just not linked。那么直接用brew连接就好:$brew link xxx,如这里可以:$brew link yasm。链接后会在/usr/local/lib下生成一个链接文件指向相应的库。
configure这步没有问题后就可以往下执行了,都是些老套路,和Linux下一样一样的。
$make
$sudo make install
这里顺便说下添加环境变量的做法,一般常规是这样:export PATH=$PATH:/xxx/xx/bin,但是这样做只会对当前的终端生效,想要永久生效的话可以直接在bash文件中添加配置,做法如下:
$vim ~/.bash_profile
然后在打开的bash_profile中添加:export PATH=$PATH:/xxx/xxx/bin
保存后退出重启电脑即可生效。以后添加配置或者环境变量的时候都可以直接添加在这个文件里面。
最后是编译好的ffmpeg的include、lib、bin。需要的可以直接下载,版本为3.1.3。
如果编译上还有问题的可以直接留言探讨。
然后是搭建ffmpeg的运行环境了,这个就比较简单了,在这里简单说说QT和自己写Makefile时的几个问题。
首先放个测试用例,这里会输出ffmpeg的配置信息:(文件名为main.cpp)
#include <stdio.h>
extern "C"
{
#include "libavcodec/avcodec.h"
}
int main()
{
printf("%s\n", avcodec_configuration());
return 0;
}
运行后输出结果如下:
--prefix=/usr/local --enable-gpl --enable-nonfree --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --extra-ldflags=-L/usr/local/lib
Qt下要记得加入编译好的ffmpeg静态库,可以全给它加上去,需添加的配置如下:
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.11
LIBS