Home
Softono

Gst Sync Server

Open source C
80
Stars
14
Forks
5
Issues
8
Watchers
3 years
Last Commit

 About Gst Sync Server

A library for synchronised network playback applications

Platforms

Web Self-hosted

Languages

C

Links

Need Help Installing Gst Sync Server?

We provide expert installation service for this software. Our team will install, configure, and secure Gst Sync Server on your server. plans start at just $30.

Gst Sync Server

View on GitHub

GStreamer Synchronised Network Playback

This is a library to help application developers easily write applications where multiple devices connected to a network need to play back media in sync.

Use cases include multi-room audio playback, video walls, and any other situation where it is required that possibly heteregenous devices on a network need to playback the same audio/video stream.

There is a talk about this library at:

You can read more at:

Examples

There is an example server and client in the examples directory. Once you've built the project, just run examples/test-server --help and examples/text-client --help to see how you can run these.

The example server expects a playlist file. The playlist file is a simple text line with each line containing a URI, a space, and the length of the media at that URI in nanoseconds (or -1 if it is unknown). An example might look like:

file:///some/local/foo.mp4 123456789
http://myhttpserver/bar.mkv -1
udp://192.168.0.0.1:5004 -1

The config file that can be passed to a server is a serialised GVariant. These are programmatically created using g_variant_print.

This example configuration was used to scale a video and play it across two displays, after cropping to adjust for bezels.

{
  "client1": <{
    "crop": <{
      "right": 973
    }>,
    "offset": <{
      "left": 449
    }>,
    "scale": <{
      "width": 1280,
      "height": 720
    }>
  }>,
  "client2": <{
    "crop": <{
      "left": 973
    }>,
    "offset": <{
      "right": 449
    }>,
    "scale": <{
      "width": 1280,
      "height": 720
    }>
  }>
}