Mac OS X下编译并搭建ffmpeg开发环境及常见错误处理

首先官网下载源码文件: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 
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值