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.