Hi
New to this list and a relative newbie to GStreamer development. I am working on an implementation of a SCReAM GStreamer plugin. SCReAM (https://tools.ietf.org/html/rfc8298) is a congestion control algorithm for realtime low latency media such as video. I have reach so far that I am able to insert the SCReAM plugin in both the TX and the RX side and I also manage to piggyback RTCP feedback packets (https://tools.ietf.org/wg/avtcore/draft-ietf-avtcore-cc-feedback-message/) to the normal RTCP RR+SDES packets. I need however to enable reduced-size RTCP (RFC5506) to keep the RTCP overhead reasonably small, given that the feedback rate in SCReAM is quite high at high bitrates. Is there any documentation or examples available that can shed a light on this ? Regards Ingemar -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
This post was updated on .
Hi, I'm new as well but I think you can look into the documentation about the
GstElement rtspsrc. It has an property called "short header". If I understood you correctly you have manipulated the RTCP packets? I'm trying to read the sender report of received RTCP packets, more precisely the NTP timestamp in the RTCP sender report. Do you know how to accomplish this? Regards Joakim -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list gstreamer-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi
and thanks. I had a look at this but it seems to me that it is not applicable to this as it mentions RTSP headers for broken encoders. As regards to your question, I believe that you need to read rtcpPacket packet by rtcpPacket and when you detect that it is of type SR then you should be able to read the NTP timestamp. I don't have any code snippet for this though. /Ingemar -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Ingemar Johansson
On Mon, 2019-02-04 at 06:14 -0600, Ingemar Johansson wrote:
> New to this list and a relative newbie to GStreamer development. I am > working on an implementation of a SCReAM GStreamer plugin. SCReAM > (https://tools.ietf.org/html/rfc8298) is a congestion control algorithm for > realtime low latency media such as video. > > I have reach so far that I am able to insert the SCReAM plugin in both the > TX and the RX side and I also manage to piggyback RTCP feedback packets > (https://tools.ietf.org/wg/avtcore/draft-ietf-avtcore-cc-feedback-message/) > to the normal RTCP RR+SDES packets. There is a SCReAM implementation available from here: https://github.com/EricssonResearch/openwebrtc-gst-plugins/tree/master/gst/scream But you're probably aware of that already :) > I need however to enable reduced-size RTCP (RFC5506) to keep the RTCP > overhead reasonably small, given that the feedback rate in SCReAM is quite > high at high bitrates. > > Is there any documentation or examples available that can shed a > light on this ? You have to set the RTP profile on the rtpbin (before creating any sessions) to AVPF or SAVPF. The "rtp-profile" property. That will then enable the possibility to send reduced size, early RTCP packets for feedback that is to be sent out before the next regular, big RTCP packet is to be sent. There are signals for requesting early RTCP (or generally RTCP) and you can then attach your additional feedback to those packets. Note that rtpsession ensures that no more packets than allowed are sent and also that there's regular RTCP as often as required by the RTP RFCs. -- Sebastian Dröge, Centricular Ltd · https://www.centricular.com _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (981 bytes) Download Attachment |
Hi Sebastian,
Are you certain that setting the profile enables reduced size rtcp ? If I read the code correctly and it doesn't, you can enable it with the following: GObject *isess = NULL; g_signal_emit_by_name (rtpbin, "get-internal-session", 1, &isess); g_object_set (isess, "reduced-size-rtcp, TRUE, NULL); g_object_unref (isess); Olivier On Mon, 2019-02-04 at 17:56 +0100, Sebastian Dröge wrote: > On Mon, 2019-02-04 at 06:14 -0600, Ingemar Johansson wrote: > > New to this list and a relative newbie to GStreamer development. I am > > working on an implementation of a SCReAM GStreamer plugin. SCReAM > > (https://tools.ietf.org/html/rfc8298) is a congestion control algorithm for > > realtime low latency media such as video. > > > > I have reach so far that I am able to insert the SCReAM plugin in both the > > TX and the RX side and I also manage to piggyback RTCP feedback packets > > (https://tools.ietf.org/wg/avtcore/draft-ietf-avtcore-cc-feedback-message/) > > to the normal RTCP RR+SDES packets. > > There is a SCReAM implementation available from here: > https://github.com/EricssonResearch/openwebrtc-gst-plugins/tree/master/gst/scream > But you're probably aware of that already :) > > > I need however to enable reduced-size RTCP (RFC5506) to keep the RTCP > > overhead reasonably small, given that the feedback rate in SCReAM is quite > > high at high bitrates. > > > > Is there any documentation or examples available that can shed a > > light on this ? > > You have to set the RTP profile on the rtpbin (before creating any > sessions) to AVPF or SAVPF. The "rtp-profile" property. That will then > enable the possibility to send reduced size, early RTCP packets for > feedback that is to be sent out before the next regular, big RTCP > packet is to be sent. > > There are signals for requesting early RTCP (or generally RTCP) and you > can then attach your additional feedback to those packets. > > > Note that rtpsession ensures that no more packets than allowed are sent > and also that there's regular RTCP as often as required by the RTP > RFCs. > > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel [hidden email] _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (201 bytes) Download Attachment |
On Wed, 2019-02-06 at 14:07 -0500, Olivier Crête wrote:
> Hi Sebastian, > > Are you certain that setting the profile enables reduced size rtcp ? Indeed, you're right. I confused configuration for early RTCP and reduced size RTCP and what you said is correct, sorry :) For SCReAM you want both though. -- Sebastian Dröge, Centricular Ltd · https://www.centricular.com _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (981 bytes) Download Attachment |
Thanks all for the help.. I will have a look and see if I manage to get this
happening. Had a look into rtpsession.c and it seems like this should definitely be working. I currently have these settings to get a sufficiently if RTCP feedback rate (perhaps a little overkill:-) g_object_set((filter->rtpSession), "rtcp-min-interval", 5000000000, "rtcp-fraction", 0.5, "bandwidth", 10000000.0, "rtp-profile", GST_RTP_PROFILE_AVPF, NULL); I assume that I should add "rtcp-reduced-size", true, But what about the other parameters ? /Ingemar -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |