Question about WiFi multicast over WiFi: x264enc + gstrtpbin

cee1 fykcee1 at gmail.com
Fri Sep 7 07:25:05 PDT 2012


Hi all,

I'm seeking a gstreamer based solution of screen multicast over WiFi.
I tried the following pipe:
* sender: ximagesrc -> videorate -> ffmpegcs -> x264enc -> rtph264pay
-> (send_rtp_sink_0)gstrtpbin(send_rtp_src_0) -> udpsink_rtpout
  gstrtpbin(send_rtcp_src_0) -> udpsink_rtcpout
  udpsrc_rtcpin -> (recv_rtcp_sink_0)gstrtpbin

* receiver: udpsrc_rtpin -> (recv_rtp_sink_0)gstrtpbin -> rtph264depay
-> ffdec264 -> xvimagesink
  udpsrc_rtcpin -> (recv_rtcp_sink_0)gstrtpbin
  gstrtpbin(send_rtcp_src_0) -> udpsink_rtcpout

It works badly: it seems most I frames are dropped, and I've read an
average of 18 /256 fraction lost from the receiver report.

I've already known that multicast over WiFi is only allowed to utilize
small part of the total bandwidth, and there's no ACK at datalink
level, so:
* I tried to decrease mtu of  rtph264pay, and set max-rate of 8 of
videorate -- didn't help much.
* I tried to hardcode a 10ms delay after each udp sent in
gstmultiudpsink.c -- works but still not very well.

Is there any parameter can be tweaked to improve it?
It seems the rtcp function of gstrtpbin doesn't help much in my case.
It doesn't perform any QoS action, right?



-- 
Regards,

- cee1


More information about the gstreamer-devel mailing list