Distributed Systems Department

Ernest Orlando Lawrence Berkeley National Laboratory
One Cyclotron Road, 50B-2270, Berkeley, CA, USA 94720

Remote Camera and Videoswitcher Control Software

As part of the Distributed Systems Collaboratories project, we have developed two new videoconferencing tools, devserv, and camclnt. These tools allow remote control of a serial controllable camera system. The devserv program is run on the machine with the serial (RS-232) connections to the camera system and camclnt is the user interface that can be run anywhere to control the camera system over the Internet. By running these tools together, users can control the video devices used in a videoconference.

The devserv program can currently drive the Sony EVI-D30, Canon VC-C1, Canon VC-C3, and Canon VC-C4 cameras and the Panasonic WJ-MX50 Digital A/V Mixer. Devserv listens on a UDP connection for ASCII text command strings that request camera motion or video switcher actions. Any program which sends commands that conform to the Remote Camera Command Language will be able to control the camera system. Devserv transmits status messages using IP Multicast. The camclnt program provides a graphical user interface for making requests to control the cameras and a video switcher being run by devserv. These requests are sent using the Remote Camera Command Language to the device server, which in turn drives the devices. A user watching video (with a tool such as vic) may request pan, tilt, or zoom of any of the cameras, select the camera to view, or request a picture-in-picture (selecting a camera and requesting picture-in-picture only work if you have a video switcher).

The devserv program is written in C++ and has been tested on Solaris, Irix, freeBSD, Linux, and Windows95/98/NT. The camclnt program is written in Java 2.0 and should run on any platform.


Where to Get Devserv, Camclnt and Documentation

The source code and pre-compiled binaries (for Solaris, Irix, FreeBSD, Linux, and Windows95/98/NT), along with help files and READMEs are available by clicking on the titles below. For Irix (6.x), devserv v0.4.7 works the best. A man page for UNIX and a user manual (devserv.doc) for Windows are included with the source code and binary packages.

*The client has been built in Java 2.0 so JDK 1.2 is required for camclnt. If JDK 1.2 is not available for your platform (e.g., freeBSD), JDK 1.1 can be used. Starting with version 0.4, camclnt supports the Java Media Framework (JMF) for viewing video. However, the JMF is currently only available for Solaris and Windows 95/98/NT. There are separate source and binary packages for camclnt v1.0. If "nojmf" is in the package name, JMF is not supported; other packages include JMF support. If you wish to use the JMF-enabled version of camclnt, you will also need to install JMF 2.0 from Sun.


Writing New Client Programs

Users may write their own client programs to work with devserv as long as the communication protocols and message formats are the same for both applications. devserv uses the standard socket interface to receive (unicast and multicast) client requests and send status or description messages. It also supports the common communication library developed under the Collaboratory Interoperability Framework (CIF) project. Thus, devserv reads requests from non-CIF UDP and IP-multicast sockets and listens on CIF UDP and UUM ports for client connections and messages. It sends its status messages to both the CIF and non-CIF multicast addresses. The messages exchanged between the device server and the client are ASCII text messages. The precise language is defined in the command set that was developed for the device controller. This command set and the CIF communication library are available by clicking on the titles below.

NOTE: CIF is optional but if you would like to use CIF, please get the C++ package for devserv and the Java package for camclnt. If you are building CIF from source, please follow the directions in the READMEs that are included with the CIF packages.


Devserv was compiled for Solaris 2.6/2.7, freeBSD 2.2.x/3.x, Irix 6.5, Linux 2.2.5/2.2.12 (Redhat 6.1), and Windows 95/98/NT. You are welcome to compile the source code on other platforms. We would be interested in hearing from you if you do and getting your website if you choose to put your program on the web. Devserv-related questions and feedback can be sent to Deb Agarwal (DAAgarwal@lbl.gov). You may also register with us to receive updates and announcements of devserv.


Introduction to the MBone Page
Please also visit the
Lawrence Berkeley National Laboratory Home Page. Distributed Systems Department Home Page. Distributed Collaboratoratories Home Page.

This document was last updated on April 11, 2005, and is located at http://www-itg.lbl.gov/OldMisc/mbone/devserv/homepage.html.

To report Web page problems, e-mail webmaster-george@george.lbl.gov.

Support Credits identify the funding sources and the organizational context of the work described in this document.

Privacy and site security notice to Users .

Deb Agarwal (DAAgarwal@lbl.gov) is responsible for this WWW document.