GstWebRTC - Building GstWebRTC

From RidgeRun Developer Connection
Revision as of 12:14, 28 February 2019 by Jcruz (talk | contribs)
Jump to: navigation, search

Getting the code


Home

Examples



This Section presents the instructions to build the GstRrWebRTC element on x86, Jetson and Jocto platforms;

Examples Index





This page provides a guide to install GstRrWebRTC.

Dependencies

GstRrWebRTC has the following dependencies:

  • Gstreamer 1.0
  • 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)
  • GTK-Doc Tools (Optional) (gtk-doc-tools)

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 \
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

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

Mac OSX

Using MacPorts

sudo port install \
gstreamer1 \
gstreamer1-gst-plugins-base \
gstreamer1-gst-plugins-bad \
gstreamer1-gst-plugins-good \
gstreamer1-gst-plugins-ugly \
json-glib \
autoconf \
libtool \
gtk-doc \
glib2 \
libsoup \
openssl \
readline \
libnice \
libsrtp

Data channel support dependencies

In order to have support for WebRTC data channel you need to build these libraries from the scratch:

  • SCTP libraries
git clone https://github.com/sctplab/usrsctp
cd usrsctp
./bootstrap 
./configure <platform configuration option, see Table 1>
make 
sudo make install
cd ..
  • GStreamer SCTP elements
git clone https://github.com/EricssonResearch/openwebrtc-gst-plugins
cd openwebrtc-gst-plugins
./autogen.sh
./configure <platform configuration option, see Table 1> 
make
sudo make install
cd ..

If you get the error 'UINT16_MAX' undeclared while running make, add the library #include <stdint.h> to the openwebrtc-gst-plugins/ext/sctp/sctpassociation.c file.

Install RidgeRun GstRrWebRTC plugin

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

./autogen.sh $OPTIONS # CHOOSE THE APPROPRIATE CONFIGURATION FROM THE TABLE BELOW
make
sudo make install

System Configure Option
Ubuntu 64 bits --prefix /usr/ --libdir /usr/lib/x86_64-linux-gnu/
RidgeRun's Embedded FS --prefix /usr/
Tegra TX1/TX2 --prefix /usr/ --libdir /usr/lib/aarch64-linux-gnu/
Table 1. Platform configuration options

Mac OSX

Export the PKG_CONFIG_PATH variable to /opt/local/

export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig
./autogen.sh --prefix /opt/local/
make
sudo make install

Verify

The plugin installation can be verified by running:

gst-inspect-1.0 rrwebrtc

Building GstRrWebRTC on Yocto

RidgeRun offers a Yocto layer containing RidgeRun commonly used packages. You can download this package from https://github.com/RidgeRun/meta-ridgerun.
It contains a recipe to build GstRrWebRTC but you need to purchase a license, from: https://www.ridgerun.com/store/GSTWebRTC-p74337777

Adding meta-ridgerun to your Yocto build

First you need to copy meta-ridgerun in your sources directory:

cp -r meta-ridgerun $YOCTO_DIRECTORY/sources/

Then add the RidgeRun meta layer to your bblayers.conf file. First go to the build configuration directory

cd $YOCTO_DIRECTORY/build/conf/

Open the bblayers.conf file and add the RidgeRun meta layer path $YOCTO_DIRECTORY/sources/meta-ridgerun to BBLAYERS

Building GstRrWebRTC

  • Once you have access to the repository, please open gst-webrtc_xxx.bb in $YOCTO_DIRECTORY/sources/meta-ridgerun/recipes-multimedia/gstreamer/
  • Modify the following line in SRC_URI with the correct gst-webrtc URL by changing <Customer-Directory> with your own.
git://git@gitlab.com/RidgeRun/orders/<Customer-Directory>/gst-webrtc.git;protocol=ssh;branch=${SRCBRANCH};name=base \
  • Make sure you have added your ssh key to your GitLab account. For more information: SSH Information
  • Finally build recipe:
bitbake gst-webrtc

SSH Information

The recipe will fetch the repository using your ssh key, thus it's necessary to add the key in Gitlab page.
For adding it, go to Settings->SSH Keys and add your key, if don't have one you can find there a link about how to generate it.

SHH Issue
If GitLab key hasn't added to your list of known hosts on the PC, you will have fetch errors when trying to build Gst-WebTRC recipe.
One easy way to add the key is when cloning the repository for the first time from gitlab, it will ask if you want to add the key to your list of known hosts.

Example:

git clone git@gitlab.com:RidgeRun/orders/<Customer-Directory>/gst-webrtc.git




Getting the code


Home

Examples