Skip to content

Instantly share code, notes, and snippets.

@StasKoval
Created February 4, 2016 22:37
Show Gist options
  • Save StasKoval/2ad77b215729018082cd to your computer and use it in GitHub Desktop.
Save StasKoval/2ad77b215729018082cd to your computer and use it in GitHub Desktop.
Kurento Media Server Installation (Debian Wheezy 64bit)

NOTE: This guide is currently incomplete.

Install general dependencies:

sudo apt-get install git build-essential cmake pkg-config libboost-dev libboost-test-dev \
     libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config \
     libssl-dev libsoup2.4-dev libboost-system-dev libboost-filesystem-dev \
     libogg-dev libtheora-dev libasound2-dev libvorbis-dev libpango1.0-dev \
     libvisual-0.4-dev libffi-dev libgmp-dev

Install a Java JDK (if you don't already have one available):

sudo apt-get install openjdk-7-jdk

Kurento uses Apache Thrift, so we will need to build that for our machine first (well at least that's what I did, because I couldn't find a suitable installation candidate). I chose to build against the git repository as I encountered this error when attempting to compile the 0.9.1 source tarball.

git clone https://git-wip-us.apache.org/repos/asf/thrift.git thrift
cd thrift/
git checkout thrift-0.9.1 -b build
./bootstrap.sh
./configure
make
sudo make install
cd ..

If the above instructions fail for any reason, then consult the Thrift Building from Source documentation.

Next, we will need to build gstreamer 1.x from source as support for gstreamer on Debian Wheezy seems pretty poor. If you are following these instructions on a later distribution of Debian or Ubuntu you may be able to skip this step:

wget http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.2.2.tar.xz
tar xf gstreamer-1.2.2.tar.xz
cd gstreamer-1.2.2
./configure
make
sudo make install
cd ..

Next, we will build orc as it is required by the gstreamer base plugins if we want it to be as fast as possible:

wget http://code.entropywave.com/download/orc/orc-0.4.18.tar.gz
tar xf orc-0.4.18.tar.gz
cd orc-0.4.18
./configure
make
sudo make install
cd ..

Next, we will build the base gstreamer plugins:

wget http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.2.2.tar.xz
tar xf gst-plugins-base-1.2.2.tar.xz
cd gst-plugins-base-1.2.2
./configure
make
sudo make install
cd ..

Next, we need to build and compile a number of libraries that are used by kurento that don't have recent enough versions available in the debian package repositories.

First glib (>= 2.38.2 required):

wget ftp://ftp.gnome.org/pub/gnome/sources/glib/2.38/glib-2.38.2.tar.xz
tar xf glib-2.38.2.tar.xz
cd glib-2.38.2
./configure
make
sudo make install
cd ..

Next, nice (>= 0.1.3 required):

wget http://nice.freedesktop.org/releases/libnice-0.1.4.tar.gz
tar xf libnice-0.1.4.tar.gz
cd libnice-0.1.4
./configure
make
sudo make install
cd ..

Next libnettle (>= 2.7 required to build gnutls):

wget http://www.lysator.liu.se/~nisse/archive/nettle-2.7.1.tar.gz
tar xf nettle-2.7.1.tar.gz
cd nettle-2.7.1
./configure
make
sudo make install
cd ..

Next, gnutls (>= 3.2.0 required):

wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/gnutls-3.2.10.tar.xz
tar xf gnutls-3.2.10.tar.xz
cd gnutls-3.2.10
./configure --disable-static --with-default-trust-store-file=/etc/ssl/ca-bundle.crt
make
sudo make install
cd ..

Clone the kurento-media-server project:

git clone https://github.com/Kurento/kurento-media-server
cd kurento-media-server

Initialise git submodules:

git submodule init
git submodule update

Run cmake:

cmake .
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment