RTP re-transmission using rtprtxqueue and rtpbin

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

RTP re-transmission using rtprtxqueue and rtpbin

Li Ma
Hi all, I try to implement retransmission of RTP.

I got RTCP NACK packets to notify packet loss from the receiver to
sender, but I cannot see any re-transmission RTP packets sent and the
rtprtxqueue of sender side reports 0 retransmission requests.

Actually the video streaming is quite well except that the
re-transmission doesn't work at the sender side when I drop some
packets using identity element.

The pipelines are as follows:

Sender side:
appsrc->encoder->rtp payloader->rtprtxqueue->rtpbin.send_rtp_sink_0
rtpbin.send_rtp_src_0->udpsink
udpsrc->rtpbin.recv_rtcp_sink_0
rtpbin.send_rtcp_src_0->udpsink

Receiver side: (rtpbin enables re-transmission)
udpsrc->identity->rtpbin.recv_rtp_sink_0
rtpbin.recv_rtp_src_0->rtp depayloader->decoder->appsink
udpsrc->rtpbin.recv_rtcp_sink_0
rtpbin.send_rtcp_src_0->udpsink

I'd appreciate it if anyone can provide some hints on how to implement it.
--

Li Ma (Nick)
Email: [hidden email]
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: RTP re-transmission using rtprtxqueue and rtpbin

Arjen Veenhuizen
See this bug for some links that might help you forward. Especially server-rtpaux.c and client-rtpaux.c found in the GStreamer repo show a possible implementation of getting rtx to work.
Reply | Threaded
Open this post in threaded view
|

Re: RTP re-transmission using rtprtxqueue and rtpbin

Li Ma
Thanks a lot for replying. I've read all these references before I coded.

In my pipeline, I just want to demonstrate the retransmission is done
by gstreamer. I use the rtprtxqueue element at the sender side. As the
document states [1], rtprtxqueue element is able to work with rtpbin,
and it doesn't need to implement 'request-aux-sender' signal which is
the RFC4588 implementation in the source code you provided.

There is almost no settings for rtprtxqueue. I followed the document,
and I have no idea how to make it work.

[1] https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-rtprtxqueue.html

On Sun, Aug 27, 2017 at 5:40 PM, Arjen Veenhuizen
<[hidden email]> wrote:

> See  this <https://bugzilla.gnome.org/show_bug.cgi?id=758719>   bug for some
> links that might help you forward. Especially server-rtpaux.c and
> client-rtpaux.c found in the GStreamer repo show a possible implementation
> of getting rtx to work.
>
>
>
> --
> View this message in context: http://gstreamer-devel.966125.n4.nabble.com/RTP-re-transmission-using-rtprtxqueue-and-rtpbin-tp4684341p4684342.html
> Sent from the GStreamer-devel mailing list archive at Nabble.com.
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



--

Li Ma (Nick)
Email: [hidden email]
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: RTP re-transmission using rtprtxqueue and rtpbin

Li Ma
I also tested rtprtxsend and rtprtxreceive using the logic inside
sample code (server-rtpaux.c and client-rtpaux.c). But it seems still
not working. I can receive NACK for packet loss, but the sender side
doesn't respond anything. I'm using the gstreamer 1.12.2 version.

On Sun, Aug 27, 2017 at 10:55 PM, Li Ma <[hidden email]> wrote:

> Thanks a lot for replying. I've read all these references before I coded.
>
> In my pipeline, I just want to demonstrate the retransmission is done
> by gstreamer. I use the rtprtxqueue element at the sender side. As the
> document states [1], rtprtxqueue element is able to work with rtpbin,
> and it doesn't need to implement 'request-aux-sender' signal which is
> the RFC4588 implementation in the source code you provided.
>
> There is almost no settings for rtprtxqueue. I followed the document,
> and I have no idea how to make it work.
>
> [1] https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-rtprtxqueue.html
>
> On Sun, Aug 27, 2017 at 5:40 PM, Arjen Veenhuizen
> <[hidden email]> wrote:
>> See  this <https://bugzilla.gnome.org/show_bug.cgi?id=758719>   bug for some
>> links that might help you forward. Especially server-rtpaux.c and
>> client-rtpaux.c found in the GStreamer repo show a possible implementation
>> of getting rtx to work.
>>
>>
>>
>> --
>> View this message in context: http://gstreamer-devel.966125.n4.nabble.com/RTP-re-transmission-using-rtprtxqueue-and-rtpbin-tp4684341p4684342.html
>> Sent from the GStreamer-devel mailing list archive at Nabble.com.
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
>
> --
>
> Li Ma (Nick)
> Email: [hidden email]



--

Li Ma (Nick)
Email: [hidden email]
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel