CU-SeeMe (tm) for Windows. 12/4/95 CU-SeeMe is video conferencing software for the PC and Macintosh on the Internet. Obtain by FTP from cu-seeme.cornell.edu/pub/CU-SeeMe. ***WARNING*** This is beta software. It has been alpha tested, but we depend on outside users to find some of the bugs for us. If you pick up and use this software, you are volunteering to be a beta tester. Report bugs to cu-seeme-bugs@cornell.edu. Latest PC Windows version: W0.84 ------------------------------------------------------------------------- -----Contents------------------------------------------------------------ - Documentation Files - New features in the latest release - Basic Information about CU-SeeMe - Download Instructions - Where to get a Camera - Cards and Letters please - How to Test CU-SeeMe - CU-SeeMe Mail list - WWW - World Wide Web Access - How to Operate a CU-SeeMe REFLECTOR - Underlying Concepts - Frame differencing - Compression - Network - Reflectors - OpenContinue Packets - Flow Control - The Fine Print - Copyright Information ------------------------------------------------------------------------- -----Documentation Files------------------------------------------------- * README.TXT - This file - general information. * CUSEEME.TXT - User's Guide for CU-SeeMe for Windows. * CHANGES.TXT - Changes from version to version. * FAQ.TXT - Frequently Asked Questions and Answers. * COMPAT.TXT - What's Compatible with CU-SeeMe for Windows, system requirements, capture cards, etc. * CUSEEME.HLP - Windows Help file. ------------------------------------------------------------------------- -----New features in the latest release---------------------------------- The Latest version, W0.84, adds the following over the previous version W0.70: * Chat window - Lets you send and receive keyboard messages to and from other clients. There are filters that enable you to hide text from clients that you're not conversing with. * QuickCam support - We now support the QuickCam parallel port camera made by Connectix. * Inverted Palette fixed - The inverted-looking palette that some capture cards had (like the Promovie Spectrum and others) has been fixed. We now support a 64 Gray palette with an 'invert' option for these cards that will not accept the 256 Grays that CU-SeeMe used to insist upon. * Audio fixes - The popping and clicking noises heard when there are imperfections on the network have been much reduced. Also, when the first packet of an audio transmission is lost, the whole transmission is no longer ignored. A new bandwidth manager regulates outgoing video while audio is being sent - this results in better reception. * New version handling - The application can tell what version is running on other client's machines (accurately) for PC or Mac, even when the remote client is running a newer version. Known Bugs Remaining: * The Participants Window is slow, does not redraw correctly, sometimes shows users in the wrong section, etc. We will have a complete replace- ment for this Window in our next release. Please don't take time to note specific problems in the Participants Window. The same applies to the Toolbar under the video windows. * Audio still is fussy about network performance especially on slower links. This results in gaps in sound or popping and 'stuttering'. There is still a substantial delay in the audio receive on the PC version. Timing improvements for Audio are next on my list. ------------------------------------------------------------------------- -----Basic Information about CU-SeeMe------------------------------------ CU-SeeMe, a desktop videoconferencing program, for Macintosh and PC, is available free from Cornell University under copyright of Cornell and its collaborators. Future commercial versions and commercial licensing of CU-SseeMe will be available from White Pine Software, Cornell's Master Licensee for commercialization of CU-SeeMe. CU-SeeMe provides a one-to-one conference, or by use of a reflector, a one-to-many, a several-to-several, or a several-to-many conference depending on user needs and hardware capabilities. It displays 4-bit grayscale video windows at 160x120 pixels or at double that diameter, and now includes audio. So far as we know, CU-SeeMe was the first software available for the Macintosh to support real-time multi-party videoconferencing on the Internet. CU-SeeMe is intended to provide useful conferencing at minimal cost. Receiving requires only a Mac with a screen capable of displaying 16 grays, or a PC with a screen capable of displaying 256 colors, and a connection to the Internet. Sending requires the same plus a camera and digitizer (see specs below) which can cost as little as $100 to add on. At this time CU-SeeMe runs on the Macintosh and the PC using an IP network connection. With CU-SeeMe each participant can decide to be a sender, a receiver, or both. WARNING: Although being improved with each version, CU-SeeMe is not mature production software--USE AT YOUR OWN RISK. And also, PLEASE TREAT THE INTERNET KINDLY--keep b/w limits set down under 100kbps, or less if you share limited bandwidth with others. Many, many folks connected to the Internet can use CU-SeeMe with default settings and cause no problem to anyone else; but unfortunately, not everyone. If you don't know whether using CU-SeeMe will mess up the network for someone else, CHECK IT OUT first, please. CU-SeeMe was initially written for the Macintosh by Tim Dorcey with design assistance and sponsorship by Richard Cogger of the Advanced Technology group in the Network Resources division of Cornell University's Information Technology department (CIT). Important early contributions came from: Cornell University Medical Colleges (CUMC), Scott Brim, and John Lynn. The first version for Windows was written by Steve Edgar and released in April 1994. Since Oct. 1, 1993, the CU-SeeMe Project receives funding from the National Science Foundation. A very significant collaborative effort at Cornell University Medical Colleges (CUMC) is contributing substantial expertise and code. Development contributers to Macintosh CU-SeeMe0.83: Cornell: Richard Cogger (Project Director/PI), Tim Dorcey, Scott Brim (Co-PI), John Lynn, Larry Chace, Jef Han; CUMC: Steve Erde, Aaron Freimark, Aaron Giles, Erik Dahl; UIUC: Charley Kline (audio). Development contributers to Windows CU-SeeMe 0.84: Cornell: Richard Cogger (Project Director/PI), Richard Kennerly, Steve Edgar, Larry Chace; (Independent): Michel Carleer (audio) ; UIUC: Charley Kline (audio). This material is partially based on work sponsored by the National Science Foundation under Cooperative Agreement No. NCR-9318337. The Government has certain rights in this material. CU-SeeMe (tm) Copyright 1993, 1994, 1995, Cornell University See Copyright notices at the end of this document. ------------------------------------------------------------------------- -----Download Instructions----------------------------------------------- CU-SeeMe files are available via FTP from cu-seeme.cornell.edu. Look in pub/CU-SeeMe/PC.CU-SeeMeCurrent for CUSEEME.ZIP. Or look for the PC.CU-SeeMe???? directory with the highest version number for the latest version. Download the cuseeme.zip file in binary mode and unzip using PKUNZIP.EXE. The other files next to cuseeme.zip are also in the ZIP archive so you don't have to download them separately. If you don't have a copy of the ZIP compression utilities you can download them from ftp.cit.cornell.edu in the pub/dos/util directory as pkz204g.exe. Then execute this file to extract the zip utilities. ZIP is also available on lots of other public servers. Contents of cuseeme.zip: readme??.txt : This file. cuseeme.txt ; CU-SeeMe for Windows User's Guide cuseeme.hlp ; Hypertext Windows Help file for CU-SeeMe. cuseeme.exe ; The CU-SeeMe program itself. compat.txt ; List of what's compatible with CU-SeeMe: system requirements, winsock stacks, capture cards, etc. faq.txt ; Frequently Asked Questions msvideo.dll ; Microsoft Video for Windows driver. ctl3d.dll ; 3-d controls driver. ivslider.dll ; Control for audio panel and other CU-SeeMe features. Unzip the CU-SeeMe files into a directory. You must manually install the free version of CU-SeeMe (The Win'95 "Add/Remove Programs" control panel will not work with CU-SeeMe). Here's what we recommend you do with the installation files: IVSLIDER.DLL - This file needs to be in a directory in your DOS PATH. You can put a copy of IVSLIDER.DLL in /WINDOWS. CTL3D.DLL - You probably don't have to do anything. If you don't already have CTL3D.DLL installed on your system then you can copy CTL3D.DLL into your /WINDOWS directory. You may as well try CU-SeeMe and see if it complains before doing this. Windows '95 already has CTL3D.DLL so don't install this copy anywhere. MSVIDEO.DLL - If you don't already have a copy of msvideo.dll installed on your system you can put a copy in your /WINDOWS or /WINDOWS/SYSTEM directory. Windows '95 comes with MSVIDEO.DLL so you don't want this one. CUSEEME.EXE - This is the main CU-SeeMe program. You can make an icon for cuseeme.exe. CUSEEME.HLP - This is the Windows help file for CU-SeeMe. You can make an Icon for this also. I recommend that you install CUSEEME.HLP in a directory in your path so that it will be accessible from the CU-SeeMe program. ------------------------------------------------------------------------- -----Where to get a Camera----------------------------------------------- A small monochrome CCD camera, suitable for CU-SeeMe is available from: Howard & Associates 545 Calle San Pablo Phone 805-383-7444 Camarillo, CA 93012-8550 FAX 383-7442 AOL: HOWENT for about $200 or a bit more. The price varies from time to time depending on the dollar/Yen situation. Howard Enterprises will fax you complete specs and the latest price list. A few specs: - The part number/name is: NCK - 9102 TeleCamera - 1/3" B/W FT CCD Pixels 400H x 504V (Effective 378H x 486v) - Video Out 1.0vpp 75ohm (Negative) RCA connector - Electronic Auto Iris (Magnification 260) - Resolution: Horiz Lines >230 picture center, >200 edge - S/N >40db - Min Illumination: 8 lux or less - Focal length 6.1 mm, Focal Distance 600mm - Power 12VDC 130mA - Dimensions 43 x 67 x 120 mm Developer Comments: Subjectively, it seems to give a picture somewhat less crisp than a typical camcorder, but perfectly useable. At 28-30 inches, it seems to frame about the right size for my taste. He has color models too, which provide better balance of tones even in b&w, but a little less light sensitivity. Note with earlier versions of CU-SeeMe, the lower sensitivity was a problem, but with 0.60, the brightness and contrast controls in the software allow you to compensate. The color model is probably a better bet and worth the small extra cost. ------------------------------------------------------------------------- -----Cards and Letters please-------------------------------------------- Please send comments and suggestions to r.cogger@cornell.edu. Please send bug reports to cu-seeme-bugs@cornell.edu. You can be a great help in making CU-SeeMe a good, stable application. Be Seeing You. The CU-SeeMe Development Team Cornell University Information Technologies (CIT) Cornell University Ithaca, New York ------------------------------------------------------------------------- -----How to Test CU-SeeMe------------------------------------------------ To connect for a CU-SeeMe video conference, you must have the IP address of another CU-SeeMe user or the address of a CU-SeeMe reflector. If calling another user, the user must have CU-SeeMe running in *WAITING* status on their desktop. Use Connect or Connect to > in the Connections menu. We suggest that you begin by using two Macs, one connecting to the other, for a first test of CU-SeeMe. You will need to use a reflector to have a multiparty conference on the Internet. The CU-SeeMe reflector program is a Unix program which we have tested on a number of Unix OS's. If you are not familiar with IP networks, reflectors and/or your particular network set-up, ask your system administrator for help in operating a CU-SeeMe reflector. Instructions on how to operate a reflector follow. As of January, 1995, Cornell regularly runs a reflector for testing at 132.236.91.204. It is usually very busy, so consider NOT having the Open Windows Automatically preferences item checked, especially if you are on a modem link. (Still at 132.236.91.204 11/8/95) ------------------------------------------------------------------------- -----CU-SeeMe Maillist--------------------------------------------------- For anyone interested in following developments in CU-SeeMe or its use, an automated maillist has been established. The list is provided for unrestricted discussion of the CU-SeeMe packet video software under development by the Cornell CU-SeeMe project and its collaborators. Developers and project management all read the list. Currently, there are over 1000 members on the list, and there are usually around 25 messages each day. We, and other users, would also like to hear about and discuss innovative uses of CU-SeeMe. Please write and tell us your story. To join the list, send a message with the following line as the entire message body to listproc@cornell.edu: subscribe cu-seeme-l (Substitute your actual name, please; it's amazing how many don't.) You should receive a confirming message with extensive instructions on use of the list. You can send mail to be distributed to the list to: cu-seeme-l@cornell.edu. Please be sure to send to this address ONLY when you want your message redistributed. ------------------------------------------------------------------------- -----World Wide Web Access----------------------------------------------- We maintain a CU-SeeMe WEB page at: http://cu-seeme.cornell.edu/Welcome.html The latest Windows files for download can be found at: http://cu-seeme.cornell.edu/PC.CU-SeeMeCurrent.html ------------------------------------------------------------------------- -----How to Operate a CU-SeeMe REFLECTOR--------------------------------- Obtain software and documentation -- a tar files with binary executables for many flavors of unix may be obtained via anonymous ftp from cu-seeme.cornell.edu in directory /pub/cu-seeme/reflector. Untar and install in the usual way. The README is available as txt file seperately if you want to read about it first before downloading. We have carried up to 30-some participants on a reflector (a real bash). But give some thought to how reflectors are linked together and how many streams are flowing on which paths. Currently, CU-SeeMe limits open windows to 8, but trying to have 8 folks each send one stream and receive 7 thru the same reflector, assuming it has just one ethernet interface, would mean 8 streams in and 56 out. If each tries to get 100Kbps through at some point in time, you would be trying to get 6.4 Mbit/sec thru the ethernet. That would probably be deep into the collision realm. With reflector networking features, you can set up a reflector net which could give a fairly large conference; PLEASE PAY ATTENTION TO THE LOAD YOU PUT ON THE INTERNET. ------------------------------------------------------------------------- -----Underlying Concepts------------------------------------------------- * Frame differencing One of the ways that CU-SeeMe minimizes the amount of data it must transmit is to only send parts of the frame that are sufficiently different from the previous frame to warrant use of bandwidth. The 120 x 160 pixel video window is divided into 8 x 8 pixel 'squares'. Every time a frame is captured, CU-SeeMe uses a 'differencing algorithm' (written by Tim Dorcey) that compares the pixels in the new square to those in the previous square sent. If they are sufficiently different, the square is sent on the network. What this means is that, if you're looking at a person speaking, you get more frequent update of their face (which moves and changes rapidly) and less frequent updates of the background which doesn't change often and is not the center of attention anyway. Frames that don't change are send every so often anyway to correct for the effects of lost packets. If a square changes and the new square is sent but you lose this packet you'll see what looks like a flaw in the image - sometimes you'll see an image of a hand off to the side, hanging in the air while the person's real hand is somewhere else. After a while the phantom hand disappears when the square is sent again. This form of 'compression' is not lossless, but we believe the visual effects are minimal considering the substantial improvement in perceptible motion. In practice we achieve as much as a 10:1 ratio quite routinely. * Compression Another way that CU-SeeMe minimizes the amount of data it must transmit is to compress the data that it sends. The scheme used by CU-SeeMe is relatively simple so it can operate in real-time. Each 'square' of 8 x 8 pixels is handled as 8 rows. The first row of eight pixels is sent (in four bytes). Each of the next seven rows is sent in one of several ways depending on how different it is from the previous row. If the row is exactly the same as the previous row or only differs in brightness level, only a 4-bit code is sent. If it is slightly more different from the previous row, and is only zero or one brightness level different the row can be sent as a 4-bit code and one byte of differences. If it is yet more different it can be sent as a 4-bit code and two bytes of extra data. If the row is too different from the one above it, the whole row is just sent. We achieve a compression rate of about 2:1 using this technique. This compression scheme is lossless - the data received and displayed is exactly what would have been received if compression were not used. * Network CU-SeeMe uses the UDP protocol. This is different from most TCP/IP applications which use TCP. UDP is used by NFS (Network File System) and PING and a few other programs. CU-SeeMe uses UDP socket 7648. Some network providers have "firewalls" installed that prevent UDP traffic such as CU-SeeMe from flowing. Some of these providers are willing to remove the firewall for you if you ask, some are not. There is more information about firewalls in FAQ.TXT. CU-SeeMe for Windows requires a Winsock TCP/IP stack. See COMPAT.TXT for details. Win '95 comes with a TCP/IP client that is Winsock compatible. * Open Continue Packets In addition to Video, Audio, and AuxData (for Chat, Slide Projector), CU-SeeMe needs to send 'control' data back and forth. OpenContinue packets serve several purposes and contain several types of information: - Session Initiation and 'Keep Alive' - The same packet serves to open a new connection or to keep an existing one current. - Indicates Sender capability and information. OpenContinue packets contain the sender's IP address, Name, Video and Audio Send capability, version information and more. - Information Specific to other clients. Each OpenContinue packet contains information about other clients - Am I getting your audio / video, Chat, and more. - Receive Rate Data. Information about how much data we've receiving is sent out so the sender knows how succesfull they're being in sending to us. * Flow control Flow control is an important part of successful video conferencing on the Internet. Here are two methods of flow control being used by CU-SeeMe currently: - Packet Loss Reports Every CU-SeeMe client sends information to video senders concerning packet loss. The sender averages the results of packet loss reports from all clients and if more than 5 percent of outgoing packets are not being received, it will reduce it Send Cap. To reduce the Send Cap the applications will grab video frames less frequently. If the percent packet loss becomes less than 5 percent the application will increase the send cap slightly. - Recvrate Reports As CU-SeeMe clients receive data they regularly send back information indicating how much data they've successfully received. The sender uses this information to determine if data is being lost and can slow down sending if needed. This protocol detects data loss only on the local link whereas Packet Loss Reports detect loss from end-point to end-point. - Rate Control The reflector sends out Rate Control Query packets every so often and expects a Rate Control Reply packet to be returned immediately. It can then measure the round trip time to see if there is a delay existing in the network. It can then reduce the cap until the delay is acceptable. * Reflectors Reflectors are Unix machines running the CU-SeeMe Reflector program. A CU-SeeMe client can connect directly to another client (Mac or PC) but in order to have a conference of more than two clients a reflector must be used. A reflector accepts up to 24 (configurable) video conference clients. There is more information on reflectors in the README.TXT file (but not much, yet). ------------------------------------------------------------------------- -----The Fine Print - Copyright Information------------------------------ The "two faces" Logo is a trademark of Cornell University. It is an original design by Aaron Freimark. The name "CU-SeeMe" is a trademark of Cornell University. CU-SeeMe(tm) Copyright (c) 1993, 1994, 1995, Cornell University Cornell hereby grants permission to use and copy, for any purpose, and to redistribute this binary executable version of the CU-SeeMe (tm) program (whole and unmodified), all without fee, provided that (1) any such redistribution shall realize no profit or gain, direct or indirect, (2) these copyright and permission notices, and those of Cornell's collaborators included below, appear on all copies and supporting documentation, (3) the name of Cornell not be used in advertising or publicity pertaining to distribution of the program without specific prior permission, and (4) notice be given in supporting documentation that copying and distribution is by permission of Cornell. Cornell reserves the right to modify this grant of permission in future releases. Decompiling, disassembling, or reverse engineering this program is not permitted. This notice makes no grant of permission or access to the source code for this program; such access is available by specific seperate license only. CORNELL MAKES NO REPRESENTATIONS OR WARRANTEES, EXPRESS OR IMPLIED. By way of example, but not limitation, CORNELL MAKES NO REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THIS SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS, OR OTHER RIGHTS. Cornell shall not be held liable for any liability with respect to any claim by the user or any other party arising from use of the program. The audio portion of CU-SeeMe was provided by Charley Kline's Maven. The following are notices of Charley Kline and UIUC and apply only to the Maven code contained in CU-SeeMe. These are generic notices; the reference to source code is inapplicable to this binary distribution: Charley Kline, cvk@uiuc.edu University of Illinois Computing and Communication Services 28 Feb 1994 Copyright (c) 1994 by Charley Kline and the University of Illinois Board of Trustees. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the University of Illinois, Urbana and its contributors. 4. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE TRUSTEES AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE TRUSTEES OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Portions of the audio code for Windows CU-SeeMe were provided by Michel Carleer. Michel Carleer Laboratoire de Chimie Physique Moleculaire Universite Libre de Bruxelles CPi-160/09