Multiscreen/player synchronization

Hi,

I need input and suggestion on how to design the project, digital signage.
Here's the main feature requirements of the project.
For example, there will be 5 computers in a room.
Each computer has each screen.
I need those computers run the same multimedia file and to be able to synchronize them, meaning, if computer 1 is running playlistA, the rest of the computers should be playing the same thing at the same time.

I thought of a solution where each computer will have the exact same playlist as each other, then we should have some kind of the mechanism of checking that each computer is running properly.

Another solution is to make 1 of them as a central computer and this one will "broadcast" to the others. This way we know that all screen will display the same thing. But I am afraid this will kill the bandwidth if we have a large file size.

Any other suggestions
Thanks in advance.


Answer this question

Multiscreen/player synchronization

  • adcworks

    I think the broadcast option is better

    Remeber that broadcust or multicast for that matter only streams the file once over the wire and since the computers are all on a LAN (1G isn't too expansive these days even though 100BaseT should suffice for a single file)

    You can take a look both at Windows Media Server or the various solutions on the Helix site (https://www.helixcommunity.org/)

    The other solution is more complex both in terms of managment of the videos, and in getting them to be synchronized

    Arnon



  • Petru66

    Thank you for your reply.

    How about the bandwidth Let's say I want to broadcast it for 24 hours. Will that be an issue


  • twaltz

    How would you go for the remoting service Each player will talk to each other as if P2P
  • *Rick*

    I think the first alternative that you thought of - single playlist and synchronization, is a good way to do it. As far as synchronization mechanism is concerned, you could use .net remoting in singleton mode.

    To be a bit elaborate, you would typically have a server that will act as remoting host. All the other players running on different computers will connect to this server and instantiate the remote object. The players will have to keep polling the server object to retrive the latest playlist information. You can use a serializable class to send the playlist info.


    In the above solution, the only bad thing is polling. You can avoid polling if you use two-way remoting in which case, all the peers act both as server as well as client. Then you can use simple event raising and event handling mechanism to listen or update any change in the playlist info.

    I had worked on a similar problem earlier and had followed the two way remoting approach. Of course the problem domain was a bit different.

    Tell me if it solves your problem. Otherwise I'll search for my code and post it here.

  • Lotek Deviant

    I am not asking you to broadcast the media content. Only broadcast the playlist content if it changes and any events related to the playlist e.g. Change, Next, Previous, etc. This will happen only if a selection in the playlist has changed
  • Andareed

    I think the first alternative that you thought of - single playlist and synchronization, is a good way to do it. As far as synchronization mechanism is concerned, you could use .net remoting in singleton mode.

    To be a bit elaborate, you would typically have a server that will act as remoting host. All the other players running on different computers will connect to this server and instantiate the remote object. The players will have to keep polling the server object to retrive the latest playlist information. You can use a serializable class to send the playlist info.


    In the above solution, the only bad thing is polling. You can avoid polling if you use two-way remoting in which case, all the peers act both as server as well as client. Then you can use simple event raising and event handling mechanism to listen or update any change in the playlist info.

    I had worked on a similar problem earlier and had followed the two way remoting approach. Of course the problem domain was a bit different.

    Tell me if it solves your problem. Otherwise I'll search for my code and post it here.

  • JustPlayingAround

    Mabe remoting services is a better solution. Just think off chat programs


  • Saravanan168393

    Windows media server's unicast broadcasting is a simple and off the shelf available solution for this kind of situation. You can stream any media with this. You are not limited to your local area network and can go with wide area too if you need without any modification on any component. Configuration and setting this can be done in a matter of minutes... why would you want to go with coding and programming and synchronization when you have a solution ready to implement in few minutes...
  • Gabriel Lozano-Moran

    I think the first alternative that you thought of - single playlist and synchronization, is a good way to do it. As far as synchronization mechanism is concerned, you could use .net remoting in singleton mode.

    To be a bit elaborate, you would typically have a server that will act as remoting host. All the other players running on different computers will connect to this server and instantiate the remote object. The players will have to keep polling the server object to retrive the latest playlist information. You can use a serializable class to send the playlist info.


    In the above solution, the only bad thing is polling. You can avoid polling if you use two-way remoting in which case, all the peers act both as server as well as client. Then you can use simple event raising and event handling mechanism to listen or update any change in the playlist info.

    I had worked on a similar problem earlier and had followed the two way remoting approach. Of course the problem domain was a bit different.

    Tell me if it solves your problem. Otherwise I'll search for my code and post it here.


  • Multiscreen/player synchronization