   playback videos synchronously on multiple PCs
  Dear alli have two movies of identical size and of the same location but with different viewing angle. These two movies are placed on two different computers. Now i want to run these two movies simultenouly from 3rd pc (called it server). what is the best way to play these movies so they will shows a single continous and synchronized (frame by frame) outputthanks in advance[Edited by - coolshamim on May 23, 2010 12:21:48 AM]
  VideoLAN comes to mind.   ;  Do you want to purchase a solution, or build your own?;  i want to build my own solution. So far i have tried the following solution. i have created a WPF base client application in which "mediaElement" control is used to playback the video on each client application. the server application is used to send commands (load,play , pause , resume etc) to all clients using asynchronous remoting. right now i have tried this solution with two client PCs, but the problem is that i am facing maximum delay of about .5 seconds while videos playback simultaneously on two clients.please friends let me know how to remove the delays so that movies will come perfectly synchronous on all the clients   ;  You can get to about +/- 20 milliseconds by doing some custom software and using a UDP protocol of some sort to trigger frame view.Specifically, you don't want to use the "play to the screen" API, but instead want to use the "decode to a frame of video and some audio" API that puts data in a buffer. Pre-decode some number of frames, so that you know there won't be any jitter. Then display frame X from the movie when a packet arrives from the server saying "it's time to display frame X."Of course, there will still be differences between the sound and video output rates of the three machines (master and two slaves). Hence your slaves need to be prepared to duplicate, or drop, buffers/frames once in a while to stay synced to the master. This will cause small, audible/visible glitches.A solution with "perfect" sync requires more specialized hardware, that supports genlock between separate graphics cards, and ideally sound output that is synchronized to the video genlock as well. Something like blackburst house sync is typically used for this. At that point, you can use video playback software that understands time code, and just tell it to synchronize each movie to the timecode of the incoming master sync.;  Is it possible to sync the clocks in advance? Then you can just have the videos starting at exactly the same time on each machine, providing each system has pre-buffered the data.   ;Quote: Then you can just have the videos starting at exactly the same time on each machineIn a distributed system, there is such thing as "exactly the same time," unless you work hard to make it so. Generally, this includes specialized hardware.Over time, the playback will also drift, because of slight differences in crystal clocks for graphics cards and sound cards.;  Let me reword that: you can have the systems synchronise to the same time source (which can easily be done to a few milliseconds of resolution on a LAN) and then playback the videos at the same reported time on each, which should be sufficient given that a typical frame of video lasts 30 to 40 milliseconds. I would be very surprised if that wasn't good enough for most purposes.Clock drift in my experience is usually on the order of several seconds a day - not enough to be a problem for a video unless it's playing uninterrupted for hours. Even then, presumably your synchronisation system would resynchronise periodically and I expect that would be accounted for by the playback mechanism.   ;Quote:your synchronisation system would resynchronise periodicallyWhich causes audible glitches, just like I said above :-)How much you have to pay, and how hard you have to work, is entirely a function of how bad glitches in audio and video you can tolerate.   ;  The original poster didn't specify a need for synchronised audio. ;)I'd be intrigued to know if any codecs and/or players perform time-stretching of audio that would facilitate this without glitches, eg. by synchronising to frames rather than just playing audio and video independently. It's certainly possible to stretch or compress small amounts of audio in real time without noticeable artifacts (I do it all the time when working with music). Just a case of whether the system supports it.   