Document directory
- Overview
- Features
- Installation
- Supported Systems
- Notes
- Acknowledgments
- Feedback
Vic-vi
Deo C
Onferencing Tool
Vic is a video conferencing application developed by
Network Research Group
At
Lawrence Berkeley National Laboratory
In collaboration with
University of California, Berkeley
.
Source code and pre-compiled binaries are available
Anonymous FTP
.
Vic-related questions and feedback are welcome and can be sent
To the developers via vic@ee.lbl.gov
.
Contents
- Overview
- Features
- Installation
- Supported Systems
- Notes
- Acknowledgments
- Feedback to authors
Other links:
- What's new?
- The ftp archive
- Browse the change history
- Research projects
- Screen dump of user-interface
- Mccanne, S., and Jacob, V .,
VIC: a flexible framework for Packet Video,
ACM multimedia '95.
FreeBSD mbone tools
- Linux mbone tools
Overview
The UCB/lbnl video tool,Vic
, Is a real-time, multimedia application
For video conferencing over the Internet.
Vic was designed with a flexible and extensible architecture to support
Heterogeneous environments and deployments. For example, in high
Bandwidth settings, multi-megabit full-motion JPEG streams can be
Sourced using hardware partitioned ed compression, while in low bandwidth
Environments like the Internet, aggressive low bit-rate coding can
Be carried out in software.
Vic 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
Vic -- You need no special system enhancements to run RTP. Although
Vic 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 shoshould be connected to
IP multicast backbone (mbone)
.
Vic also runs over
Rtip
, The experimental real-time networking protocols
From U. C. Berkeley's tenet Group
And over ATM using
Fore's
Spans API.
Vic provides only the video portion of a Multimedia Conference; audio,
Whiteboard, and session control tools are implemented as separate
Applications. Our audio tool is called
Vat
And
Our whiteboard Tool
WB
.
UCL developed the Session Directory Tool
SDR
.
Other related applications include Isi's multimedia conference control,
Mmcc
,
The Xerox PARC network video tool,
NV
And the INRIA video-conferencing system,
IVs
.
Vic is backward compatible with rtpv1 and can interoperate with both
NV (v3.3) and IVS (v3.3 ).
Features
Features unique to Vic include:
- An ''intra-h.261' video encoder,
- Voice switched Viewing Windows,
- Multiple dithering algorithms,
- Interactive ''title generation', and
- Routing of decoded video to external video ports.
Intra-H.261
Encoder combines the advantages of NV's block-Based Conditional
Replenishment Scheme (I. e., robustness to loss) with those of H.261
(I. e., higher compression gain and compatibility with hardware codecs ).
This is achieved by coding only ''intra-mode'' macroblocks and using
Macroblock skip codes to replenish only the blocks that change.
For a fixed bit rate, the H.261 coder achieves frame rates
Typically 2-4 times
That of the Nv coding format.
Vic allows Viewing Windows to be configured
To ''follow the speaker ''. Using cues from VAT, Vic will switch
The viewing window to whoever is speaking. More
One window can be configured in this manner, which causes
Most recent N speakers to be displayed.
Vic has several dithering algorithms for representing
Continuous-tone color video streams on color-mapped displays.
The user can trade of run-time complexity with quality.
An error-diffusion dither gives the highest quality
At the greatest CPU cost, while a direct Color quantization
Results In the lowest CPU load but yields relatively low quality.
An ordered dither (derived from NV) gives moderate
Quality with low complexity.
Vic exports an interface that allows graphics to be easily composited
On top of the captured video. overlays can be downloaded and
Manipulated authentication ss the ''conference bus'' allowing a ''production team''
To enhance a broadcast with titles, credits, logos, etc. Since
Conference bus can be manipulated using TCL, it's easy to extend existing
Scripts or create new scripts for on-the-fly title generation.
See the ''title-maker ''' script in the VIC distribution for an example
Of how to do this.
Video streams can be displayed simulatanously on a workstation display
And on an external video output port, provided your hardware supports
External output. This allows you to render a single stream to
Full-sized NTSC/PAL analog video signal, which when viewed on
External Monitor (or video projector) generally provides a more
Comfortable picture compared to video displayed in a small X Window.
Installation
The easiest way to install Vic is to grab
Binary Distribution
.
For your architecture, unpack it, and install the executable and
Manual entry.
You can also build vic from source. Start by unpacking the gzip 'd
Source tar
, E.g., by running
- Gzip
-D-C vicsrc-tar.gz | tar xfv-
This will place the contents of the Source Distribution
In./vic-x.y where ''x. Y' is the current version number.
''Cd'' to this directory and do the following:
- Make sure
Tcl/TK
(V7.5/4.1) is installed or built in the directory
Above the vic tree.
- Run the./configure script.
You may specify the following arguments to configure:
-X-nodes des =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-Aix-SHM =Path |
Specify a pathname for the aix shm extension Library |
If you run into problems with configure, you shoshould EditConfigure. In
InsteadConfigure
And use
GNU Autoconf
To generate a new configure from Configure. in. If you need to make
Such changes, please send them to us so future versions of Vic
Will configure out of the box.
- Run make.
- If make completes successfully, run ''make install'' as root
To install the binary and man page.
Supported Systems
ISCSI |
SunOS 4.x |
Videopix,
Vigrapix , Parallax |
ISCSI |
Solaris 2.4 |
Sunvideo,
Vigrapix , Parallax , SLV |
ISCSI |
NetBSD 1.x |
None |
DEC/MIPS |
Ultrix 4.3 |
Jvideo, XV (TX/PIP) |
DEC/AXP |
OSF/1 v3.x |
J300, jvideo |
SGI |
IRIX 5.x |
VL, indigovideo, Cosmo |
I386 |
BSD/OS |
None (yet) |
I386 |
FreeBSD |
Matrox meteor , Video spigot |
I386 |
Linux |
Connectix Quickcam |
I386 |
Linux |
Ibm pcmcia Smart Capture card (SCC) |
HP/PA |
HP-UX 9.x. |
XV |
RS/6000, microchannel (3xx, 4xx, 9xx, 41 w/t, 42 w/t) |
AIX 3/4 |
Ultimedia video I/O adaptor |
RS/6000, PCI (40 P, 43 p) |
AIX 4 |
Parallax (pCI Adaptor) |
Notes
- For the DEC/j300, you will need
Lance berc's
Video Server called
Jvdriver
.
Vic does not work with DEC's Mme server.
- Remember to run jv2driver with the right command-line options
If your using the svideo connector (-Sin) or PAL video (-pal ).
- Solaris-2 has small limits on shared memory segments. If you
Want to display full sized 24-bit video windows and more
One or two, add these lines to/etc/system and reboot:
- Set shmsys: shminfo_shmmax = 2097152
- Set shmsys: shminfo_shmseg = 24
If you have a cg14 frame buffer (the built-in Frame Buffer
On sparc-20), it's a good idea to run
- /Usr/KVM/cg14config-g 2.2
From your x startup script. The default display Gamma
Is not appropriate for video (even though the man page
Says the default is 2.2 ).
- If you're running SunOS, the shared memory limit is also low,
But not as bad as Solaris. You can change it by adding
"Options shmsize = 2048"
To the system config file or adb' ing the Kernel & changing the first
Words of shminfo to 2097152.
- BSD/OS 2.0
Now supported des a library to support the svr4 shared
Memory API
MMAP
.
Unfortunately, their X server is not
Shipped with the X shared memory extension compiled in.
To get reasonable display performance with Vic, you'll need
To recompile the X server with this extension.
- To use shared memory under Aix, You need to compile one of
Sample extensions provided with AIX and start the X server
That extension loaded. When building VIC from source, you need
To specify -- With-Aix-SHM = libpath to set the pathname of
Extension Library (that also needs to be compiled from the exmaple
Codes). If -- With-Aix-SHM isn't provided, Vic will be built
Without shared memory support (and hence pay a big performance
Hit when rendering video to X Windows). (thanks
Bob Olson
For bringing up vic is this environment .)
Bob reports that with the shared memory support in place,
A 1 T (PowerPC 601 box) can decode 320x240 JPEG at 30fps in
Software (with Q up to about 70 ).
Andrew Booker
And
Kira Attwood
Have made
AIX Binaries
Publicly available
- The default BSD/OS make doesn't like Vic's makefile.
Just use gmake (which is probably installed ).
- There are two versions of Vic for Solaris: Vic and Vic. xil.
The vic. xil binary uses Sun's xil library for video capture,
While Vic. rtvc bypasses the library and manipulates the device
Directly. The rtvc version is faster, but because it doesn' t
Use the standard API, it might not work in future Solaris or
Xil releases. The Vic. xil binary is built with only xil
Support, while the vic binary supports all available Capture Devices.
- Amancio hasty
Has put together
Web Page
For the mbone tools under FreeBSD
.
Check it out. Thanks
Jim Lowe
,
Vic supports both the matrix meteor board and the video spigot
Under FreeBSD.
See
Ftp://ftp.cs.uwm.edu/pub/freebsd/meteor *
For the matrox
And
Href = ftp://ftp.cs.uwm.edu/pub/FreeBSD/spigot/
For the video spigot.
- John brezak
Has ported
Vic to Windows 95/NT (January 31,199 6). He says:
- Run "nmake-F Vic. Mak" to compile.
- Known problems and limitations:
- Untested on Mono displays
- Need to handle case where ip_multicast_loop cannot
Be turned off. The default Win95 TCP/IP stack has
This limitation.
- There are some colormap problems in pseudo color/8.
This appears to be a TK problem.
- Changing color mapping methods can cause an exit on pseudo color/8
Displays.
- No grabber support.
- Shocould use videox interface for higher performance.
- Koji Okamura
Maintains
SCC driver for Linux
And Linux
Vic Binaries
W/SCC support.
Acknowledgments
This work was co-hosted sored by the Lawrence Berkeley Laboratory
And the Tenet Group of the University of California Berkeley and
The International Computer Science Institute. Support was provided
- An at&t Graduate Fellowship;
- For the Lawrence Berkeley National Laboratory:
Office of Energy Research, mathematical, information,
And computational Sciences Division, of the U. S. Department
Of energy
Under contract No. DE-AC03-76SF00098,
- Sun Microsystems,
- Digital Equipment Corporation, and
- Silicon Graphics Inc.
- For the Tenet research group:
- The National Science Foundation and the advanced
Research Projects Agency (ARPA) under cooperative
Agreement NCR-8919038 with the Corporation
National research initiatives, and
- Digital Equipment Corporation.
Feedback
As always, we very much want to hear about bugs and problems. Please
Don't hesitate to offer suggestions or other feedback. Send all VIC
Related corresponsed to vic@ee.lbl.gov
(This list includes des only the developers and is not distributed beyond
Our site ).
Steven mccanne
Mccanne@ee.lbl.gov)
Van jacbsonVan@ee.lbl.gov)