GStreamer WebRTC Wrapper - Evaluating GstWebRTCWrapper
| GStreamer WebRTC Wrapper |
|---|
| Introduction |
| Architecture |
|
| Evaluating GstWebRTCWrapper |
| Getting the Code |
| GStreamer Pipelines |
| Other WebRTC RidgeRun products |
| Contact Us |
This page is a guide to testing the GstWebRTCWrapper 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
- gst-launch-1.0 --gst-version
- uname -a
Features in the Evaluation
RidgeRun provides an evaluation binary 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 |
| Data Channel Streaming (1) | Y | Y |
| Unlimited Streaming Time | Y | N (2) |
| Source Code | Y | N |
(1) This feature is only available for GStreamer 1.18 and newer versions.
(2) The evaluation version will limit the streaming time of each pad to 2 minutes.
Dependencies
GstWebRTCWrapper has the following dependencies:
- Gstreamer 1.0 (version 1.14.5)
- 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 version 1.15)
- GTK-Doc Tools (Optional) (gtk-doc-tools)
- Meson (version 0.47 or greater)
In case a requirement is not installed, please follow the instructions in the Building Guide to install dependencies.
Install the Evaluation Binaries
Extract the tarball provided by RidgeRun (note that the file names can change depending on the software version and target platform):
tar -xvf gst-webrtc-wrapper-0.9.0-gst-1.14-aarch64-linux-gnu-eval.tar
The evaluation files structure should be as follows (note that the file names can change depending on the software version and target platform): gst-webrtc-wrapper-0.9.0-gst-1.14-aarch64-linux-gnu-eval
└── usr
└── lib
└── aarch64-linux-gnu
├── gstreamer-1.0
│ └── libgstwebrtcwrapper.so
└── libgstwebrtcwrapper-1.0.so
The plugin binary is libgstwebrtcwrapper.so and the core library binary is libgstwebrtcwrapper-1.0.so. In order to use the binaries provided, export the location of the plugin and the core libraries in your environment.
export GST_PLUGIN_PATH=${GST_PLUGIN_PATH}:<absolute path to the directory containing the plugin binary libgstwebrtcwrapper.so>
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:<absolute path to the directory containing the library binary libgstwebrtcwrapper-1.0.so>
where <absolute path to the directory containing the plugin binary libgstwebrtcwrapper.so> and <absolute path to the directory containing the library binary libgstwebrtcwrapper-1.0.so> are the locations in your file system where you have the plugin and core libraries binaries provided by RidgeRun, respectively.
Finally, test that the plugin is being properly picked up by GStreamer by running:
gst-inspect-1.0 webrtcwrapperbin
Expected output:
*************************************
*** THIS IS AN EVALUATION VERSION ***
*************************************
Thanks for evaluating
GstWebRTC Wrapper!
After approximately 2 minutes the
streaming will stop and you will
not be able to reconnect. Please
contact <support@ridgerun.com> to
purchase the professional version
of the plug-in.
*************************************
*** THIS IS AN EVALUATION VERSION ***
*************************************
Factory Details:
Rank none (0)
Long-name Webrtc Wrapper
Klass Bin/Webrtc_Wrapper
Description Wrap the GstwebrtcBin element
Author Ridgerun Limitada support@ridgerun.com>
Plugin Details:
Name webrtcwrapper
Description Wrapper for GstWebrtcBin element
Filename /lib/x86_64-linux-gnu/gstreamer-1.0/libgstwebrtcwrapper.so
Version 0.10.1
License Proprietary
Source module gst-webrtc-wrapper
Binary package gst-webrtc-wrapper
Origin URL http://www.ridgerun.com/
GObject
+----GInitiallyUnowned
+----GstObject
+----GstElement
+----GstBin
+----GstWebrtcWrapperBin
Implemented Interfaces:
GstChildProxy
Pad Templates:
SINK template: 'sink_%u'
Availability: On request
Capabilities:
application/x-rtp
SRC template: 'src_%u'
Availability: On request
Capabilities:
application/x-rtp
Element has no clocking capabilities.
Element has no URI handling capabilities.
Pads:
none
Element Properties:
async-handling : The bin will handle Asynchronous state changes
flags: readable, writable
Boolean. Default: false
bundle-policy : The current bundle policy
flags: readable, writable
Enum "BundlePolicy" Default: 2, "max compat"
(0): none - Bundle policy disabled.
(1): balanced - Balanced bundle policy
(2): max compat - Max compat bundle policy
(3): max bundle - Max bundle bundle policy
connection-status : Collective connection state of the element
flags: readable
Enum "ConnectionStatus" Default: 0, "not connected"
(0): not connected - Not connected.
(1): waiting for offer - Waiting for offer.
(2): negotiating - Negotiating
(3): connected - Connected
data-channel : Enable data channels
flags: writable
Boolean. Default: false Write only
ice-server : Type of predefined ice server to use.
According to the selected ice servers different properties will be available.
These properties can be accessed using the "ice-server::<property>" syntax.
The following list details the properties of the different ice servers
GstXirsysServer
name : The name of the object
flags: readable, writable
String. Default: "xirsysserver0"
parent : The parent of the object
flags: readable, writable
(null)
ident : Given Ident key by Xirsys (only set in NULL state)
flags: readable, writable
String. Default: "(null)"
secret : Given Secret key by Xirsys (only set in NULL state)
flags: readable, writable
String. Default: "(null)"
channel : Given Channel key by Xirsys (only set in NULL state)
flags: readable, writable
String. Default: "(null)"
path : Given Path key by Xirsys (only set in NULL state)
flags: readable, writable
String. Default: "(null)"
expire : Expiration time for TURN credentials in seconds (only set in NULL state)
flags: readable, writable
Integer. Range: 1 - 2147483647 Default: 0
flags: readable, writable
Enum "GstWebrtcIceServers" Default: 0, "GstXirsysServer"
(0): GstXirsysServer - Xirsys ice server
ice-transport-policy: The current ICE transport policy
flags: readable, writable
Enum "IceTransportPolicy" Default: 0, "all"
(0): all - All ICE candidates will be considered.
(1): relay - Only ICE candidates whose IP addresses are being relayed
latency : Amount of ms to buffer
flags: readable, writable
Unsigned Integer. Range: 0 - 4294967295 Default: 200
message-forward : Forwards all children messages
flags: readable, writable
Boolean. Default: false
metadata : Send a metadata string over a data channel
flags: writable
String. Default: "" Write only
metadata-binary : Send a binary metadata over a data channel
flags: writable
Boxed pointer of type "GBytes" Write only
name : The name of the object
flags: readable, writable
String. Default: "webrtcwrapperbin0"
parent : The parent of the object
flags: readable, writable
Object of type "GstObject"
signaler : Type of predefined signaler to use.
According to the selected signaler different properties will be available.
These properties can be accessed using the "signaler::<property>" syntax.
The following list details the properties of the different signalers
GstPubnubSignaler
name : The name of the object
flags: readable, writable
String. Default: "pubnubsignaler0"
parent : The parent of the object
flags: readable, writable
(null)
publish-key : Key to Publish Messages (only set in NULL state)
flags: readable, writable
String. Default: "pub-c-561a7378-fa06-4c50-a331-5c0056d0163c"
subscribe-key : Key to Subscribe Messages (only set in NULL state)
flags: readable, writable
String. Default: "sub-c-17b7db8a-3915-11e4-9868-02ee2ddab7fe"
user-channel : Username Channel (only set in NULL state)
flags: readable, writable
String. Default: "374"
peer-channel : Peer Channel (only set in NULL state)
flags: readable, writable
String. Default: "(null)"
uuid : Pubnub Universally unique identifier (only set in NULL state)
flags: readable, writable
String. Default: "(null)"
auth-key : Pubnub Authentication Key (only set in NULL state)
flags: readable, writable
String. Default: "ridgerun"
reconnect-policy : Reconnection Policies when there is a network or internet issue
flags: readable, writable
(null)
subscribe-timeout : The Pubnub timeout for subscribe transaction in miliseconds (only set in NULL state)
flags: readable, writable
Integer. Range: 1 - 2147483647 Default: 310000
heartbeat-interval : Interval in seconds to keep sending heart beat to PubNub subscribes
flags: readable, writable
(null)
origin-url : PubNub Signaler Origin URL (only set in NULL state)
flags: readable, writable
String. Default: "pubsub.pubnub.com"
GstOwrSignaler
name : The name of the object
flags: readable, writable
String. Default: "owrsignaler0"
parent : The parent of the object
flags: readable, writable
(null)
session-id : Session Identification
flags: readable, writable
String. Default: "ridgerun"
server-url : URL Server Connection
flags: readable, writable
String. Default: "http://localhost:8080"
ssl-strict : Whether to accept valid certificates only or not
flags: readable, writable
(null)
api-token : API Token ID
flags: readable, writable
String. Default: "RRGstWebRTC"
flags: readable, writable
Enum "GstWebrtcSignalers" Default: 0, "GstPubnubSignaler"
(0): GstPubnubSignaler - Pubnub signaler
(1): GstOwrSignaler - OWR signaler
start-call : Start the call from this endpoint
flags: writable
Boolean. Default: true Write only
Element Signals:
"on-bandwidth-estimation" : void user_function (GstElement* object,
guint arg0,
guint arg1,
guint arg2,
guint64 arg3,
gpointer user_data);
"on-signaler-notify" : void user_function (GstElement* object,
gchararray arg0,
gchararray arg1,
gchararray arg2,
gpointer user_data);
"on-message-data" : void user_function (GstElement* object,
GBytes* arg0,
gpointer user_data);
"on-message-string" : void user_function (GstElement* object,
gchararray arg0,
gpointer user_data);
Element Actions:
"send-metadata" : void user_function (GstElement* object,
gchararray arg0);
"send-metadata-binary" : void user_function (GstElement* object,
GBytes* arg0);
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.