Difference between revisions of "GstRTPNetCC Basic Usage"

From RidgeRun Developer Connection
Jump to: navigation, search
m
m
Line 1: Line 1:
 +
<noinclude>
 +
{{GstRTPNetCC/Head|previous=Design|next=Evaluating version|keywords=GstRTPNetCC element, gstrtpnetcc}}
 +
</noinclude>
 +
 
= Pipeline usage  =
 
= Pipeline usage  =
  
Line 36: Line 40:
 
                                                   gpointer user_data);
 
                                                   gpointer user_data);
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
<noinclude>
 +
{{GstRTPNetCC/Foot|| Design| Evaluating}}
 +
</noinclude>

Revision as of 22:18, 16 April 2019


Previous: Design Index Next: Evaluating version




Pipeline usage

The GstRTPNetcc element always has pads available, so it does not need to request pads on the fly. The element only depends on RTP video stream, so it might be added between GStreamer elements that handle RTP buffers.

  • H264 example
 gst-launch-1.0 .. ! rtph264pay ! rtpnetcc ! rtph264depay ! ..
  • VP8 example
 gst-launch-1.0 .. ! rtpvp8pay ! rtpnetcc ! rtpvp8depay ! ..

Additionally, it does not make any modifications over the video streaming, just takes the required information to allow estimating the bandwidth availability.

Getting the Bandwidth Estimation

The GstRTPNetcc element provide the final estimation through two Element Signals, which might be used according to the use case

  • on-target-bitrate: this signal provides a single integer estimation value in kilobits per second.
  "on-target-bitrate" :  void user_function (GstElement* object,
                                             guint64 arg0,
                                             gpointer user_data);
  • on-feedback-rtcp-buffer: it provides an RTCP buffer with estimation value (kbps) based on REMB standard.
  "on-feedback-rtcp-buffer" :  void user_function (GstElement* object,
                                                   GstBuffer* arg0,
                                                   gpointer user_data);


Index Next: Design