Skip to content

Instantly share code, notes, and snippets.

@cjhanks
Created August 16, 2012 22:08
Show Gist options
  • Save cjhanks/3374043 to your computer and use it in GitHub Desktop.
Save cjhanks/3374043 to your computer and use it in GitHub Desktop.
FFMPEG Build
#!/bin/bash
set -e
MAKE_COUNT=4
if [ "`grep -c /etc/apt/sources.list deb-multimedia`" == "0" ];
then
echo "deb http://www.deb-multimedia.org squeeze main non-free" >> /etc/apt/sources.list
apt-get install -y --force-yes deb-multimedia-keyring
fi
if [ "`dpkg -l | grep -c libav-tools`" != "0" ];
then
apt-get remove -y x264 libav-tools libvpx-dev libx264-dev
fi
# jic
apt-get install -y autoconf
apt-get install -y build-essential checkinstall git libfaac-dev libgpac-dev \
libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev \
libopencore-amrwb-dev librtmp-dev libsdl1.2-dev \
libtheora-dev libva-dev libvdpau-dev libvorbis-dev \
libx11-dev libxfixes-dev pkg-config texi2html yasm \
zlib1g-dev libspeex-dev libxvidcore-dev libfaad-dev \
liba52-dev libdts-dev libimlib2-dev libraw1394-dev \
libgsm1-dev libfaad-dev libschroedinger-dev \
libopenjpeg-dev
# YASM #
if [ -e yasm ];
then
rm -rf yasm
fi
git clone git://github.com/yasm/yasm.git
pushd yasm
./autogen.sh
make -j$MAKE_COUNT
make install
popd
# X264 #
if [ -e x264 ];
then
rm -rf x264
fi
git clone --depth 1 git://git.videolan.org/x264 x264
pushd x264
./configure --enable-static
make -j$MAKE_COUNT
checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes --fstrans=no --default
popd
# AAC ENCODER #
if [ -e fdk-aac-0.1.0 ];
then
rm -rf fdk-aac-0.1.0
fi
wget http://downloads.sourceforge.net/opencore-amr/fdk-aac-0.1.0.tar.gz
tar xzvf fdk-aac-0.1.0.tar.gz
rm fdk-aac-0.1.0.tar.gz
pushd fdk-aac-0.1.0
./configure
make -j$MAKE_COUNT
checkinstall --pkgname=fdk-aac --pkgversion="0.1.0" --backup=no --deldoc=yes --fstrans=no --default
popd
# libVPX
if [ -e libvpx ];
then
rm -rf libvpx
fi
git clone --depth 1 http://git.chromium.org/webm/libvpx.git libvpx
pushd libvpx
./configure
make -j$MAKE_COUNT
checkinstall --pkgname=libvpx --pkgversion="1:$(date +%Y%m%d%H%M)-git" --backup=no --deldoc=yes --fstrans=no --default
popd
# FFMPEG
if [ -e ffmpeg ];
then
rm -rf ffmpeg
fi
git clone --depth 1 git://source.ffmpeg.org/ffmpeg ffmpeg
cd ffmpeg
./configure --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg \
--incdir=/usr/include/ffmpeg --libdir=/usr/lib/ --mandir=/usr/share/man \
--extra-cflags='-O3 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions \
-fstack-protector --param=ssp-buffer-size=4 -mtune=generic' \
--enable-gpl --enable-shared --enable-nonfree --enable-version3 \
--enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb \
--enable-libopencore-amrwb --enable-librtmp --enable-libtheora \
--enable-libvorbis --enable-libvpx --enable-libx264 \
--enable-pthreads --enable-libxvid --enable-postproc --enable-libgsm \
--enable-libspeex --enable-avfilter \
--disable-decoder=libdirac --enable-libfreetype --enable-libschroedinger \
--disable-decoder=libschroedinger --enable-libopenjpeg
make -j$MAKE_COUNT
checkinstall --pkgname=ffmpeg --pkgversion="5:$(date +%Y%m%d%H%M)-git" --backup=no --deldoc=yes --fstrans=no --default
hash x264 ffmpeg ffplay ffprobe
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment