wiki:

CompilationGuide

/

MacOSX


Version 1 (modified by SJ_UnderWater, 7 years ago) (diff)

Opened stub

Compiling on Mac OS X is as easy as any other *nix machine, there are just a few caveats. For all of the packages described here, the general procedure is "./configure --help;./configure <flags>;make && sudo make install", but some use a different configuration scheme, or none at all.

Dependencies

XCode

Starting with Lion 10.7, Xcode is available for free from the Mac App Store and is required to compile anything on your Mac. Make sure you install the Command Line Tools from Preferences > Downloads > Components. Older versions are still available with an AppleID and free Developer account at developer.apple.com

Pkg-config & GLibC

Pkg-config is necessary for detecting some of the libraries you can compile into FFmpeg, and it requires GLibC which is not included in Mac OS X (but almost every other *nix distribution). You must download the large tarball from Gnome.org and compile it. Pkg-config is available from Freedesktop.org

Yasm

Lame (MP3)

Lame is available from Sourceforge.net, and adds MP3 abilities to FFmpeg. Compilation is as easy as ./configure;make && sudo make install, but you can also add --enable-mp3x, and --enable-mp3rtp.

Schroedinger

Schroedinger, which adds Dirac codec support, is available from DiracVideo.org. To compile schroedinger, you need ORC, available from EntropyWave.com. Compile orc with the standard procedure, making sure you delete the "testsuite" folder, which won't compile. When compiling schroedinger, make sure pkg-config and yasm are already compiled.

OpenJPEG

CDIO

Speex

Theora

Vorbis

VPX

x264

XVid

Compiling

Once you have compiled all of the codecs/libraries you want, you can now download the FFmpeg source either with git or the from release tarball links on the website. Study the output of ./configure --help and make sure you've enabled all the features you want, remembering that --enable-nonfree and --enable-gpl will be necessary for some of the dependencies above. A sample command is:

./configure --enable-nonfree --enable-libcdio --enable-libschroedinger --enable-libfaac --enable-libfreetype --enable-libmp3lame --enable-libopenjpeg --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-openssl --enable-zlib --enable-gpl

Attention Lion 10.7 Users: Due to defects in the llvm-gcc compiler, static macros defined in FFmpeg will fail to be recognized, resulting in a fatal error. Use cc/clang instead of gcc when compiling on Lion.