Skip to content

Instantly share code, notes, and snippets.

@TGM
Last active December 17, 2015 10:26
Show Gist options
  • Save TGM/2722ab02b1fca31195a4 to your computer and use it in GitHub Desktop.
Save TGM/2722ab02b1fca31195a4 to your computer and use it in GitHub Desktop.
#!/bin/bash
# Requirements: Ubuntu 14.02 (Trusty Tahr)
# build essentials
sudo apt-get -y install build-essential git-core checkinstall \
automake yasm cmake cmake-curses-gui && mkdir -pv $HOME/vlc_build
sudo apt-get -y install liba52-0.7.4-dev libaa1-dev libasound2-dev libass-dev \
libavahi-client-dev libcaca-dev libcairo2-dev libcddb2-dev libcdio-dev libdca-dev \
libdirac-dev libdvbpsi-dev libdvdnav-dev libdvdread-dev libebml-dev libfaad-dev \
libflac-dev libfreetype6-dev libfribidi-dev libgcrypt11-dev libgl1-mesa-dev \
libglib2.0-0 libgnutls28-dev libid3tag0-dev libjack-jackd2-dev libkate-dev \
liblircclient-dev liblua5.1-0-dev libmad0-dev libmatroska-dev libmodplug-dev \
libmpcdec-dev libmpeg2-4-dev libmtp-dev libncursesw5-dev libnotify-dev libogg-dev \
liboggkate-dev libpango1.0-dev libpng12-dev libprojectm-dev libprojectm-qt-dev \
libproxy-dev libpulse-dev libqt4-dev libraw1394-dev librsvg2-dev libschroedinger-dev \
libsdl-image1.2-dev libsdl1.2-dev libshout3-dev libsmbclient-dev libspeex-dev \
libsqlite3-dev libsvga1-dev libsysfs-dev libtag1-dev libtar-dev libgme-dev \
libtheora-dev libtool libtwolame-dev libudev-dev libupnp-dev libv4l-dev libvcdinfo-dev \
libvorbis-dev libva-dev libvpx-dev libx11-dev libx11-xcb-dev libxcb-composite0-dev \
libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shm0-dev libxcb-xv0-dev libxcb-xvmc0-dev \
libxcb1-dev libxext-dev libxml2-dev libxpm-dev libxt-dev libxv-dev libzvbi-dev \
lua5.1 qt4-qtconfig libspeexdsp-dev libsamplerate0-dev libvdpau-dev libxpm-dev \
libxinerama-dev libtar-dev libgtk2.0-dev libdc1394-22-dev libopus-dev
# libfdk-aac
if [ "$(uname -m)" = "x86_64" ]; then
ARCHOPTS="--with-pic"
else
ARCHOPTS=""
fi && \
cd $HOME/vlc_build && wget https://github.com/mstorsjo/fdk-aac/archive/v0.1.3.tar.gz && \
tar xvf v0.1.3.tar.gz && cd fdk-aac-0.1.3 && \
autoreconf -fiv && \
./configure --prefix=$HOME/vlc_build/vlcdeps/usr \
$ARCHOPTS \
--disable-shared \
--enable-static && \
make && make install && make distclean
# shine
cd $HOME/vlc_build && \
sudo apt-get -y remove shineenc libshine-dev libshine2 && \
wget https://github.com/savonet/shine/releases/download/3.1.0/shine-3.1.0.tar.gz && \
tar xvf shine-3.1.0.tar.gz && \
cd shine-3.1.0 && ./configure && \
mkdir -vp doc-pak && cp -v ChangeLog COPYING doc-pak && \
sudo checkinstall --pakdir "$HOME/vlc_build" --backup=no --deldoc=yes \
--pkgname protobuf --pkgversion "2.6.0" --fstrans=no \
--deldesc=yes --delspec=yes --default && \
make distclean && sudo ldconfig
# chromecast
cd $HOME/vlc_build && \
sudo apt-get -y remove protobuf-c-compiler libprotobuf-dev libprotobuf-c0 \
libprotobuf-c0-dev libprotobuf-c0 libprotoc-dev libprotoc8 && \
wget https://protobuf.googlecode.com/svn/rc/protobuf-2.6.0.tar.gz && \
tar xvf protobuf-2.6.0.tar.gz && \
cd protobuf-2.6.0 && \
./configure && \
mkdir -vp doc-pak && cp -v CHANGES.txt CONTRIBUTORS.txt COPYING.txt doc-pak && \
sudo checkinstall --pakdir "$HOME/vlc_build" --backup=no --deldoc=yes \
--pkgname protobuf --pkgversion "2.6.0" --fstrans=no \
--deldesc=yes --delspec=yes --default && \
make distclean && sudo ldconfig
# x265
cd $HOME/vlc_build && \
wget https://bitbucket.org/multicoreware/x265/get/1.4.tar.bz2 -O \
x265-1.4.tar.bz2 && tar xvf x265-1.4.tar.bz2 && \
cd multicoreware-x265-5e604833c5aa && \
mkdir -v build1 && cd build1 && \
cmake ../source && \
sudo checkinstall --pakdir "$HOME/vlc_build" --backup=no --deldoc=yes \
--pkgname x265 --pkgversion "1.4" --fstrans=no \
--deldesc=yes --delspec=yes --default && \
sudo ldconfig && \
rm -rfv $HOME/vlc_build/multicoreware-x265-*/build1
# daala
sudo apt-get -y install check && \
cd $HOME/vlc_build && \
git clone https://git.xiph.org/daala.git && \
cd daala && ./autogen.sh && \
./configure --disable-player --disable-tools --disable-doc \
--docdir=/usr/share/doc/daala && make && \
mkdir -vp doc-pak && cp -v AUTHORS COPYING README doc-pak && \
sudo checkinstall --pakdir "$HOME/vlc_build" --backup=no --deldoc=yes --pkgname daala \
--pkgversion "1.0-git~$(git rev-parse --short HEAD)" \
--fstrans=no --deldesc=yes --delspec=yes --default && \
make distclean && sudo ldconfig
# ffmpeg
sudo apt-get -y install libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev zlib1g-dev && \
cd $HOME/vlc_build && \
wget http://ffmpeg.org/releases/ffmpeg-2.5.tar.bz2 && \
tar xvf ffmpeg-2.5.tar.bz2 && cd ffmpeg-2.5 && \
if [ "$(uname -m)" = "x86_64" ]; then
ARCHOPTS="--enable-pic"
else
ARCHOPTS=""
fi && \
CPPFLAGS="-I$HOME/vlc_build/vlcdeps/usr/include" \
LDFLAGS="-L$HOME/vlc_build/vlcdeps/usr/lib" \
PKG_CONFIG_PATH="$HOME/vlc_build/vlcdeps/usr/lib/pkgconfig" \
./configure --prefix=$HOME/vlc_build/vlcdeps/usr \
$ARCHOPTS \
--enable-gpl \
--enable-version3 \
--enable-nonfree \
--enable-libmp3lame \
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
--enable-libvpx \
--enable-libfdk-aac \
--enable-libx265 \
--disable-programs \
--disable-doc \
--disable-filters \
--disable-avdevice \
--disable-devices \
--disable-avfilter \
--disable-avresample && \
make -j 2 && make install-libs install-headers && make distclean
# x264
if [ "$(uname -m)" = "x86_64" ]; then
ARCHOPTS="--enable-pic"
else
ARCHOPTS=""
fi && \
cd $HOME/vlc_build && \
git clone git://git.videolan.org/x264.git --depth 1 && \
cd x264 && \
./configure --prefix=$HOME/vlc_build/vlcdeps/usr \
--enable-static \
--disable-cli \
$ARCHOPTS && \
make && make install
# libdvdcss
cd $HOME/vlc_build && \
sudo apt-get remove libdvdcss2 && \
wget http://download.videolan.org/pub/libdvdcss/1.3.0/libdvdcss-1.3.0.tar.bz2 && \
tar xvf libdvdcss-1.3.0.tar.bz2 && \
cd libdvdcss-1.3.0 && \
./configure --disable-doc \
--docdir=/usr/share/doc/libdvdcss && make && \
mkdir -vp doc-pak && cp -v AUTHORS ChangeLog COPYING INSTALL NEWS README doc-pak && \
sudo checkinstall --pakdir "$HOME/vlc_build" --backup=no --deldoc=yes \
--pkgname libdvdcss2 --pkgversion "1.3.0" --fstrans=no \
--deldesc=yes --delspec=yes --default && \
make distclean && sudo ldconfig
# live555
cd $HOME/vlc_build && sudo apt-get -y remove liblivemedia-dev && \
wget http://download.videolan.org/pub/contrib/live555/live.2014.07.25.tar.gz && \
tar xvf live.2014.07.25.tar.gz && chmod -R u+w live && cd live && \
if [ "$(uname -m)" = "x86_64" ]; then
./genMakefiles linux-64bit && make
else
./genMakefiles linux && make
fi && \
cp -v \
groupsock/libgroupsock.a liveMedia/libliveMedia.a UsageEnvironment/libUsageEnvironment.a \
BasicUsageEnvironment/libBasicUsageEnvironment.a $HOME/vlc_build/vlcdeps/usr/lib/ && \
cp -v \
groupsock/include/*.hh groupsock/include/*.h liveMedia/include/*.hh UsageEnvironment/include/*.hh \
BasicUsageEnvironment/include/*.hh $HOME/vlc_build/vlcdeps/usr/include/
# build vlc-git
cd $HOME/vlc_build && git clone git://git.videolan.org/vlc.git --depth 1 && \
cd $HOME/vlc_build/vlc && ./bootstrap && \
CPPFLAGS="-I$HOME/vlc_build/vlcdeps/usr/include" \
LDFLAGS="-L$HOME/vlc_build/vlcdeps/usr/lib" \
PKG_CONFIG_PATH="$HOME/vlc_build/vlcdeps/usr/lib/pkgconfig" \
./configure --prefix=/usr/local --enable-daala && \
make -j 2 && \
mkdir -vp doc-pak && cp -v AUTHORS COPYING INSTALL NEWS README THANKS doc-pak && \
sudo checkinstall --pakdir "$HOME/vlc_build" --backup=no --deldoc=yes --pkgname vlc \
--pkgversion "3.0.0-git~$(git rev-parse --short HEAD)" \
--fstrans=no --deldesc=yes --delspec=yes --default && \
make distclean && sudo ldconfig
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment