Compile FFmpeg on Scientific Linux

This guide is based on a minimal Scientific Linux 6.3 installation and will install FFmpeg with several external encoding libraries. This guide is kept relatively up to date with FFmpeg development and library sources, and should also work for recent Red Hat Enterprise Linux (RHEL), Fedora and CentOS.

Note: The # indicates that the command should be executed as superuser or root.

Preparation

Remove any existing packages:

# yum erase ffmpeg x264 x264-devel

Get the dependencies:

# yum install autoconf automake gcc gcc-c++ git libtool make nasm pkgconfig wget zlib-devel

Make a source directory:

mkdir ~/ffmpeg-source

Installation

Yasm

Yasm is an assembler used by x264 and FFmpeg.

cd ~/ffmpeg-source
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
tar xzvf yasm-1.2.0.tar.gz
cd yasm-1.2.0
./configure
make
# make install

Note: If you do not require certain encoders you may skip the relevant section and then remove the appropriate ./configure option in FFmpeg. For example, if libvorbis is not needed, then skip that section and then remove –enable-libvorbis from the Install FFmpeg section.

x264

H.264 video encoder.

cd ~/ffmpeg-source
git clone git://git.videolan.org/x264
cd x264
./configure --enable-static
make
# make install

libfdk_aac

AAC audio encoder.

cd ~/ffmpeg-source
git clone --depth 1 git://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
autoreconf -fiv
./configure --disable-shared
make
# make install

LAME

MP3 audio encoder.

cd ~/ffmpeg-source
wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar xzvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --disable-shared --enable-nasm
make
# make install

libogg

Required for libtheora and libvorbis.

cd ~/ffmpeg-source
wget http://downloads.xiph.org/releases/ogg/libogg-1.3.0.tar.gz
tar xzvf libogg-1.3.0.tar.gz
cd libogg-1.3.0
./configure --disable-shared
make
# make install

libtheora

Theora video encoder.

cd ~/ffmpeg-source
wget http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.gz
tar xzvf libtheora-1.1.1.tar.gz
cd libtheora-1.1.1
./configure --disable-shared
make
# make install

libvorbis

Vorbis audio encoder.

cd ~/ffmpeg-source
wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.3.tar.gz
tar xzvf libvorbis-1.3.3.tar.gz
cd libvorbis-1.3.3
./configure --disable-shared
make
# make install

libvpx

VP8 video encoder.

cd ~/ffmpeg-source
git clone http://git.chromium.org/webm/libvpx.git
cd libvpx
./configure
make
# make install

FFmpeg

cd ~/ffmpeg-source
git clone git://source.ffmpeg.org/ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-libfdk_aac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree
make
# make install

Compilation is now complete and ffmpeg should now be ready to use. The rest of this guide shows how to update or remove FFmpeg.

Note: Keep the ffmpeg-source directory and all contents if you intend to update or uninstall as shown below.

Updating x264, libvpx, and FFmpeg

First uninstall x264, libvpx, and FFmpeg:

cd ~/ffmpeg-source/x264
# make uninstall
cd ~/ffmpeg-source/ffmpeg
# make uninstall
cd ~/ffmpeg-source/libvpx
# make uninstall

Update x264

cd ~/ffmpeg-source/x264
make distclean
git pull

Then run ./configuremake, and make install as shown in the Install x264 section.

Update libvpx

cd ~/ffmpeg-source/libvpx
make clean
git pull

Then run ./configuremake, and make install as shown in the Install libvpx section.

Update FFmpeg

cd ~/ffmpeg-source/ffmpeg
make distclean
git pull

Then run ./configuremake, and make install as shown in the Install FFMPEG section.

Reverting changes made by this guide

cd ~/ffmpeg-source/yasm-1.2.0
# make uninstall
cd ../x264
# make uninstall
cd ../lame-3.99.5
# make uninstall
cd ../libogg-1.3.0
# make uninstall
cd ../libvorbis-1.3.3
# make uninstall
cd ../libvorbis-1.3.3
# make uninstall
cd ../libvpx
# make uninstall
cd ../ffmpeg
# make uninstall
rm -rf ~/ffmpeg-source
# yum erase autoconf automake gcc gcc-c++ git libtool make nasm pkgconfig wget zlib-devel
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s