-
-
Save kuasha/8fe194b9794b39f3b9e1d29e2d12ebe0 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
export MAKEFLAGS="-j 3" | |
set -e | |
VERSION="1.18.0" | |
LIBNICE_VERSION="0.1.17" # libnice (v>=0.1.14) needed for webrtcbin | |
LIBSRTP_VERSION="2.3.0" # libsrtp (v>=2.2.0) required for srtp plugin | |
WEBRTCAUDIO_VERSION="0.3.1" # webrtc-audio-processing required for webrtcdsp | |
USRSCTP_VERSION="0.9.3.0" # usrsctp required for webrtc data channels (sctp) | |
[ -n "$1" ] && VERSION=$1 | |
# Create a log file of the build as well as displaying the build on the tty as it runs | |
exec > >(tee build_gstreamer.log) | |
exec 2>&1 | |
# Update and Upgrade the Pi, otherwise the build may fail due to inconsistencies | |
grep -q BCM2 /proc/cpuinfo && sudo apt-get update && sudo apt-get upgrade -y | |
# Remove old versions of dependencies; these will be build | |
# use dpkg since apt-get remove fail if the package is not installed | |
sudo dpkg --remove libnice-dev libsrtp2-dev libusrsctp-dev | |
sudo apt autoremove -y | |
# Get the required libraries without X server | |
sudo apt-get install -y build-essential autotools-dev automake autoconf checkinstall \ | |
libtool autopoint libxml2-dev zlib1g-dev libglib2.0-dev \ | |
pkg-config bison flex python3 wget tar gtk-doc-tools libasound2-dev \ | |
libgudev-1.0-dev libvorbis-dev libcdparanoia-dev \ | |
libtheora-dev libvisual-0.4-dev iso-codes \ | |
libraw1394-dev libiec61883-dev libavc1394-dev \ | |
libv4l-dev libcaca-dev libspeex-dev libpng-dev \ | |
libshout3-dev libjpeg-dev libflac-dev libdv4-dev \ | |
libtag1-dev libwavpack-dev libsoup2.4-dev libbz2-dev \ | |
libcdaudio-dev libdc1394-22-dev ladspa-sdk libass-dev \ | |
libcurl4-gnutls-dev libdca-dev libdvdnav-dev \ | |
libexempi-dev libexif-dev libfaad-dev libgme-dev libgsm1-dev \ | |
libiptcdata0-dev libkate-dev libmimic-dev libmms-dev \ | |
libmodplug-dev libmpcdec-dev libofa0-dev libopus-dev \ | |
librtmp-dev libsndfile1-dev libsoundtouch-dev libspandsp-dev \ | |
libxvidcore-dev libvpx-dev libzvbi-dev liba52-0.7.4-dev \ | |
libcdio-dev libdvdread-dev libmad0-dev libmp3lame-dev \ | |
libmpeg2-4-dev libopencore-amrnb-dev libopencore-amrwb-dev \ | |
libsidplay1-dev libtwolame-dev libx264-dev libusb-1.0 \ | |
python-gi-dev yasm python3-dev libgirepository1.0-dev \ | |
freeglut3 weston wayland-protocols pulseaudio libpulse-dev libssl-dev | |
# gstreamer | |
PACKAGE=gstreamer | |
wget https://gstreamer.freedesktop.org/src/$PACKAGE/$PACKAGE-$VERSION.tar.xz | |
tar xvf $PACKAGE-$VERSION.tar.xz | |
cd $PACKAGE-$VERSION | |
./configure --prefix=/usr --disable-gtk-doc | |
make | |
echo $PACKAGE > description-pak | |
sudo checkinstall -y --fstrans=no | |
sudo ldconfig | |
cd .. | |
# gst-plugins-base | |
PACKAGE=gst-plugins-base | |
wget https://gstreamer.freedesktop.org/src/$PACKAGE/$PACKAGE-$VERSION.tar.xz | |
tar xvf $PACKAGE-$VERSION.tar.xz | |
cd $PACKAGE-$VERSION | |
# include the renamed egl and glesv2 libraries | |
LIBDIR=$(pwd)/lib | |
mkdir -p $LIBDIR/pkconfig | |
ln -fs /opt/vc/lib/libbrcmEGL.so $LIBDIR/libEGL.so | |
ln -fs /opt/vc/lib/libbrcmGLESv2.so $LIBDIR/libGLESv2.so | |
ln -fs /opt/vc/lib/pkgconfig/brcmegl.pc $LIBDIR/pkconfig/egl.pc | |
ln -fs /opt/vc/lib/pkgconfig/brcmglesv2.pc $LIBDIR/pkconfig/glesv2.pc | |
./configure \ | |
PKG_CONFIG_PATH="/opt/vc/lib/pkgconfig:$LIBDIR/pkconfig" \ | |
LDFLAGS="-L/opt/vc/lib -L$LIBDIR -lbrcmEGL -lbrcmGLESv2" \ | |
CFLAGS='-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux/' \ | |
CPPFLAGS='-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux/' \ | |
--prefix=/usr \ | |
--disable-gtk-doc --disable-examples \ | |
--with-gles2-module-name=libbrcmGLESv2 \ | |
--with-egl-module-name=libbrcmEGL \ | |
--disable-fatal-warnings | |
make | |
echo $PACKAGE > description-pak | |
sudo checkinstall -y --fstrans=no | |
sudo ldconfig | |
cd .. | |
# gst-plugins-good | |
PACKAGE=gst-plugins-good | |
wget https://gstreamer.freedesktop.org/src/$PACKAGE/$PACKAGE-$VERSION.tar.xz | |
tar xvf $PACKAGE-$VERSION.tar.xz | |
cd $PACKAGE-$VERSION | |
./configure --prefix=/usr --disable-gtk-doc | |
make | |
echo $PACKAGE > description-pak | |
sudo checkinstall -y --fstrans=no | |
sudo ldconfig | |
cd .. | |
# gst-plugins-ugly | |
PACKAGE=gst-plugins-ugly | |
wget https://gstreamer.freedesktop.org/src/$PACKAGE/$PACKAGE-$VERSION.tar.xz | |
tar xvf $PACKAGE-$VERSION.tar.xz | |
cd $PACKAGE-$VERSION | |
./configure --prefix=/usr --disable-gtk-doc | |
make | |
echo $PACKAGE > description-pak | |
sudo checkinstall -y --fstrans=no | |
sudo ldconfig | |
cd .. | |
# gst-libav | |
PACKAGE=gst-libav | |
wget https://gstreamer.freedesktop.org/src/$PACKAGE/$PACKAGE-$VERSION.tar.xz | |
tar xvf $PACKAGE-$VERSION.tar.xz | |
cd $PACKAGE-$VERSION | |
./configure --prefix=/usr --disable-gtk-doc | |
make | |
echo $PACKAGE > description-pak | |
sudo checkinstall -y --fstrans=no | |
sudo ldconfig | |
cd .. | |
# libnice | |
PACKAGE=libnice | |
wget https://nice.freedesktop.org/releases/$PACKAGE-$LIBNICE_VERSION.tar.gz | |
tar xvf $PACKAGE-$LIBNICE_VERSION.tar.gz | |
cd $PACKAGE-$LIBNICE_VERSION | |
./configure --prefix=/usr --enable-compile-warnings=minimum | |
make | |
echo $PACKAGE > description-pak | |
sudo checkinstall -y --fstrans=no | |
sudo ldconfig | |
cd .. | |
# libsrtp | |
PACKAGE=libsrtp | |
wget https://github.com/cisco/$PACKAGE/archive/v$LIBSRTP_VERSION.tar.gz -O $PACKAGE-$LIBSRTP_VERSION.tar.gz | |
tar xzf $PACKAGE-$LIBSRTP_VERSION.tar.gz | |
cd $PACKAGE-$LIBSRTP_VERSION | |
./configure --prefix=/usr | |
make | |
echo $PACKAGE > description-pak | |
sudo checkinstall -y --fstrans=no | |
sudo ldconfig | |
cd .. | |
# webrtc audio processing | |
PACKAGE=webrtc-audio-processing | |
wget http://freedesktop.org/software/pulseaudio/$PACKAGE/$PACKAGE-$WEBRTCAUDIO_VERSION.tar.xz | |
tar xvf $PACKAGE-$WEBRTCAUDIO_VERSION.tar.xz | |
cd $PACKAGE-$WEBRTCAUDIO_VERSION | |
./configure --prefix=/usr | |
make | |
echo $PACKAGE > description-pak | |
sudo checkinstall -y --fstrans=no | |
sudo ldconfig | |
cd .. | |
# usrsctp | |
PACKAGE=usrsctp | |
wget https://github.com/sctplab/$PACKAGE/archive/$USRSCTP_VERSION.tar.gz -O $PACKAGE-$USRSCTP_VERSION.tar.gz | |
tar xzf $PACKAGE-$USRSCTP_VERSION.tar.gz | |
cd $PACKAGE-$USRSCTP_VERSION | |
./bootstrap | |
./configure --prefix /usr/ \ | |
CPPFLAGS='-Wno-address-of-packed-member' | |
make | |
echo $PACKAGE > description-pak | |
sudo checkinstall -y --fstrans=no | |
sudo ldconfig | |
cd .. | |
# gst-plugins-bad | |
PACKAGE=gst-plugins-bad | |
wget https://gstreamer.freedesktop.org/src/$PACKAGE/$PACKAGE-$VERSION.tar.xz | |
tar xvf $PACKAGE-$VERSION.tar.xz | |
cd $PACKAGE-$VERSION | |
./configure --prefix=/usr --disable-gtk-doc | |
make | |
echo $PACKAGE > description-pak | |
sudo checkinstall -y --fstrans=no | |
sudo ldconfig | |
cd .. | |
# python bindings | |
PACKAGE=gst-python | |
wget https://gstreamer.freedesktop.org/src/$PACKAGE/$PACKAGE-$VERSION.tar.xz | |
tar xvf $PACKAGE-$VERSION.tar.xz | |
cd $PACKAGE-$VERSION | |
PYTHON=/usr/bin/python3 ./configure --prefix=/usr | |
make | |
echo $PACKAGE > description-pak | |
sudo checkinstall -y --fstrans=no | |
sudo ldconfig | |
cd .. | |
# omx support | |
PACKAGE=gst-omx | |
wget https://gstreamer.freedesktop.org/src/$PACKAGE/$PACKAGE-$VERSION.tar.xz | |
tar xvf $PACKAGE-$VERSION.tar.xz | |
cd $PACKAGE-$VERSION | |
./configure \ | |
PKG_CONFIG_PATH="/opt/vc/lib/pkgconfig" \ | |
LDFLAGS='-L/opt/vc/lib' \ | |
CFLAGS='-I/opt/vc/include -I/opt/vc/include/IL -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/IL' \ | |
CPPFLAGS='-I/opt/vc/include -I/opt/vc/include/IL -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/IL' \ | |
--prefix=/usr --disable-gtk-doc --with-omx-target=rpi --disable-examples --disable-fatal-warnings | |
make | |
echo $PACKAGE > description-pak | |
sudo checkinstall -y --fstrans=no | |
sudo ldconfig | |
cd .. | |
# Gstreamer RTSP Server | |
PACKAGE=gst-rtsp-server | |
wget https://gstreamer.freedesktop.org/src/$PACKAGE/$PACKAGE-$VERSION.tar.xz | |
tar xvf $PACKAGE-$VERSION.tar.xz | |
cd $PACKAGE-$VERSION | |
./configure --prefix=/usr --disable-gtk-doc | |
make | |
echo $PACKAGE > description-pak | |
sudo checkinstall -y --fstrans=no | |
sudo ldconfig | |
cd .. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment