problem with synchronization between multiple audio clients

Nathan zjustc at
Wed Oct 3 07:20:34 PDT 2012

Hi dv,

I am also little bit confused by the way of a/v syn of RTP/RTCP of
In our usecase, one tx will send a/v data to multiple clients using the
multicasting mode.
 I found when there is only one client, the lip sync is ok. However, when
there is more than one client, all the clients starting to lose the lip
Here is the way I use the gstreamer: 
Tx side:

	g_object_set(G_OBJECT(app->video_rtpsink),  "host",contents.new_mcaddr,
"port", VIDEO_RTPSINK_PORT, "sync",FALSE,"async",FALSE
	g_object_set(G_OBJECT(app->audio_rtpsink),  "host",contents.new_mcaddr,
"port", AUDIO_RTPSINK_PORT, "sync",FALSE,"async",FALSE
	g_object_set(G_OBJECT(app->video_rtcpsink), "host",contents.new_mcaddr,
"port", VIDEO_RTCPSINK_PORT,"sync",FALSE,"async",FALSE
	g_object_set(G_OBJECT(app->audio_rtcpsink), "host",contents.new_mcaddr,
"port", AUDIO_RTCPSINK_PORT,"sync",FALSE,"async",FALSE
	g_object_set(G_OBJECT(app->video_rtcpsrc), "multicast-group",
contents.new_mcaddr, "port", VIDEO_RTCPSRC_PORT, NULL);
	g_object_set(G_OBJECT(app->audio_rtcpsrc), "multicast-group",
contents.new_mcaddr, "port", AUDIO_RTCPSRC_PORT, NULL);

Rx side:
	g_object_set(G_OBJECT(vsource), "timeout", G_GUINT64_CONSTANT(5000000),
"port", params.vrtp_port, "caps", video_caps, NULL);
	g_object_set(G_OBJECT(vsource), "multicast-group", params.mcaddr,
"auto-multicast", TRUE, NULL);
	g_object_set(G_OBJECT(vrtcpsrc), "port", VIDEO_RTCP_SRC_PORT,
"multicast-group", params.mcaddr, "auto-multicast", TRUE, NULL);
	g_object_set(G_OBJECT(vrtcpsink), "port", VIDEO_RTCP_SINK_PORT, "host",
params.mcaddr, "auto-multicast", TRUE,
			"sync", FALSE, "async", FALSE, NULL);

	g_object_set(G_OBJECT(asource), "port", params.artp_port, "caps",
audio_caps, NULL);
	g_object_set(G_OBJECT(asource), "multicast-group", params.mcaddr,
"auto-multicast", TRUE, NULL);
	g_object_set(G_OBJECT(artcpsrc), "port", AUDIO_RTCP_SRC_PORT,
"multicast-group", params.mcaddr, "auto-multicast", TRUE, NULL);
	g_object_set(G_OBJECT(artcpsink), "port", AUDIO_RTCP_SINK_PORT, "host",
params.mcaddr, "auto-multicast", TRUE,
			"sync", FALSE, "async", FALSE, NULL);
	g_object_set(G_OBJECT(asink), "sync", FALSE, NULL);

Did I do anything wrong here? What is the right way of seting the gstreamer
for the 1 to M mode?



View this message in context:
Sent from the GStreamer-devel mailing list archive at

More information about the gstreamer-devel mailing list