Skip to content

Travis: build ffmpeg with its third parties #222

Closed
@cchampet

Description

@cchampet
##!/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}

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions