[linux-audio-dev] best option for audiovisual synchrony

Fons Adriaensen fons.adriaensen at skynet.be
Fri Oct 20 17:03:08 UTC 2006


On Fri, Oct 20, 2006 at 03:51:09PM +0100, Dave Griffiths wrote:

> > The tricky bit is of course getting a flash that's totally synchronous
> > with the beep. Absolute synchrony is not achievable without dedicated
> > hardware, but we need to get an approximation that's within the few ms
> > range.
> 
> I do things a bit like this for audiovisual performances. It is impossible
> to get it precisely right as you say, but what I tend to do is run
> everything slightly ahead of realtime - so you timestamp events to happen
> in the future. Of course you can't do this if human input is involved, but
> if the timing is machine generated you can tune the audio and visual
> independantly so they are close enough for most purposes.

It *is* possible to get it exactly right (to within one audio sample),
assuming

-  you know the audio round-trip latency of your sound card (jdelay
   will  measure it to less than a microsec precision),
-  you can send triggers from the video to the audio processes with
   a delay less than say 1/4 of the frame time, (not difficult), 

Input the vertical video sync signal via the audio card and analyse
its timing in terms of audio samples (e.g. using a DLL). This will
enable you to predict where the next sync will be in the audio input.
Using the known round trip audio delay, you also know to which sample
that corresponds in the audio output. Now if the video process sends
its  triggers a few frames ahead then the audio process will be able
to work out exactly where to put the corresponding samples.
 
-- 
FA

Lascia la spina, cogli la rosa.




More information about the Linux-audio-dev mailing list