gstrtpbin sender multi sync receiver

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

gstrtpbin sender multi sync receiver

Thomas Roos
hello all,
I want to have time synchronised audio playback (multi room feature) on multiple receivers (differerent ip devices)
my sender pipeline
alsasrc ! pcmapay ! tee ! rtpbin ! udpsink1(rtp)
                                   !      ! udpsink1(rtcp)
                                   !     ! udpsrc1(rtcp)
                                   ! rtpbin ! udpsink2(rtp)
                   ! udpsink2(rtcp)
                 ! udpsrc2(rtcp)

receiver pipeline 1
udpsrc (rtp)       ! rtpbin ! pcmadepay ! alsasink
udpsrc (rtcp)     !
udpsink (rtcp)   !

receiver pipeline 2
udpsrc (rtp)      ! rtpbin ! pcmadepay ! alsasink
udpsrc (rtcp)    !
udpsink (rtcp)  !

so I have tried (in order to synchronise the streams) to
set the ts-offset in the udpsink1(rtp) to a fixed maximum network delay (i use WANem for testing)
and enabled
"ntp-sync" and "use-pipeline-clock" for the sender and receiver rtpbin
Pipeline is working but network delay still exsists.
Shouldn't the ntp-sync and use-pipeline clock parameter synchronize the sender and receiver clocks?
Together with the ts-offset it is played out delayed but synchronised? The ts-offset sets the playout time?
Can anybody help me? Ideas? Examples?
I can only find examples for lipsync audio/video streams, and that only for one receiver.
According to that post:
http://sourceforge.net/mailarchive/message.php?msg_id=20100827160618.15BA0EE8CE%40bugzilla-web.gnome.org
it should work in the actual git version
am I wrong?
cheers Thomas
P.S: i use the git version from 11.11.2010 of gstreamer gst-plugins-base gst-plugins-good
 

------------------------------------------------------------------------------
Centralized Desktop Delivery: Dell and VMware Reference Architecture
Simplifying enterprise desktop deployment and management using
Dell EqualLogic storage and VMware View: A highly scalable, end-to-end
client virtualization framework. Read more!
http://p.sf.net/sfu/dell-eql-dev2dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gstrtpbin sender multi sync receiver

Marco Ballesio
Hi,

another late reply ;) . See my comments below.

On Fri, Nov 12, 2010 at 10:18 AM, Thomas Roos <[hidden email]> wrote:
hello all,
I want to have time synchronised audio playback (multi room feature) on multiple receivers (differerent ip devices)
my sender pipeline
alsasrc ! pcmapay ! tee ! rtpbin ! udpsink1(rtp)
                                   !      ! udpsink1(rtcp)
                                   !     ! udpsrc1(rtcp)
                                   ! rtpbin ! udpsink2(rtp)
                   ! udpsink2(rtcp)
                 ! udpsrc2(rtcp)

Likely you're not using this exact command, btw I guess both the rtpbin elements are connected to the tee.
 

receiver pipeline 1
udpsrc (rtp)       ! rtpbin ! pcmadepay ! alsasink
udpsrc (rtcp)     !
udpsink (rtcp)   !

receiver pipeline 2
udpsrc (rtp)      ! rtpbin ! pcmadepay ! alsasink
udpsrc (rtcp)    !
udpsink (rtcp)  !

so I have tried (in order to synchronise the streams) to
set the ts-offset in the udpsink1(rtp) to a fixed maximum network delay (i use WANem for testing)

as the timestamps are representing data generation time, I don't get how modifying the ts-offset in the source may affect synchronisation on multiple receivers.
 
and enabled
"ntp-sync" and "use-pipeline-clock" for the sender and receiver rtpbin
Pipeline is working but network delay still exsists.
Shouldn't the ntp-sync and use-pipeline clock parameter synchronize the sender and receiver clocks?

A few questions.

on a tcpdump, do you see the RTCP sender reports travelling over the network? Setting GST_DEBUG=gstrtpbin:5, do you see messages like "NTP time..." or "NTP diff..." on the clients? If you do, are the drift compensations correct?

As a further point, you need to be sure that you're using the same values of "n" for the pads you're connecting the udpsinks to in the sending pipeline (e.g. send_rtcp_src_0 and send_rtcp_src_0).

I hope this will help.

Regards
 
Together with the ts-offset it is played out delayed but synchronised? The ts-offset sets the playout time?
Can anybody help me? Ideas? Examples?
I can only find examples for lipsync audio/video streams, and that only for one receiver.
According to that post:
http://sourceforge.net/mailarchive/message.php?msg_id=20100827160618.15BA0EE8CE%40bugzilla-web.gnome.org
it should work in the actual git version
am I wrong?
cheers Thomas
P.S: i use the git version from 11.11.2010 of gstreamer gst-plugins-base gst-plugins-good
 

------------------------------------------------------------------------------
Centralized Desktop Delivery: Dell and VMware Reference Architecture
Simplifying enterprise desktop deployment and management using
Dell EqualLogic storage and VMware View: A highly scalable, end-to-end
client virtualization framework. Read more!
http://p.sf.net/sfu/dell-eql-dev2dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel



------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today
http://p.sf.net/sfu/msIE9-sfdev2dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel