The LBNL audio tool, vat, is a real-time, multi-party, multimedia application for audio conferencing over the Internet. Vat is based on the Draft Internet Standard Real-time Transport Protocol (RTP) developed by the IETF Audio/Video Transport working group. RTP is an application-level protocol implemented entirely within vat -- you need no special system enhancements to run RTP. Although vat can be run point-to-point using standard unicast IP addresses, it is primarily intended as a multiparty conferencing application. To make use of the conferencing capabilities, your system must support IP Multicast, and ideally, your network should be connected to the IP Multicast Backbone (MBone).
Vat provides only the audio portion of a multimedia conference; video, whiteboard, and session control tools are implemented as separate applications. Our video tool is called vic, our whiteboard tool wb, and our session directory tool sd. Other related applications include ISI's Multimedia Conference Control, mmcc, the Xerox PARC Network Video tool, nv and the INRIA Video-conferencing System, ivs.
Note that the audio buffer size used by the stock SunOS 4.1.x kernel is too large for good interactive response. This can be fixed with a kernel patch -- instructions are in the MBone FAQ.
Vat does not work in unicast mode under Solaris 2.3 due to a kernel bug. Sun has provided a workaround.
Note that the HPUX Audio server (AServer) was not designed with interactive audio in mind -- in our attempts to use it, we typically saw delays of several seconds between the audio hardware and the net. To work around problems with AServer, vat uses the kernel /dev/audio device directly. Unfortunately, this interface is not documented and HP has changed it several times. Our only HP is an ancient 735 running HPUX-9.0 so we rely on others in the user community to send us the patches or information needed to keep vat running on HP hardware.
The i386 binary also has been reported to run under NetBSD (using a modified version of the LBL sound driver) and FreeBSD (using the Linux sound driver with additional support for /dev/audio). Amancio Hasty (hasty@netcom.com) reports that under FreeBSD vat can operate in full-duplex mode with the Gravis Ultrasound (and that the quality is very satisfactory).
The current vat linux audio driver is quite primitive. It treats the sound card as half-duplex (e.g., a soundblaster) even if it is capable of full-duplex operation (e.g., a GUS). It also does not use the `mixer' controls that set the record and play volume and/or select input and output ports. We hope someone in the community will add the missing pieces to vat's linux-audio.cc.
Under linux 1.2.x, multicast through the loopback interface does not work. This is a serious deficiency since local (loopback) multicast sockets are used to implement "conference busses" that vat/vic/etc. use to do things like pass the audio hardware between different vats, automatically switch video windows on audio activity, etc. We understand that this problem has been fixed in more recent versions of linux (1.3.?). If your kernel doesn't have the fix, the first symptom is that it will be very difficult to switch the audio between multiple instances of vat. (Normally you just click the right mouse button it the vat window you want active and the audio will be assigned to that window. This won't work at all if the linux loopback multicast is broken.) If your kernel has the bug, it will be difficult to handle multiple vats and you will probably want to run just one at a time.
-x-includes=path | specify a pathname for the X include tree |
-x-libraries=path | specify a pathname for the X libraries |
-with-tcl=path | specify a pathname for tcl |
-with-tk=path | specify a pathname for tk |
-with-gsm=path | specify a pathname for GSM |
-with-af=path | specify a pathname for AudioFile |
If you do a port to a new system or hardware and would like to feed your changes back into the distribution, we would be delighted to have them. If you have a vat binary you would like added the the distribution, or if you would like us to add a link to this page, please let us know.
We encourage experimenters to use RTP mode whenever possible.
Funding for this work was provided by the Office of Energy Research, Mathematical, Information, and Computational Sciences Division, of the U.S. Department of Energy under Contract No. DE-AC03-76SF00098. Equipment grants and support were provided by Sun Microsystems, Digital Equipment Corporation, and Silicon Graphics Inc.
Van Jacobson (van@ee.lbl.gov)
Steven McCanne (mccanne@ee.lbl.gov)