How do I achieve minimum latency for interactive applications?
Many factors dictate end-to-end latency in audio and video transport.
These include characteristics of the audio and video devices, the
audio and video interface buffers, CPU scheduling, PC bus and network
bandwidth, and network path delay. While most of these factors are
beyond the control of typical users, general tips are to avoid video
codecs (i.e. DV or JPEG encoding) as these may add anywhere from 10-60
ms of latency and low-cost sound cards as these typically employ fairly
large buffers, thus increasing audio latency. Note that apart from DV,
which bundles together audio and video, Ultra-Videoconferencing makes
no effort to synchronize the two streams. Users wishing to
adjust synchronization manually may do so using the -l parameter.
We have measured end-to-end video latency at approximately 75ms for
analog video, 100ms for DV, and 120ms for JPEG. Audio latency can
be lower than 20ms when using professional sound cards, as these
allow for minimal buffering.
Can I achieve lower latency by building a low-latency kernel?
Our experience has been that the low-latency
kernel provides no discernable improvement with respect to reducing
audio and video latency and suffers from a decrease in stability. We
would be interested to hear of more recent user experience with respect
to this factor.
Promotional
We are running a public demo and wish to acknowledge
your contribution to the project. Where can we find a logo for the McGill
Ultra-Videoconferencing system?
Our logo can be downloaded in either gif
or eps format.