title: How to sync 2 streams from separate sources
body: <p>Can someone point me the right direction to where I can sync up a live video and audio stream?</p>
  
  <p>I know it sound simple but here is my issue: </p>
  
  <ul>
  <li>We have 2 computers streaming to a single computer across multiple networks (which can be up to hundreds of miles away).</li>
  <li>All three computers have their system clocks synchronized using NTP</li>
  <li>Video computer gathers video and streams UDP to the Display computer</li>
  <li>Audio computer gathers audio and also streams to the Display computer</li>
  </ul>
  
  <p>There is an application which accepts the audio stream.  This application does two things (plays the audio over the speakers and sends network delay information to my application).  I am not privileged to the method which they stream the audio.</p>
  
  <p>My application displays the video and two other tasks (which I haven't been able to figure out how to do yet).
  - I need to be able to determine the network delay on the video stream (ideally, it would be great to have a timestamp on the video stream from the Video computer which is related to that system clock so I can compare that timestamp to my own system clock).
  - I also need to delay the video display to allow it to be synced up with the audio.</p>
  
  <p>Everything I have found assumes that either the audio and video are being streamed from the same computer, or that the audio stream is being done by gstreamer so I could use some sync function.  I am not privileged to the actual audio stream.  I am only given the amount of time the audio was delayed getting there (network delay).</p>
  
  <p>So intermittently, I am given a number as the network delay for the audio (example: 250 ms).  I need to be able to determine my own network delay for the video (which I don't know how to do yet).  Then I need to compare to see if the audio delay is more than the video network delay.  Say the video is 100ms ... then I would need to delay the video display by 150ms (which I also don't know how to do).  </p>
  
  <p>ANY HELP is appreciated.  I am trying to pick up where someone else has left off in this design so it hasn't been easy for me to figure this out and move forward.  Also being done in Python ... which further limits the information I have been able to find. Thanks.  </p>
  
  <p>Scott</p>