Closed
Description
##!/bin/bash
FFMPEG_VERSION=2.5.10
YASM_VERSION=1.3.0
LAME_VERSION=3.99.5
FAAC_VERSION=1.28
XVID_VERSION=1.3.3
FDKAAC_VERSION=0.1.3
OGG_VERSION=1.3.2
VPX_VERSION=1.4.0
VORBIS_VERSION=1.3.4
SRC=$PWD
MAKE_THREAD=2
export LD_LIBRARY_PATH=${SRC}/lib:${SRC}/lib64
export PKG_CONFIG_PATH=${SRC}/lib/pkgconfig:${SRC}/lib64/pkgconfig
export PATH=$PATH:${SRC}/bin
#yasm
echo "Building YASM (${YASM_VERSION})"
DIR=$(mktemp -d) && cd ${DIR} && \
curl -Os http://www.tortall.net/projects/yasm/releases/yasm-${YASM_VERSION}.tar.gz && \
tar xzvf yasm-${YASM_VERSION}.tar.gz && \
cd yasm-${YASM_VERSION} && \
./configure --prefix="$SRC" --bindir="${SRC}/bin" && \
make -j ${MAKE_THREAD} && \
make install && \
make distclean && \
rm -rf ${DIR}
# x264
echo ""
echo "Building x264 (last version)"
DIR=$(mktemp -d) && cd ${DIR} && \
git clone --depth 1 git://git.videolan.org/x264 && \
cd x264 && \
./configure --prefix="$SRC" --bindir="${SRC}/bin" --enable-shared --disable-asm && \
make -j ${MAKE_THREAD} && \
make install && \
make distclean&& \
rm -rf ${DIR}
# libmp3lame
echo ""
echo "Building libmp3lame (${LAME_VERSION})"
DIR=$(mktemp -d) && cd ${DIR} && \
curl -L -Os http://downloads.sourceforge.net/project/lame/lame/${LAME_VERSION%.*}/lame-${LAME_VERSION}.tar.gz && \
tar xzvf lame-${LAME_VERSION}.tar.gz && \
cd lame-${LAME_VERSION} && \
./configure --prefix="${SRC}" --bindir="${SRC}/bin" --enable-nasm && \
make -j ${MAKE_THREAD} && \
make install && \
make distclean&& \
rm -rf ${DIR}
# faac
# http://stackoverflow.com/a/4320377
# http://sourceforge.net/p/faac/bugs/162/#46a0
echo ""
echo "Building faac (${FAAC_VERSION})"
DIR=$(mktemp -d) && cd ${DIR} && \
curl -L -Os http://downloads.sourceforge.net/faac/faac-${FAAC_VERSION}.tar.gz && \
tar xzvf faac-${FAAC_VERSION}.tar.gz && \
cd faac-${FAAC_VERSION} && \
#sed -i '126d' common/mp4v2/mpeg4ip.h && \
./bootstrap && \
./configure --prefix="${SRC}" --bindir="${SRC}/bin" --enable-shared --with-mp4v2=no && \
make -j ${MAKE_THREAD} && \
make install &&\
rm -rf ${DIR}
# xvid
echo ""
echo "Building xvid (${XVID_VERSION})"
DIR=$(mktemp -d) && cd ${DIR} && \
curl -L -Os http://downloads.xvid.org/downloads/xvidcore-${XVID_VERSION}.tar.gz && \
tar xzvf xvidcore-${XVID_VERSION}.tar.gz && \
cd xvidcore/build/generic && \
./configure --prefix="${SRC}" --bindir="${SRC}/bin" && \
make -j ${MAKE_THREAD} && \
make install&& \
rm -rf ${DIR}
# fdk-aac
# Warning: need automake + libtool
echo ""
echo "Building fdk-aac (${FDKAAC_VERSION})"
DIR=$(mktemp -d) && cd ${DIR} && \
curl -s https://codeload.github.com/mstorsjo/fdk-aac/tar.gz/v${FDKAAC_VERSION} | tar zxvf - && \
cd fdk-aac-${FDKAAC_VERSION} && \
autoreconf -fiv && \
./configure --prefix="${SRC}" --enable-shared && \
make -j ${MAKE_THREAD} && \
make install && \
make distclean && \
rm -rf ${DIR}
# libogg
echo ""
echo "Building libogg (${OGG_VERSION})"
DIR=$(mktemp -d) && cd ${DIR} && \
curl -O http://downloads.xiph.org/releases/ogg/libogg-${OGG_VERSION}.tar.gz && \
tar xzvf libogg-${OGG_VERSION}.tar.gz && \
cd libogg-${OGG_VERSION} && \
./configure --prefix="${SRC}" --disable-shared --with-pic && \
make -j ${MAKE_THREAD} && \
make install && \
make distclean && \
rm -rf ${DIR}
# libvorbis
echo ""
echo "Building libvorbis (${VORBIS_VERSION})"
DIR=$(mktemp -d) && cd ${DIR} && \
curl -O http://downloads.xiph.org/releases/vorbis/libvorbis-${VORBIS_VERSION}.tar.gz && \
tar xzvf libvorbis-${VORBIS_VERSION}.tar.gz && \
cd libvorbis-${VORBIS_VERSION} && \
./configure --prefix="${SRC}" --with-ogg="${SRC}" --disable-shared --with-pic && \
make -j ${MAKE_THREAD} && \
make install && \
make distclean && \
rm -rf ${DIR}
# libvpx
# https://trac.ffmpeg.org/ticket/4956
echo ""
echo "Building libvpx (${VPX_VERSION})"
DIR=$(mktemp -d) && cd ${DIR} && \
git clone https://github.com/webmproject/libvpx.git && \
cd libvpx && \
git checkout v${VPX_VERSION} && \
./configure --prefix="${SRC}" --disable-examples --enable-pic && \
make -j ${MAKE_THREAD} && \
make install && \
make clean && \
rm -rf ${DIR}
# libopus
echo ""
echo "Building libopus (last version)"
DIR=$(mktemp -d) && cd ${DIR} && \
git clone git://git.opus-codec.org/opus.git && \
cd opus && \
autoreconf -fiv && \
./configure --prefix="${SRC}" --enable-shared --with-pic && \
make -j ${MAKE_THREAD} && \
make install && \
rm -rf ${DIR}
# ffmpeg
# To build in debug: --enable-debug=3 --disable-optimizations --disable-sse --disable-stripping \
# To build ffplay: need SDL-1.2
echo ""
echo "Building FFMpeg (${FFMPEG_VERSION})"
DIR=$(mktemp -d) && cd ${DIR} && \
curl -Os http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.gz && \
tar xzvf ffmpeg-${FFMPEG_VERSION}.tar.gz && \
cd ffmpeg-${FFMPEG_VERSION} && \
./configure --prefix="${SRC}" --extra-cflags="-I${SRC}/include" --extra-ldflags="-L${SRC}/lib64 -L${SRC}/lib" --bindir="${SRC}/bin" \
--disable-debug \
--enable-gpl --enable-nonfree \
--extra-libs=-ldl --enable-small --enable-shared \
--enable-libfaac --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-postproc --enable-avresample --enable-libfdk_aac --enable-libopus --enable-libvorbis --enable-libvpx && \
make -j ${MAKE_THREAD} && \
make install && \
make distclean && \
hash -r && \
rm -rf ${DIR}