Ubuntu 12.10
Get tools to build the source:
sudo apt-get -y install \
build-essential yasm \
autoconf libtool pkg-config \
texi2html bison flex m4 \
subversion git-core \
checkinstall
Get pre-built libraries:
sudo apt-get -y install \
libmp3lame-dev libmp3lame0 \
libbz2-dev \
libxvidcore-dev libxvidcore4 \
libvorbis-dev libvorbis0a libvorbisenc2 libvorbisfile3 \
libopenjpeg-dev libopenjpeg2 \
libspeex-dev libspeex1 \
libtheora-dev libtheora0 \
libfaac-dev libfaac0 \
libgsm1-dev libgsm1 \
libdirac-dev libdirac-encoder0 libdirac-decoder0 \
vflib3-dev
Build libraries
Decide and create the place where you are going to do all your building, and set an environment variable so that it is easy to script the install:
export PREFIX=$HOME/share/ffmpeg-build
mkdir -p $PREFIX/src
libx264
cd $PREFIX/src
git clone git://git.videolan.org/x264.git
cd x264
./configure \
--prefix=$PREFIX \
--enable-static \
--disable-lavf
make -j4
sudo checkinstall \
--pkgname=ffmpeg_build_libx264 \
--pkgversion="3:$(date +%Y%m%d%H%M)-$(./version.sh | awk -F'[" ]' '/POINT/{print $4"+git"$5}')" \
--backup=no \
--fstrans=no \
--nodoc \
--default
note: You could build a 10 bit version by adding the
bit-depth option, if required
--bit-depth=10
libvpx
cd $PREFIX/src
git clone http://git.chromium.org/webm/libvpx.git
cd libvpx
./configure \
--prefix=$PREFIX
make -j4
sudo checkinstall \
--pkgname=ffmpeg_build_libvpx \
--pkgversion="1:$(date +%Y%m%d%H%M)-$(git rev-parse --short HEAD)-git" \
--backup=no \
--fstrans=no \
--nodoc \
--default
ffmpeg
cd $PREFIX/src
tsocks git clone git://source.ffmpeg.org/ffmpeg.git
cd ffmpeg
./configure \
--cpu=i686 \
--enable-static \
--extra-cflags='-I$PREFIX/include' \
--extra-libs='-L$PREFIX/lib' \
--prefix=$PREFIX \
--enable-ffplay \
--enable-ffprobe \
--enable-gpl \
--enable-nonfree \
--enable-pthreads \
--enable-libfaac \
--enable-libgsm \
--enable-libmp3lame \
--enable-libopenjpeg \
--enable-libspeex \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libxvid \
--enable-libfreetype
sudo checkinstall \
--pkgname=ffmpeg_build_ffmpeg \
--pkgversion="1:$(date +%Y%m%d%H%M)-$(./version.sh)" \
--backup=no \
--fstrans=no \
--nodoc \
--default
Compile for 32bit on a 64bit system
FFmpeg's onfigure script will select the correct architecture for your system's default
compiler if you do not explicitly set a compiler with
--cc=
To compile for 32bit on a 64bit system, you can for example use:
./configure - -cc='cc -m32'
FFmpeg:compiling is mentioned on: FFmpeg