GstWebRTC - Evaluating GstWebRTC

From RidgeRun Developer Wiki




Previous: Data Channel Index Next: Getting the code




This page serves as a guide to test the GstRrWebRTC evaluation binary provided by RidgeRun.

Requesting the Evaluation Binary

In order to request an evaluation binary for a specific architecture, please contact us providing the following information:

  • Platform (i.e.: iMX6, TX2, Ultrascale+, etc...)
  • gst-launch-1.0 --gst-version
  • uname -a

Features in the Evaluation

To help you test GstRrWebRTC, RidgeRun can provide an evaluation version of the plug-in. The following table summarizes the features available in both the professional and evaluation version of the element.

Feature Professional Evaluation
Video Streaming Y Y
Audio Streaming Y Y
A/V Streaming Y Y
Multiple Encoding Formats Y Y
Unlimited Streaming Time Y N (1)
Source Code Y N
Table 1. Features provided in the evaluation version

(1) The evaluation version will limit the streaming time of each pad to 2 minutes.


Testing the Binary

First, make sure the dependencies are fulfilled.

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

This packages need to be built from source since they are not yet included in standard Ubuntu/Debian repositories. The following sections summarize the process of building these packages for a x86 running Ubuntu 16.04

usrsctp

git clone https://github.com/RidgeRun/usrsctp
cd usrsctp
./bootstrap ; ./configure --prefix /usr/ --libdir /usr/lib/x86_64-linux-gnu/ ; make ; sudo make install ; cd ..
Replace your configure options according to the following table

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

Libnice

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

git clone https://github.com/libnice/libnice.git -b 0.1.16
cd libnice
./autogen.sh --prefix /usr/ --libdir /usr/lib/x86_64-linux-gnu/ ; make ; sudo make install ; cd ..

openwebrtc-gst-plugins

git clone https://github.com/RidgeRun/openwebrtc-gst-plugins
cd openwebrtc-gst-plugins
./autogen.sh; ./configure --prefix /usr/ --libdir /usr/lib/x86_64-linux-gnu/ ; make; sudo make install ; cd ..
Replace your configure options according to the options in Table 1, above.

RidgeRun should've provided you with three shared objects:

libgstrrwebrtcbase-1.0.so.0.xxxx.0
Core library
libgstpubnubsignaler-1.0.so.0.xxx.0
PubNub core library
libgstrrwebrtc.so
GStreamer plug-in

In order to use the binary provided, export the location of the plugin and the core libraries in your environment.

export GST_PLUGIN_PATH=${GST_PLUGIN_PATH}:/path/to/evaluation/binary/plugin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/path/to/evaluation/binary/lib

where /path/to/evaluation/binary/plugin and /path/to/evaluation/binary/lib are the locations in your file system where you have the plugin and core libraries binaries provided by RidgeRun, respectively.

Additionally, you may just copy the binary into the standard GStreamer plug-in and library search path.

Finally, test that the plugin is being properly picked up by GStreamer by running:

gst-inspect-1.0 rrwebrtc

You should see the inspect output for the evaluation binary:

gst-inspect-1.0 rrwebrtc
Plugin Details:
  Name                     rrwebrtc
  Description              Gstreamer RidgeRun WebRTC
  Filename                 /usr/lib/gstreamer-1.0/libgstrrwebrtc.so
  Version                  1.11.2.0
  License                  Proprietary
  Source module            gst-webrtc
  Source release date      2018-06-18
  Binary package           GstWebRTC
  Origin URL               http://www.ridgerun.com/

  rrwebrtcsrc: WebRTC receiver
  rrwebrtcsink: WebRTC sender
  rrwebrtcbin: WebRTC bin

  3 features:
  +-- 3 elements

Example Pipelines

Please refer to the Examples page for reference pipelines.

Troubleshooting

The first level of debug to troubleshoot a failing evaluation binary is to inspect GStreamer debug output.

GST_DEBUG=2 gst-launch-1.0

If the output doesn't help you figure out the problem, please contact support@ridgerun.com with the output of the GStreamer debug and any additional information you consider useful.



Previous: Data Channel Index Next: Getting the code