ford-prefect / gst-sync-server

A library for synchronised network playback applications
GNU Lesser General Public License v2.1
71 stars 14 forks source link

Client connection error #2

Closed mdblabs closed 6 years ago

mdblabs commented 6 years ago

Hi,

first of all, thank you for this great project.

I'm trying to replicate your blog post setup (one server and one client running on different machines), and I'm getting into some problems:

-If I run the client locally (on the same machine as the one running the server), everything works just fine: playlist is reproduced, and a XWindow is open by the client, playing the videos.

-If I run the client on a different machine from the server, the client seems that it can reach the server (traces on the server shown that the client is connected), but it doesn't reproduce the playlist.

I put some traces on both sides and looks that the client stops somewhere on the GstLoop. It doesn't reach synchronization phase neither.

I'm using a switch in order to connect both equipments. Firewalls are all open.Both equipments are running on Ubuntu 16.04.

Can you, please, provide me any clue? Where the client can get stuck?

Thank you very much for your help. Best, Mariano.

mdblabs commented 6 years ago

Ok, it was a problem on my network configuration (not related to software). I close the issue.

Thank you!

ford-prefect commented 6 years ago

@mdblabs sorry about the delayed response -- glad it's working now, let me know if you need any further help.

mdblabs commented 6 years ago

Thank you very much @ford-prefect .Our setup is working smooth and sync so far.

But, actually, I have two more questions, cause I couldn't find any info about them:

-First one: Now I have clients and server perfectly sync, how can I apply transformations to client players, to select corresponding video ROI? I understand that this is possible using client's config file, passed to the server, but I couldn't find any spec about it. How is the format required? Can you give me more information, or an example?

-Second one: currently I'm playing local files as video source, on the playlist. Reading the source code, I understand I can use any other video source, while it is compatible with GS playbin. I would like to use an UDP video stream. Do you think this is possible? Can you provide any information about how playlist's video source path is processed?

If you can provide me this information, it'll be very appreciated. Thank you very much for your help.

ford-prefect commented 6 years ago

@mdblabs answering your questions:

  1. The video transform property on the client is what you're looking for (the config file is a serialised GVariant corresponding to that) -- https://github.com/ford-prefect/gst-sync-server/blob/master/gst-libs/gst/sync-server/sync-server.c#L505 is the property documentation, and you can see the GLib documentation about how GVariants are serialised. I don't have an example handy -- in the worst case, you can create one programmatically and set it yourself, else dump it as text using g_variant_printf().

  2. Any URI that GStreamer can accept can be used. For UDP, look at the URI examples in https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-udpsrc.html

mdblabs commented 6 years ago

GVariant Text Format was exactly what I was looking for! Thanks! Yes, I'm trying with UDP pipelines, although they're still not working...Probably I need to review them. Thank you very much!