GStreamer WebRTC Wrapper - Getting the Code - Building and Installation Guide

From RidgeRun Developer Wiki




Previous: Getting_the_Code/How_to_get_the_code Index Next: GStreamer_Pipelines




Dependencies

GstWebRTCWrapper has the following dependencies:

  • Gstreamer 1.0 (version 1.14.5)
  • GStreamer 1.0 Development Package
  • Gstreamer 1.0 Base Plug-ins Development Package
  • Gstreamer 1.0 Bad Plug-ins
  • Gstreamer 1.0 Good Plug-ins
  • LibSoup Development Package (libsoup2.4-dev)
  • JSON-GLib Development Package (libjson-glib-dev)
  • OpenSSL Development Package (libssl-dev)
  • LibNice Development Package (libnice-dev version 1.15)
  • GTK-Doc Tools (Optional) (gtk-doc-tools)
  • Meson (version 0.47 or greater)

Make sure you have the following GStreamer elements:

  • gst-inspect-1.0 rtpmanager
  • gst-inspect-1.0 dtls
  • gst-inspect-1.0 nice
  • gst-inspect-1.0 srtp

Linux

In Debian based systems, you may install them with the following command:

sudo apt install \
gstreamer1.0-x \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
gstreamer1.0-plugins-bad \
libgstreamer-plugins-bad1.0-dev \
libsoup2.4-dev \
libjson-glib-dev \
libnice-dev \
autoconf \
libtool \
gtk-doc-tools \
libglib2.0-dev \
gstreamer1.0-nice \
libssl-dev \
libreadline-dev \
gstreamer1.0-plugins-ugly \
libsrtp0-dev \
libsrtp2-dev

Other Dependencies

In Ubuntu 16.04 the following dependencies were also required:

sudo apt install \
faad \
libasound2-dev \
libfaad-dev \
libjack-jackd2-dev \
libmad0-dev \
libogg-dev \
liborc-0.4-dev \
libpulse-dev \
libtheora-dev \
libv4l-dev \
libv4l2rds0 \
libvorbis-dev \
libvpx-dev \
libx264-dev \
libxv-dev \
x11proto-video-dev

Libnice

Libnice can be installed using apt, however, the version required by GstWebRTCbin is 0.1.15, so we need to install it manually:

git clone https://github.com/libnice/libnice.git
cd libnice
git checkout 0.1.15
./autogen.sh --prefix /usr/ --libdir /usr/lib/aarch64-linux-gnu/ ; make -j$(nproc) ; sudo make install ; cd ..

Meson

Download meson via pip installer:

sudo apt install python3-pip ninja-build
pip3 install --user meson
#After installation you may need to export meson to the PATH variable
export PATH="$HOME/.local/bin:$PATH" #Add this to the .bashrc file for permanent setup

GStreamer Wrapper Bin

Please refer Getting the code page and RidgeRun will provide you the full source version of the plugin path once you place the order.
Check out the latest tag and run the commands mentioned below:

cd gst-webrtc-wrapper
meson build --prefix=/usr
ninja -C build
sudo ninja -C build install

Supported Arguments

The meson build system supports arguments to create and install the plugin in a specific folder.

Argument Default Value Description
--prefix /usr Path to install the binaries
-Denable-eval false Argument to enable or disable evaluation mode
Table 1. Supported arguments

Example command to create an evaluation binary for NVIDIA Jetson.

meson build --prefix=/usr/lib/aarch64-linux-gnu/ -Denable-eval=true

Verify

The plugin installation can be verified by running:

gst-inspect-1.0 webrtcwrapperbin


Previous: Getting_the_Code/How_to_get_the_code Index Next: GStreamer_Pipelines