How to do CU-SeeMe under Linux (fwd)

Sgt Daniel W. Erskine (derskine@caesar.safb.af.mil)
Mon, 29 Jan 1996 07:50:35 -0600 (CST)


Greetings:
Here's some theories on porting CU-SeeMe to the Linux platform. Have fun!

[=============================================================================]
"THERE IS NO SANITY... Just organized CHAOS!!!"

"I'ld rather STAND CORRECTED than SIT CONFUSED!!!"

Sgt Daniel W. Erskine "derskine@apci.net"
PHONE: (618) 256-6891 "derskine@caesar.safb.af.mil"
"http://www.apci.net/~derskine"
[=============================================================================]

---------- Forwarded message ----------
Date: Sun, 28 Jan 1996 21:02:57 -0700
From: Nelson Minar <nelson@santafe.edu>
To: linux-connectix@crynwr.com
Subject: How to do CU-SeeMe under Linux

This is http://www.santafe.edu/~nelson/cuseeme-linux.html. After I get
some more comment on this I'll see about publicizing the URL a bit
beyond this mailing list.

How to do CU-SeeMe under Linux

I spent about four hours getting all the pieces together to make CU-SeeMe
work under Linux. In the end nothing was terribly complicated, but the lack
of collected information was frustrating. With this document, you should be
able to cobble together something that lets you do CU-SeeMe with Linux and a
Connectix QuickCam. Many of the notes here have more to do with Unix video
than anything Linux specific, so they may be of general use.

The general setup you need is:

* NV, Network Video, compiled with special patches for CU-SeeMe
endianness bugfix and QuickCam support.
* reflect, the White Pine's CU-SeeMe reflector

All conference participants connect to the reflector. In addition to being a
handy meeting spot, reflect is necessary to translate between Mac/PC
CU-SeeMe and NV's CU-SeeMe.
----------------------------------------------------------------------------

NV

NV is Network Video, a Unix tool for shipping pictures around. It's fairly
general purpose, supporting a variety of video sources and encoding
mechanisms. There is (currently) no CU-SeeMe software for Unix - NV does a
similar thing, and seems to more or less speak CU-SeeMe protocol.

In addition to normal NV, you need a version that's been patched to fix an
endianness problem with CU-SeeMe. You'll also want patches that enable
quickcam support into NV. You have to routes: try a binary, or build from
sources yourself.

Patched NV Binaries

If these work for you, you'll save yourself a lot of trouble.

http://www.infotainment.com.au/nv/
Contains nv3.3b patched for CU-SeeMe and QuickCam, compiled for a.out.
I had trouble with the dynamic loading on this one, just coredumped on
me.
nv33b-qcam-linux-elf.gz
nv3.3b patched for CU-SeeMe and QuickCam, compiled for ELF. Note that
tk and tcl are statically linked in, so this is kinda big.

Building NV from Sources

Building NV from sources is not too hard. It requires tk3.6/tcl7.3 - it will
not work with tk4.0. The quickcam patch was a bit tricky, some of the files
didn't end up in the right place so I had to move things around a bit.

ftp://munnari.oz.au/av/nv/nvsrc-3.3beta.tar.Z
Plain vanilla NV source. This doesn't do quickcam, and seems to have
some sort of bug with CU-SeeMe encoding.
http://www.infotainment.com.au/nv/
Patches to NV 3.3beta for QuickCam, CU-SeeMe.
ftp://ftp.nas.com/laird/
qcam, a set of libraries and programs that use the quickcam. This stuff
is very preliminary, but has the virtue of working right now. Needed
for the qcam version of NV.
http://www.crynwr.com/qcpc/
Web page for people hacking Connectix support into Linux. Good general
reference if you get confused.

First unpack and build the qcam library. This is pretty straightforward.
Next, unpack the NV sources and apply the patch. Tinker with the NV Makefile
so that it points to all the right directories (don't forget tk3.6!) and
then run make. With luck you'll get an NV binary.

This binary is all you really need to do network video. Note, it has to run
as root (it opens the parallel port directly). The only problem is that NV
can't connect directly to Mac/PC CU-SeeMe software. Fortunately, the
reflector software can help mediate between NV and CU-SeeMe: if you're both
connected to the same reflector, you can see each other. Start up NV, switch
to CU-SeeMe encoding, and connect to port 4444 on a reflector that has NV
support enabled. The White Pine's test reflector at 192.80.72.4 is supposed
to support NV, but I haven't been able to connect to it.

Potential Problems

All of this software is pretty marginal, especially the QuickCam support. If
you think this is exciting, join the group of folks hacking QuickCam support
into Linux. With luck, sometime we'll have a nice device in the kernel for
video!

The main bug I run into now is that sometimes libqcam doesn't correctly
detect the presence of the camera. It seems that if I run xfqcam (another
Linux QuickCam hack) first, telling it explicitly which port the camera is
on, then quit and run NV, it finds it.

Sometimes the image quality that comes out of the QuickCam at first is ugly.
For some reason, selecting "6-bit" again in the grabber control panel fixes
it.

NV doesn't seem to support anything other than video. In particular, I get
no audio, chat messages, or lists of lurkers connected to the reflector.

NV has multicast support, I don't know anything about how it works and
haven't tried it.

There's been a report that NV doesn't work so well over PPP links. I'm
having no trouble connecting from my home box, over 28.8kbps PPP to a
reflector run on the LAN on the other end of my PPP link. I have had trouble
connecting farther away than that, though.

----------------------------------------------------------------------------

Running a Reflector

As mentioned above, NV can't talk directly to CU-SeeMe software. The
reflector written by White Pine, however, can talk to both CU-SeeMe and NV
and translate between them. If you can find a reflector that has the NV
support enabled, in theory you should just connect directly there and
everything will work.

You can also run your own reflector with very little effort. reflect-4.0b3
(binary distribution only) works fine under both SunOS and Linux. Start up
the reflector, and tell everyone to talk to it. My standard connection right
now is a reflector on a Sun hooked to a LAN so CU-SeeMe people can connect,
and NV on my home Linux box, hooked via 28.8kbps PPP to the reflector. A bit
convoluted, but it works.

To install the reflector with NV support, just download the reflect binary
and add the line NV-UC-PORT: 4444 to reflect.conf. I found it helpful to
look at reflect.log and use the refmon program to see when my NV client was
connected. Here's an output of who from refmon when one NV and one CU-SeeMe
client are connected:

> who
CLIENT: foo@134.10.2.24 CRV
NV UNICAST: root@nelson.santafe@192.12.12.195

Total # of clients 1 senders 1 lurkers 0

----------------------------------------------------------------------------
Nelson Minar <nelson@santafe.edu>
Last modified: Sun Jan 28 20:55:13 MST 1996