vic

Name:
vic
Version:
2.8 (2.6 uses older version of H.261 payload format)
Description:
network video conferencing tool
Organization:
LBNL, University College London
Contact:
Steve McCanne
Email:
vic@ee.lbl.gov
WWW:
http://www-nrg.ee.lbl.gov/vic/ or at UCL (recent versions)
Platforms:
DEC, FreeBSD (also fixes memory leaks in vic-2.8 and supports Tcl/Tk 8.0; patches applicable to all), HP, Linux, SGI, SunOS, Solaris (with Osprey (MMAC) 1500 video card, Osprey 150), Windows
Frame grabber:
Sun VideoPix, SunVideo (Sun Solaris), Osprey, PC codecs, video4linux API

Note on Osprey 150: If you get the message no video capture device found, do the following:

  1. If you have a symbolic link /dev/rtvc0 pointing to /dev/o1c[0-9]* (literally, not as a regular expression, with brackets and star), remove the link and install
    ln -s /dev/o1c0 /dev/rtvc0
    
  2. Make sure that /opt/SUNWopi/config/opi.devices exists and contains
    sw    opisw
    o1c    opio1c
    
  3. Make sure that /opt/SUNWopi/lib/ contains the libraries libopio1c.so and libopisw.so.

A pre-compiled version of vic can be found at ftp://ftp.cs.columbia.edu/pub/schulzrinne/.

Video encodings:
nv, JPEG, H.261, CELB, SCR, MPEG (via an extension), JPEG
Audio encodings:
-
Availability:
source, binary
ftp:
ftp.ee.lbl.gov/conferencing/vic
Network:
IP multicast, unicast, RSVP
RTP Status:
RFC 1889, RFC 1890
Notes:
Vic-Display capabilities for different systems and X servers;

The use of the Osprey 1500 video card requires compiling vic with the grabber-o1k-xil.cc file from MMAC.

parameters

-XtransmitOnStartup=true
-Xframerate=30

The "-u script" option allows you to specify a Tcl script that will be evaluated when vic starts up. A sample script to start transmission and set frame rate/bandwidth is given below.

        # set bandwidth to 40 (the '50' is a Tcl priority number)
        option add Vic.bandwidth 40 50
        # set framerate to 10
        option add Vic.framerate 10 50

        # The procedure named 'user_hook' is called when vic starts up,
        # so I'm using this procedure to start transmission.

        proc user_hook {} {
                global transmitButton transmitButtonState
                if { ![winfo exists .menu] } {
                        build.menu
                }
                if { [$transmitButton cget -state] != "disabled" } {
                        set transmitButtonState 1
                         transmit
                }
                destroy .menu
        }
This script can be in any directory, but give the full pathname on the vic command line.

Last updated by Henning Schulzrinne