Skip to content

Instantly share code, notes, and snippets.

@hiroaki
Created April 20, 2016 16:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hiroaki/6652204ee2e139313fbc21ae9e42a2c0 to your computer and use it in GitHub Desktop.
Save hiroaki/6652204ee2e139313fbc21ae9e42a2c0 to your computer and use it in GitHub Desktop.
Install ffmpeg on CentOS 5 automatically
#!/bin/sh
set -eu
# @(#)Install ffmpeg on CentOS 5
#
# Before execute this script, you have to install dependent packages:
# (There may be excess or deficiency)
#
# yum install zlib-devel bzip2 bzip2-devel sqlite sqlite-devel \
# openssl-devel man which gcc gcc-c++ perl make autoconf \
# zip unzip patch readline-devel gettext-devel gettext \
# curl-devel expat-devel libxml2-devel
SRCDIR=$HOME/local/src
DSTDIR=$HOME/local
LANG=C
export LANG
PATH=$DSTDIR/bin:/usr/bin:/bin:/usr/local/bin
export PATH
mkdir -p $SRCDIR
mkdir -p $DSTDIR
echo "-------------------------------------------------------------------------"
echo "Python"
echo "-------------------------------------------------------------------------"
cd $SRCDIR
curl -OL https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz
tar xzf Python-2.7.11.tgz
cd Python-2.7.11
./configure --prefix=$DSTDIR
make
make install
echo "-------------------------------------------------------------------------"
echo "libiconv"
echo "-------------------------------------------------------------------------"
cd $SRCDIR
curl -OL http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar xzf libiconv-1.14.tar.gz
cd libiconv-1.14
PKG_CONFIG_PATH=$DSTDIR/lib/pkgconfig \
CFLAGS="-I$DSTDIR/include" \
CPPFLAGS="-I$DSTDIR/include" \
LDFLAGS="-L$DSTDIR/lib" \
./configure --prefix=$DSTDIR
make
make install
make clean
echo "-------------------------------------------------------------------------"
echo "gettext"
echo "-------------------------------------------------------------------------"
cd $SRCDIR
curl -OL http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.1.1.tar.gz
tar xzf gettext-0.18.1.1.tar.gz
cd gettext-0.18.1.1
PKG_CONFIG_PATH=$DSTDIR/lib/pkgconfig \
CFLAGS="-I$DSTDIR/include" \
CPPFLAGS="-I$DSTDIR/include" \
LDFLAGS="-L$DSTDIR/lib" \
./configure --prefix=$DSTDIR
make
make install
make clean
echo "-------------------------------------------------------------------------"
echo "xz"
echo "-------------------------------------------------------------------------"
cd $SRCDIR
curl -OL http://tukaani.org/xz/xz-5.2.2.tar.gz
tar xzf xz-5.2.2.tar.gz
cd xz-5.2.2
PKG_CONFIG_PATH=$DSTDIR/lib/pkgconfig \
CFLAGS="-I$DSTDIR/include" \
CPPFLAGS="-I$DSTDIR/include" \
LDFLAGS="-L$DSTDIR/lib" \
./configure --prefix=$DSTDIR
make
make install
make clean
echo "-------------------------------------------------------------------------"
echo "tar"
echo "-------------------------------------------------------------------------"
cd $SRCDIR
curl -LO http://ftp.gnu.org/gnu/tar/tar-1.28.tar.gz
tar xzf tar-1.28.tar.gz
cd tar-1.28
PKG_CONFIG_PATH=$DSTDIR/lib/pkgconfig \
CFLAGS="-I$DSTDIR/include" \
CPPFLAGS="-I$DSTDIR/include" \
LDFLAGS="-L$DSTDIR/lib" \
./configure --prefix=$DSTDIR --with-xz=$DSTDIR/bin/xz
make
make install
make clean
echo "-------------------------------------------------------------------------"
echo "libffi"
echo "-------------------------------------------------------------------------"
cd $SRCDIR
curl -LO ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz
tar xzf libffi-3.2.1.tar.gz
cd libffi-3.2.1
PKG_CONFIG_PATH=$DSTDIR/lib/pkgconfig \
CFLAGS="-I$DSTDIR/include" \
CPPFLAGS="-I$DSTDIR/include" \
LDFLAGS="-L$DSTDIR/lib" \
./configure --prefix=$DSTDIR
make
make install
make clean
echo "-------------------------------------------------------------------------"
echo "pcre"
echo "-------------------------------------------------------------------------"
cd $SRCDIR
curl -L -o pcre-8.38.tar.gz \
https://sourceforge.net/projects/pcre/files/pcre/8.38/pcre-8.38.tar.gz/download
tar xzf pcre-8.38.tar.gz
cd pcre-8.38
PKG_CONFIG_PATH=$DSTDIR/lib/pkgconfig \
CFLAGS="-I$DSTDIR/include" \
CPPFLAGS="-I$DSTDIR/include" \
LDFLAGS="-L$DSTDIR/lib" \
./configure --prefix=$DSTDIR --enable-utf --enable-unicode-properties \
--libdir=$DSTDIR/lib --enable-pcregrep-libz --enable-pcregrep-libbz2
make
make install
make clean
echo "-------------------------------------------------------------------------"
echo "glib"
echo "-------------------------------------------------------------------------"
cd $SRCDIR
curl -LO http://ftp.gnome.org/pub/gnome/sources/glib/2.48/glib-2.48.0.tar.xz
$DSTDIR/bin/tar xJf glib-2.48.0.tar.xz
cd glib-2.48.0
PKG_CONFIG_PATH=$DSTDIR/lib/pkgconfig \
CFLAGS="-I$DSTDIR/include" \
CPPFLAGS="-I$DSTDIR/include" \
LDFLAGS="-L$DSTDIR/lib" \
./configure --prefix=$DSTDIR --with-libiconv=gnu --with-pcre=$DSTDIR
make
make install
make clean
echo "-------------------------------------------------------------------------"
echo "yasm"
echo "-------------------------------------------------------------------------"
cd $SRCDIR
curl -LO http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar xzf yasm-1.3.0.tar.gz
cd yasm-1.3.0
PKG_CONFIG_PATH=$DSTDIR/lib/pkgconfig \
CFLAGS="-I$DSTDIR/include" \
CPPFLAGS="-I$DSTDIR/include" \
LDFLAGS="-L$DSTDIR/lib" \
./configure --prefix=$DSTDIR
make
make install
make clean
echo "-------------------------------------------------------------------------"
echo "x264"
echo "-------------------------------------------------------------------------"
cd $SRCDIR
curl -LO ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
tar xjf last_x264.tar.bz2
cd x264-snapshot-*
PKG_CONFIG_PATH=$DSTDIR/lib/pkgconfig \
CFLAGS="-I$DSTDIR/include" \
CPPFLAGS="-I$DSTDIR/include" \
LDFLAGS="-L$DSTDIR/lib" \
./configure --prefix=$DSTDIR --enable-shared
make
make install
make install-lib-shared
make install-lib-static
make clean
echo "-------------------------------------------------------------------------"
echo "lame"
echo "-------------------------------------------------------------------------"
cd $SRCDIR
curl -L -o lame-3.99.5.tar.gz \
https://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.5.tar.gz/download
tar xzf lame-3.99.5.tar.gz
cd lame-3.99.5
PKG_CONFIG_PATH=$DSTDIR/lib/pkgconfig \
CFLAGS="-I$DSTDIR/include" \
CPPFLAGS="-I$DSTDIR/include" \
LDFLAGS="-L$DSTDIR/lib" \
./configure --prefix=$DSTDIR
make
make install
make clean
echo "-------------------------------------------------------------------------"
echo "faac"
echo "-------------------------------------------------------------------------"
cd $DSTDIR/src
curl -LO http://downloads.sourceforge.net/faac/faac-1.28.tar.gz
tar xzf faac-1.28.tar.gz
cd faac-1.28
PKG_CONFIG_PATH=$DSTDIR/lib/pkgconfig \
CFLAGS="-I$DSTDIR/include" \
CPPFLAGS="-I$DSTDIR/include" \
LDFLAGS="-L$DSTDIR/lib" \
./configure --prefix=$DSTDIR
make
make install
make clean
echo "-------------------------------------------------------------------------"
echo "faad2"
echo "-------------------------------------------------------------------------"
cd $DSTDIR/src
curl -LO http://downloads.sourceforge.net/faac/faad2-2.7.tar.gz
tar xzf faad2-2.7.tar.gz
cd faad2-2.7
PKG_CONFIG_PATH=$DSTDIR/lib/pkgconfig \
CFLAGS="-I$DSTDIR/include" \
CPPFLAGS="-I$DSTDIR/include" \
LDFLAGS="-L$DSTDIR/lib" \
./configure --prefix=$DSTDIR
make
make install
make clean
echo "-------------------------------------------------------------------------"
echo "ffmpeg"
echo "-------------------------------------------------------------------------"
cd $SRCDIR
curl -OL http://ffmpeg.org/releases/ffmpeg-3.0.1.tar.gz
tar xzf ffmpeg-3.0.1.tar.gz
cd ffmpeg-3.0.1
PKG_CONFIG_PATH=$DSTDIR/lib/pkgconfig \
CFLAGS="-I$DSTDIR/include" \
CPPFLAGS="-I$DSTDIR/include" \
LDFLAGS="-L$DSTDIR/lib" \
./configure --prefix=$DSTDIR \
--extra-cflags="-I$DSTDIR/include" \
--extra-cxxflags="-I$DSTDIR/include" \
--extra-ldflags="-L$DSTDIR/lib" \
--extra-ldlibflags="-L$DSTDIR/lib" \
--extra-libs="-L$DSTDIR/lib" \
--enable-shared \
--enable-libfaac \
--enable-libmp3lame \
--enable-libx264 \
--enable-gpl \
--enable-nonfree \
--enable-rpath
make
make install
make clean
echo "-------------------------------------------------------------------------"
echo "Congratulations!!"
echo "-------------------------------------------------------------------------"
$DSTDIR/bin/ffmpeg -version
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment