FFMPEG -MAC编译指南

以下内容翻译自FFmpeg/Wiki/CompilationGuide/MacOSX 原网址可能需要翻墙

在OS X上编译FFmpeg有以下几种方法。

1. 自行编译

在Mac OS X上编译FFmpeg和在其他Unix机器上编译一样简单,但是有几处需要注意。常规流程是 获取源代码->./configure ->make && sudo make install。只需要输入指定的flags就行了。​

2. 工具编译

另一种方法可以用一些"编译助手"工具来帮助你编译安装FFmpeg。​比如HomebrewMacports 。具体步骤请查看本文Homebrew章节

3. 下载安装

如果你不能编译或者你也不想安装Homebrew,你可以直接下载FFmpeg For OS X稳定版,但是,有可能并不包含一些你想要的功能。典型的就是需要你解压文件[如.zip文件],然后在刚解压出来的文件夹中找到FFmpeg程序路径,运行它。


通过Homebrew安装FFmpeg​

Homebrew是一个安装包管理器命令行,与分布式Linux系统上的`apt-get`方式十分类似。要使用Homebrew,你需要先安装`brew`,如果你还没有安装,请使用以下命令安装

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

​如果安装成功,输入以下命令以最少配置选项(和依赖库)安装最新版本的FFmpeg:

brew install ffmpeg

这些安装包的版本都是Homebrew的方案(formulas),安装程序会自动将FFmpeg的依赖库安装好。你可以输入`brew info ffmpeg`查看额外的安装选项,如:如果想要添加`libfdk_aac`或`libvpx`两个库(这两个库是高度推荐安装的),可以输入以下包含额外推荐选项的命令:

brew install ffmpeg --with-fdk-aac --with-ffplay --with-freetype --with-libass --with-libquvi --with-libvorbis --with-libvpx --with-opus --with-x265

​​如果你不清楚怎么配置和编译二进制文件,你会发现使用Homebrew相当简单。以后如果要升级FFmpeg到最新版本时,只需要输入以下命令即可:

brew update && brew upgrade ffmpeg

如果你想通过Homebrew安装FFmpeg的最新Git版本,在第一条安装命令后面添加`--HEAD`,如:

brew install ffmpeg --HEAD

如果你想手动编译FFmpeg的最新Git版本,请继续往下阅读。​

手动编译FFmpeg

-使用Xcode编译​

从Mac OS X 10.7开始,Xcode已经在Mac App Store上可以免费下载了,并且在Mac上编译任何东西都需要用到它。请确保你已经通过`Xcode->Preferences(command+,)->Downloads->Components`安装了Command Line Tools.早期的版本需要一个AppleID和免费的开发者账户,可以在developer.apple.com注册。

-使用Homebrew编译​

要获取Mac OS X的FFmpeg,首先,你需要安装Homebrew。如果你不想安装Homebrew,请阅读下一节。Homebrew安装命令:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

然后输入以下命令:

brew install automake fdk-aac git lam libass libtool libvorbis libvpx \ opus sdl shtool texi2html theora wget x264 xvid yasm

Mac OS X从10.7版本开始已经自带Freetype(早期版本可以需要在安装过程中选择'X11',通常情况下X11的路径是:`/usr/X11`)。然后在终端运行`freetype-config`就会显示出独立的文件夹,像头文件(headers),库文件(libraries),所以,请在输入`./configure`配置命令之前,运行以下命令或将以下命令添加到`$HOME/.profile`文件中:

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

不使用Homebrew手动安装FFmpeg依赖库

-Pkg-config & GLib​

Pkg-config是检查可以被编译进ffmpeg的库的必要文件,它需要GLib,但是GLib并没有安装在Mac OS X(绝大多数Unix系统中都安装了)系统中。你可能需要下载pkg-config 0.23,或从Gnome.org下载压缩文件解压并编译它。pkg-config可以从Freedesktop.org下载。

要编译GLib,你还要从GNU.org下载gettext,并且编辑stpncpy.c文件,在"#ifndef weak_alias"前加一行"#undef stpncpy"。Mac OS X从10.7开始有它自己版本的stpncopy功能(不兼容),在gettext里重复了。正常编译gettext就行了。使用以下命令编译Glib:

LIBFFI_CFLAGS=-I/usr/include/ffi LIBFFI_LIBS=-lffi

​​​​​​​​​​./configure​

`make && sudo make install(这一步时,可能需要输入管理员密码)

要编译pkg-config,输入以下命令:​

GLIB_FLAGS="-I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include" GLIB_LIBS="-lglib-2.0 -lgio-2.0"

./configure --with-pc-path="/usr/X11/lib/pkgconfig:/usr/X11/share/pkgconfig:/usr/local/pkgconfig"

-Yasm

Yasm可以从tortall.net下载,Yasm是编译包含机器独立汇编代码的C代码必要文件。使用以下命令安装Yasm:

./configure --enable-python

make && sudo make install(这一步,可能需要输入管理员密码)

-额外依赖库

以下仅仅只是举例,具体参数请输入`./configure --help`查看:​

*x264 编码H.264视频。编译参数--enable-gpl --enable-libx264

*fdk-aac编码AAC音频。编译参数--enable-libfdk-aac

*libvpx。VP8/VP9视频编码器。编译参数--enable-libvpx

*libvorbis 编码Vorbis音频。需要libogg。编译参数--enable-libvorbis

*libopus编码Opus音频。

*LAME编码MP3音频。编译参数--enable-libmp3lame

*libass字幕渲染器。编译参数--enable-libass

正式编译

如果你已经编译好了所有你想要的编码器/依赖库,你就可以使用Git下载FFmpeg的源代码或者从网站链接下载发布的压缩文件。研究`./configure --help`的输出,确保你已经启用了所有你想要功能,记住`--enable-nonfree`和`--enable-gpl`两个参数将是上面某些库的依赖条件。下面是一个编译例子:

git clone http://source.ffmpeg.org/git/ffmpeg.git ffmpeg

cd ffmpeg

./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

make && sudo make install

最后附上原文链接:MacOSX

对翻译有疑问,请联系微博指出。谢谢!转载请注明本文链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,829评论 1 331
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,603评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,846评论 0 226
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,600评论 0 191
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,780评论 3 272
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,695评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,136评论 2 293
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,862评论 0 182
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,453评论 0 229
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,942评论 2 233
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,347评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,790评论 2 236
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,293评论 3 221
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,839评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,448评论 0 181
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,564评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,623评论 2 249

推荐阅读更多精彩内容