GstWebRTC - Evaluating GstWebRTC

From RidgeRun Developer Connection
Revision as of 18:48, 19 December 2017 by Mgruner (talk | contribs)
Jump to: navigation, search

GstWebRTCBin Element

Home

Getting the code


This page serves as a guide to test the GstWebRTC 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

RR Contact Us.png

Features in the Evaluation

To help you test GstWebRTC, 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 5 minutes (at 30fps).


Testing the Binary

First, make sure the dependencies are fulfilled. If your binaries also include the experimental data channel support please make sure you also install the dependencies listed in #Testing Data Channel.

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 \

RidgeRun should've provided you with three shared objects:

libgstwebrtcbase-1.0.so.0.301.0
Core library
libgstpubnubsignaler-1.0.so.0.301.0
PubNub core library
libgstwebrtc.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 webrtc

You should see the inspect output for the evaluation binary.


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.

If the plug-in is not being recognized, please provide the output of the following command:

gst-inspect-1.0 libgstwebrtc.so

Testing Data Channel

If your evaluation binaries include the experimental data channel support, please make sure you build the following dependencies as well:

  • usrsctp
  • openwebrtc-gst-plugins

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 Nvidia Jetson TX1/TX2 running Ubuntu 16.04

usrsctp

git clone https://github.com/sctplab/usrsctp
cd usrsctp
./bootstrap ; ./configure --prefix /usr/ --libdir /usr/lib/x86_64-linux-gnu/ ; make ; sudo make install ; cd ..

openwebrtc-gst-plugins

git clone https://github.com/EricssonResearch/openwebrtc-gst-plugins
cd openwebrtc-gst-plugins
./autogen.sh; ./configure --prefix /usr/ --libdir /usr/lib/x86_64-linux-gnu/ ; make; sudo make install ; cd ..




GstWebRTCBin Element

Home

Getting the code