Syncing two live streams

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Syncing two live streams

Can someone point me the right direction to where I can sync up a live video
and audio stream?

I know it sound simple but here is my issue:

- We have 2 computers streaming to a single computer across multiple
networks (which can be up to hundreds of miles away).
- All three computers have their system clocks synchronized using NTP
- Video computer gathers video and streams to the Display computer
- Audio computer gathers audio and also streams to the Display computer

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.
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.

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).

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).  

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.  


Sent from:
gstreamer-devel mailing list
[hidden email]