GstWebRTC - Evaluating GstWebRTC: Difference between revisions
mNo edit summary |
mNo edit summary |
||
(25 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
{{GstWebRTC | {{GstWebRTC/Head|previous=Data Channel|next=Getting the code|metakeywords=GstRrWebRTC evaluation,GstRrWebRTC evaluation binary,WebRTC binary,signaling}} | ||
This page serves as a guide to test the | This page serves as a guide to test the GstRrWebRTC evaluation binary provided by RidgeRun. | ||
__TOC__ | __TOC__ | ||
Line 17: | Line 17: | ||
== Features in the Evaluation == | == Features in the Evaluation == | ||
To help you test | 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. | ||
<html> | <html> | ||
<center> | <center> | ||
Line 60: | Line 60: | ||
</center> | </center> | ||
</html> | </html> | ||
(1) The evaluation version will limit the streaming time of each pad to | (1) The evaluation version will limit the streaming time of each pad to 2 minutes. | ||
== Testing the Binary == | == Testing the Binary == | ||
First, make sure the dependencies are fulfilled | First, make sure the dependencies are fulfilled. | ||
<syntaxhighlight lang='bash'> | <syntaxhighlight lang='bash'> | ||
sudo apt install \ | |||
gstreamer1.0-x \ | gstreamer1.0-x \ | ||
libgstreamer1.0-dev \ | libgstreamer1.0-dev \ | ||
Line 85: | Line 86: | ||
libsrtp0-dev \ | libsrtp0-dev \ | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== 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 ==== | |||
<syntaxhighlight lang=bash> | |||
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 .. | |||
</syntaxhighlight> | |||
<pre style='background-color:yellow'> | |||
Replace your configure options according to the following table | |||
</pre> | |||
<html> | |||
<table class='wikitable'> | |||
<tr> | |||
<th>System</th> | |||
<th>Configure Option</th> | |||
</tr> | |||
<tr> | |||
<td>Ubuntu 64 bits</td> | |||
<td>--prefix /usr/ --libdir /usr/lib/x86_64-linux-gnu/</td> | |||
</tr> | |||
<tr> | |||
<td>RidgeRun's Embedded FS</td> | |||
<td>--prefix /usr/</td> | |||
</tr> | |||
<tr> | |||
<td>Tegra TX1/TX2</td> | |||
<td>--prefix /usr/ --libdir /usr/lib/aarch64-linux-gnu/</td> | |||
</tr> | |||
<caption>Table 1. Platform configuration options</caption> | |||
</table> | |||
</html> | |||
==== Libnice ==== | |||
Libnice can be installed using apt, however, the version required by GstWebRTC is 0.1.15, so we need to install it manually: | |||
<syntaxhighlight lang=bash> | |||
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 .. | |||
</syntaxhighlight> | |||
==== openwebrtc-gst-plugins ==== | |||
<syntaxhighlight lang=bash> | |||
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 .. | |||
</syntaxhighlight> | |||
<pre style='background-color:yellow'> | |||
Replace your configure options according to the options in Table 1, above. | |||
</pre> | |||
RidgeRun should've provided you with three shared objects: | RidgeRun should've provided you with three shared objects: | ||
; | ;libgstrrwebrtcbase-1.0.so.0.xxxx.0 | ||
: Core library | : Core library | ||
;libgstpubnubsignaler-1.0.so.0. | ;libgstpubnubsignaler-1.0.so.0.xxx.0 | ||
: PubNub core library | : PubNub core library | ||
; | ;libgstrrwebrtc.so | ||
: GStreamer plug-in | : GStreamer plug-in | ||
Line 105: | Line 165: | ||
Finally, test that the plugin is being properly picked up by GStreamer by running: | Finally, test that the plugin is being properly picked up by GStreamer by running: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
gst-inspect-1.0 | gst-inspect-1.0 rrwebrtc | ||
</syntaxhighlight> | </syntaxhighlight> | ||
You should see the inspect output for the evaluation binary. | You should see the inspect output for the evaluation binary: | ||
<pre> | |||
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 | |||
</pre> | |||
== Example Pipelines == | == Example Pipelines == | ||
Please refer to the [[GstWebRTC - Examples|Examples]] page for reference pipelines. | Please refer to the [[GstWebRTC - Examples|Examples]] page for reference pipelines. | ||
== Troubleshooting == | == Troubleshooting == | ||
Line 125: | Line 204: | ||
If the output doesn't help you figure out the problem, please contact [mailto:support@ridgerun.com '''support@ridgerun.com'''] with the output of the GStreamer debug and any additional information you consider useful. | If the output doesn't help you figure out the problem, please contact [mailto:support@ridgerun.com '''support@ridgerun.com'''] with the output of the GStreamer debug and any additional information you consider useful. | ||
}} | {{GstWebRTC/Foot|previous=Data Channel|next=Getting the code}} |
Latest revision as of 15:17, 9 March 2023
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.