GstWebRTC - GstWebRTCBin: Difference between revisions
No edit summary |
No edit summary |
||
Line 84: | Line 84: | ||
If you require a custom signaler use signaler-obj property. 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: | If you require a custom signaler use signaler-obj property. 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: | ||
'''GstOwrSignaler:''' | |||
*'''session-id:''' Session Identification. Default: "ridgerun" | |||
*'''server-url:''' URL Server Connection. Default: "http://localhost:8080" | |||
*'''api-token:''' API Token ID. Default: "RRGstWebRTC" | |||
'''GstPubnubSignaler:''' | |||
*'''publish-key:''' Key to Publish Messages (only set in NULL state). Default: "pub-c-561a7378-fa06-4c50-a331-5c0056d0163c" | |||
*'''subscribe-key:''' Key to Subscribe Messages (only set in NULL state). Default: "pubsub.pubnub.com" | |||
*'''user-channel:''' Username Channel (only set in NULL state). Default: "gstwebrtc" | |||
*'''peer-channel:''' Only Incoming Messages from this peer number will be accepted if set, If it is not set, incoming messages from any peer will be accepted. If start call is true, the offer SDP will be sent to this peer number, so that it is required. (only set in NULL state). Default: "(null)" | |||
*'''origin-url:''' PubNub Signaler Origin URL (only set in NULL state). Default: "pubsub.pubnub.com" | |||
'''GstApprtcSignaler:''' | |||
*'''session-id: Session Identification. Default: "ridgerun" | |||
*'''server-url: URL Server Connection. Default: "http://localhost:8080" | |||
'''Enum "GstWebRtcSignalers"''' Default: 1, '''"GstPubnubSignaler"'''<br> | |||
'''(0): GstOwrSignaler''' - Open WebRTC signaler<br> | |||
'''(1): GstPubnubSignaler''' - Pubnub signaler<br> | |||
'''(2): GstApprtcSignaler''' - AppRTC signaler<br> | |||
===signaler-obj=== | |||
Custom signaler object to use (Must only be called on NULL state). Leave this NULL if you want to use a predefined signaler. | |||
===stun-server=== | |||
STUN Server IP Address: address:port. Default: "webrtc.ridgerun.com:3478" | |||
===turn-server=== | |||
TURN Server IP Address: <pre>'user:password@address:port(?transport=[udp|tcp|tls])'</pre>. Default: <pre>"ridgerun:Gh3tVhVZam3SSqb@webrtc.ridgerun.com:3478:transport=tcp"</pre> | |||
===certificate-pem=== | |||
PEM file name containing the certificate, if PEM file is not set or is not found, autogenerated certificate will be used. Default: null | |||
===start-call=== | |||
It's used to set which endpoint responsible of starting the call and sending the initial offer SDP to the peer. It only makes sense to have this property set to TRUE in one of the endpoints. | |||
Default value: false | |||
===data-port=== | |||
The SCTP port for data transfer. Range: 0 - 65535 Default: 5000 | |||
===data-channel-id=== | |||
The ID of the data channel stream (random number if 0 is set). Range: 0 - 65535 Default: 13118 | |||
===rtcp-mux=== | |||
Enable Multiplex RTP and RTCP in a single port (Endpoint will reconfigure if needed). Default: true Write only | |||
===ice-trickle=== | |||
Send single ICE candidates when they become available. Default: false | |||
===enable-data=== | |||
Include the negotiation of the WebRTC data channel for this endpoint (required to use the new_data and on_new_data callbacks without data-pads). Default: false Write only | |||
===enable-rtcp-timeout=== | |||
Monitor RTCP Feedback, if there are no messages within 30 seconds we will trigger a signal. Default: false | |||
===rtp-stats-interval=== | |||
Interval in milliseconds to get RTP Stats as Gstreamer Messages. Range: 50 - 4294967295 Default: 1000 | |||
===data-channel-status=== | |||
Connection status indicating if the data channel is currently connected. Default: false | |||
==Signals== | |||
==="on-new-data"=== | |||
void user_function (GstElement* object, guint arg0, gchararray arg1, gpointer user_data); | |||
==="on-rtcp-bitrate"=== | |||
void user_function (GstElement* object, guint arg0, guint arg1, guint arg2, guint64 arg3, gpointer user_data); | |||
==="on-rtcp-timeout"=== | |||
void user_function (GstElement* object, gpointer user_data); | |||
==Actions== | |||
==="new-data"=== | |||
gboolean user_function (GstElement* object, gchararray arg0, guint arg1); | |||
|keywords=Gstreamer WebRTC Basics,Plugin Overview,WebRTC Basics,Gstreamer WebRTC Plugin Overview,GstRrWebRTCBin element,GstRrWebRTCBin}} | |keywords=Gstreamer WebRTC Basics,Plugin Overview,WebRTC Basics,Gstreamer WebRTC Plugin Overview,GstRrWebRTCBin element,GstRrWebRTCBin}} |
Revision as of 19:24, 21 February 2019
← |
⌂ Home |
→ |
This page gives an overview of the GstRrWebRTCBin element.
Architecture
Ridgerun's GstRrWebRTCBin can be used as a sender-receiver endpoint, as shown in Figure 1. If a pipeline uses GstRrWebRTCBin element, it becomes a send-receive endpoint. GstRrWebRTCBin may receive and send audio, video or both simultaneously.
Configurations
The supported capabilities are determined at runtime based on the pads that were requested for the elements. Simply said, if a GstRrWebRTCBin was created with video and audio pads, it will be capable of sending and receiving both medias. Table 1 summarizes the complete set of possible configurations. At the time being, only one pad of each media type can be created in direction.
Send/Receive Audio Only | OpenWebRTC Example pipeline | |
Send/Receive Video Only | OpenWebRTC Example pipeline | |
Send/Receive Audio and Video | OpenWebRTC Example pipeline | |
Send Video - Receive Audio | OpenWebRTC Example pipeline | |
Send Audio - Receive Video | OpenWebRTC Example pipeline | |
Send Video and Audio - Receive Audio | OpenWebRTC Example pipeline | |
Send Video and Audio - Receive Video | OpenWebRTC Example pipeline | |
Send Audio - Receive Audio and Video | OpenWebRTC Example pipeline | |
Send Video - Receive Audio and Video | OpenWebRTC Example pipeline |
Properties
name
The name of the object. For this property "webrtcbin0" is the default value.
parent
The parent of the object.
async-handling
The bin will handle Asynchronous state changes. Default: false
message-forward
Forwards all children messages. Default: true
signaler
Type of predefined signaler to use. If you require a custom signaler use signaler-obj property. 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:
GstOwrSignaler:
- session-id: Session Identification. Default: "ridgerun"
- server-url: URL Server Connection. Default: "http://localhost:8080"
- api-token: API Token ID. Default: "RRGstWebRTC"
GstPubnubSignaler:
- publish-key: Key to Publish Messages (only set in NULL state). Default: "pub-c-561a7378-fa06-4c50-a331-5c0056d0163c"
- subscribe-key: Key to Subscribe Messages (only set in NULL state). Default: "pubsub.pubnub.com"
- user-channel: Username Channel (only set in NULL state). Default: "gstwebrtc"
- peer-channel: Only Incoming Messages from this peer number will be accepted if set, If it is not set, incoming messages from any peer will be accepted. If start call is true, the offer SDP will be sent to this peer number, so that it is required. (only set in NULL state). Default: "(null)"
- origin-url: PubNub Signaler Origin URL (only set in NULL state). Default: "pubsub.pubnub.com"
GstApprtcSignaler:
- session-id: Session Identification. Default: "ridgerun"
- server-url: URL Server Connection. Default: "http://localhost:8080"
Enum "GstWebRtcSignalers" Default: 1, "GstPubnubSignaler"
(0): GstOwrSignaler - Open WebRTC signaler
(1): GstPubnubSignaler - Pubnub signaler
(2): GstApprtcSignaler - AppRTC signaler
signaler-obj
Custom signaler object to use (Must only be called on NULL state). Leave this NULL if you want to use a predefined signaler.
stun-server
STUN Server IP Address: address:port. Default: "webrtc.ridgerun.com:3478"
turn-server
TURN Server IP Address:'user:password@address:port(?transport=[udp|tcp|tls])'. Default:
"ridgerun:Gh3tVhVZam3SSqb@webrtc.ridgerun.com:3478:transport=tcp"
certificate-pem
PEM file name containing the certificate, if PEM file is not set or is not found, autogenerated certificate will be used. Default: null
start-call
It's used to set which endpoint responsible of starting the call and sending the initial offer SDP to the peer. It only makes sense to have this property set to TRUE in one of the endpoints. Default value: false
data-port
The SCTP port for data transfer. Range: 0 - 65535 Default: 5000
data-channel-id
The ID of the data channel stream (random number if 0 is set). Range: 0 - 65535 Default: 13118
rtcp-mux
Enable Multiplex RTP and RTCP in a single port (Endpoint will reconfigure if needed). Default: true Write only
ice-trickle
Send single ICE candidates when they become available. Default: false
enable-data
Include the negotiation of the WebRTC data channel for this endpoint (required to use the new_data and on_new_data callbacks without data-pads). Default: false Write only
enable-rtcp-timeout
Monitor RTCP Feedback, if there are no messages within 30 seconds we will trigger a signal. Default: false
rtp-stats-interval
Interval in milliseconds to get RTP Stats as Gstreamer Messages. Range: 50 - 4294967295 Default: 1000
data-channel-status
Connection status indicating if the data channel is currently connected. Default: false
Signals
"on-new-data"
void user_function (GstElement* object, guint arg0, gchararray arg1, gpointer user_data);
"on-rtcp-bitrate"
void user_function (GstElement* object, guint arg0, guint arg1, guint arg2, guint64 arg3, gpointer user_data);
"on-rtcp-timeout"
void user_function (GstElement* object, gpointer user_data);
Actions
"new-data"
gboolean user_function (GstElement* object, gchararray arg0, guint arg1);
← |
⌂ Home |
→ |