rtpsend

RTP session management (sender).

Environment variables

The underlying Runtime can be fine-tuned process-wide using the following env vars:

  • 'GST_RTPBIN2_RT_WORKER_THREADS': number of worker threads the Runtime will use (default: 1) 0 => number of cores available on the system.
  • 'GST_RTPBIN2_RT_MAX_BLOCKING_THREADS': limit for the number of threads in the blocking pool (default: 512). When they push buffers, downstream events or handle downstream queries, rtpbin2 elements spawn a thread from the blocking pool. This is to avoid blocking the worker thread which is shared with other elements running on the same runtime.
  • 'GST_RTPBIN2_RT_THREAD_KEEP_ALIVE': timeout for a thread in the blocking pool in ms (default: 10s).

Example pipeline

 gst-launch-1.0 \
   audiotestsrc is-live=true ! opusenc ! rtpopuspay2 ! queue max-size-buffers=0 max-size-bytes=0 max-size-time=100000000 \
   ! rtpsend name=send rtp-id=example-rtp-id \
       send.rtp_src_0 ! udpsink port=5004 host=127.0.0.1 \
       send.rtcp_src_0 ! udpsink port=5005 host=127.0.0.1 async=false \
   rtprecv name=recv rtp-id=example-rtp-id \
   udpsrc port=5007 caps='application/x-rtcp' ! recv.rtcp_sink_0

This will produce an Opus encoded audio stream and send it as RTP packets with RTCP over UDP ports 5004 & 5005. The pipeline expects RTCP to be sent back on UDP port 5007. See rtprecv for an example of how to process such packets.

Hierarchy

GObject
    ╰──GInitiallyUnowned
        ╰──GstObject
            ╰──GstElement
                ╰──rtpsend

Factory details

Authors: – Matthew Waters

Classification:Network/RTP/Filter

Rank – none

Plugin – rsrtp

Package – gst-plugin-rtp

Pad Templates

rtcp_src_%u

application/x-rtcp:

Presencerequest

Directionsrc

Object typeGstPad


rtp_sink_%u

application/x-rtp:

Presencerequest

Directionsink

Object typeGstPad


rtp_src_%u

application/x-rtp:

Presencesometimes

Directionsrc

Object typeGstPad


Action Signals

get-session

g_signal_emit_by_name (param_0, "get-session", arg0, &ret);
ret = param_0.emit ("get-session", arg0)
let ret = param_0.emit ("get-session", arg0);

Parameters:

param_0 (GstElement *)
No description available
arg0 (guint)
No description available
Returns (GstRtp2Session *)
No description available

Flags: Run Last / Action


Properties

min-rtcp-interval

“min-rtcp-interval” guint

Minimum time (in ms) between RTCP reports

Flags : Read / Write

Default value : 5000


reduced-size-rtcp

“reduced-size-rtcp” gboolean

Use reduced size RTCP. Only has an effect if rtp-profile=avpf

Flags : Read / Write

Default value : false


rtp-id

“rtp-id” gchararray

A connection ID shared with a rtprecv element for implementing both sending and receiving using the same RTP context

Flags : Read / Write

Default value : rtp-id


rtp-profile

“rtp-profile” Rtp-send-profile *

RTP Profile to use

Flags : Read / Write

Default value : avp (0)


stats

“stats” guint

Statistics about the session

Flags : Read


Named constants

Rtp-send-profile

Members

avp (0) – AVP profile as specified in RFC 3550
avpf (1) – AVPF profile as specified in RFC 4585

The results of the search are