GstWebRTC - Evaluating GstWebRTC
GstWebRTC | ||||||||
---|---|---|---|---|---|---|---|---|
WebRTC Fundamentals | ||||||||
GstWebRTC Basics | ||||||||
|
||||||||
Evaluating GstWebRTC | ||||||||
Getting the code | ||||||||
Building GstWebRTC | ||||||||
Examples | ||||||||
|
||||||||
MCU Demo Application | ||||||||
Contact Us |
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 |
(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/ |
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.