problem with synchronization between multiple audio clients

Jacob S jacobhameiri at gmail.com
Tue Oct 14 13:04:41 PDT 2014


did you manage to get 'gst_rtsp_media_use_time_provider' to work ? I am
facing the same issue

2014-05-01 0:04 GMT+03:00 Luis de Bethencourt <luis at debethencourt.com>:

> Henrik,
>
> Have you run and played with Aurena?
> https://github.com/thaytan/aurena
>
> Luis
>
>
> On 30 April 2014 08:22, Henrik Kjær Nielsen <
> henrikkjaernielsen at hotmail.com> wrote:
>
>> I am also very interested in using GStreamer to stream synchronized audio
>> (and video) to multiple clients.
>>
>> Now that the new gst-rstp-server v. 1.2.3 has been out for some time, I
>> hope
>> that somebody is willing to share some information on how to prepare a
>> simple synchronization experiment as a proof of concept. I have not been
>> able to find any hints on how to do this except from what has been written
>> in this thread. This is what I did so far:
>>
>> I have created a simple rtsp server based on example code from the source
>> repository:
>>
>> #include <gst/gst.h>
>> #include <gst/rtsp-server/rtsp-server.h>
>>
>> static void
>> media_configure(GstRTSPMediaFactory * factory, GstRTSPMedia * media)
>> {
>>         gst_rtsp_media_use_time_provider(media, TRUE);
>> }
>>
>> int main(int argc, char *argv[])
>> {
>>         GMainLoop *loop;
>>         GstRTSPServer *server;
>>         GstRTSPMountPoints *mounts;
>>         GstRTSPMediaFactory *factory;
>>         GstRTSPAddressPool *pool;
>>
>>         gst_init(&argc, &argv);
>>
>>         loop = g_main_loop_new(NULL, FALSE);
>>
>>         /* create a server instance */
>>         server = gst_rtsp_server_new();
>>
>>         /* get the mount points for this server, every server has a
>> default object
>>         * that be used to map uri mount points to media factories */
>>         mounts = gst_rtsp_server_get_mount_points(server);
>>
>>         /* make a media factory for a test stream. The default media
>> factory can
>> use
>>         * gst-launch syntax to create pipelines.
>>         * any launch line works as long as it contains elements named
>> pay%d. Each
>>         * element with pay%d names will be a stream */
>>         factory = gst_rtsp_media_factory_new();
>>
>>         gchar *str;
>>         str = g_strdup_printf("( "
>>                 "filesrc location=%s ! qtdemux name=d "
>>                 "d. ! queue ! rtph264pay pt=96 name=pay0 "
>>                 "d. ! queue ! rtpmp4apay pt=97 name=pay1 " ")", argv[1]);
>>         gst_rtsp_media_factory_set_launch(factory, str);
>>         g_free(str);
>>
>>         gst_rtsp_media_factory_set_shared(factory, TRUE);
>>
>>         g_signal_connect(factory, "media-configure",
>> (GCallback)media_configure,
>> NULL);
>>
>>         /* attach the test factory to the /test url */
>>         gst_rtsp_mount_points_add_factory(mounts, "/test", factory);
>>
>>         /* don't need the ref to the mapper anymore */
>>         g_object_unref(mounts);
>>
>>         /* attach the server to the default maincontext */
>>         gst_rtsp_server_attach(server, NULL);
>>
>>         /* start serving */
>>         g_print("stream ready at rtsp://127.0.0.1:8554/test\n
>> <http://127.0.0.1:8554/test%5Cn>");
>>         g_main_loop_run(loop);
>>
>>         return 0;
>> }
>>
>> As suggested earlier in this thread, I call
>> gst_rtsp_media_use_time_provider(media, TRUE).
>>
>> On the clients (I am running multiple client instances on the same
>> computer
>> as the rtsp server instance) I simply run gst-launch-1.0 -v playbin
>> uri="rtsp://127.0.0.1:8554/test".
>>
>> Well, it does not work, i.e. the audio (and video) is not synchronized.
>> Calling gst_rtsp_media_use_time_provider(media, TRUE) has no effect. The
>> audio is slightly misaligned when running two client instances
>> simultaneously - it sounds a bit like bathroom acoustics.
>>
>> What do I have to do to make it synchronized? My platform is Windows.
>>
>>
>> Regards
>> Henrik
>>
>>
>>
>> --
>> View this message in context:
>> http://gstreamer-devel.966125.n4.nabble.com/problem-with-synchronization-between-multiple-audio-clients-tp4663231p4666673.html
>> Sent from the GStreamer-devel mailing list archive at Nabble.com.
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>
>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20141014/2efbffbe/attachment.html>


More information about the gstreamer-devel mailing list