1. Introduction
The explosion of the World Wide Web has brought about a lot of ideas to give viewer clients more and more benefit. From information providers' viewpoint, giving clients more interesting web pages results in frequent visit to the page, enhancing the popularity of the business being presented in those pages.
One of such ideas is multicasting, in the general sense of the word, live pictures through the Web. The web browsers have been equipped with still image display capabilities such as GIF or JPEG. For server's side the cost reduction of video capture devices enabled the low-cost opportunities to transmit captured digital live images to the Internet. With additional technical methods it is considered as a natural extension of this tendency to transmit live video images to the Internet. It is, however, not always possible because of the unpredictable bandwidth en route from the server to the client. Protocols such as RTP is proposed and is being implemented aiming at providing a better protocol for such continuous media transmission over the Internet.
Though the multicast technology and the RTP is not available currently, the number of sites which provide live image transmission has been increased to about five hundred this July. Some trials have been carried out to broadcast video images via Internet similar to the television broadcasting. Some video cameras, such as Canon's VC-C1, provide remote-control capabilities for this kind of live image capturing. The camera is equipped with remote pan, tilt and zoom capabilities with auto-focusing and backlight compensation, which also is controllable by the computer.
Remote controllable cameras are usually equipped with commodity RS232C interface to receive control commands from computers; the video output, similar to consumer-use VCRs, is supplied to video-capture boards in, for example, NTSC composite signals.
We have implemented a camera server and client system
which consists of a PC, a video board, the controllable camera
and server software enabling still/motion image transmission to
the Internet. We have set up a protocol to control the camera
via the Internet by which the client, a plug-in or helper to web
browsers, can control the camera using, for example, scroll bars.
The application-level camera control protocol is designed over
an abstract camera model so that the protocol can be applied to
a variety of such cameras. To incorporate different cameras into
this system, only the camera-control device driver has to be changed
for the application system to be operable.
In this position paper, we first briefly introduce
our system. Then we describe the overview of the camera control
protocol.
2. System Specification and an Implementation
The system, code-named WebView, is a video transmission
system for use in both live still-frame mode (for transmitting
of a still picture captured at the time the user accesses the
home page) and live video mode (for transmitting of video during
access to the home page), giving active control of camera angle,
zoom and other features to the user through the home page interface.
The system consists of a WebView Camera Server to transmit live
video captured through Canon's VC-C1 Communication Camera on the
Internet, and WebView viewer software for viewing of the live
video broadcast. As the WebView Camera Server is linked directly
to a WWW home page, the user is able to view live still pictures
through a standard Web browser, or video via WebView viewer software.
The conceivable applications include fixed observation,
traffic monitoring, pay-per-view systems, on-line showrooms, desktop
exhibitions and so on. With intranet bandwidth the system could
also be used for broadcasting of high frame-rate video services.
The screen sample of the viewer software is shown
in Figure 2.
3. Camera Control Protocol
The Camera Control Protocol layer is shown in Figure
3. The Standard Camera Command set represents an abstract controllable
camera. The Custom Command set provides camera-specific commands
associated with each camera hardware and can be used to enhance
the Standard Camera Command set. These Command sets are interfaced
to a lower level of abstraction, namely an abstract Camera Device
Driver API, which is an abstraction of drivers of different instances
of camera device drivers. The Switcher API also provides another
abstraction of the camera switcher, which provides the functionality
of switching among plural cameras connected to that camera server.
There is actual hardware products for switching among, say, four
cameras controlled by the serial port of a PC. The switching function
could be provided by switching among those cameras which are connected
to the PC by way of separate video boards. In this case there
is no actual switcher hardware outside the PC. The switching is
done internal to the PC. Because the switcher abstraction layer
also provides an API common to various implementations of switchers,
the upper layer does not have to be altered by selecting specific
switchers. The benefit of providing these abstract layers, obviously,
is to make the Camera Control Server independent of the variety
of camera devices, camera switching devices and the system configuration.
In cases a specific camera is discontinued, the maintenance of
the Camera Control applications is confined to the device dependent
layer of the applications.
Standard Camera Command Set | Custom Command Set | ||
Camera Server Implementation | |||
Switcher & Camera Communication Device Driver API | |||
Camera Communication Device Driver API | |||
4. Conclusion
We have described the notion of live image transmission
system in the Internet. With the utilization of advanced cameras
directly connectable and controllable through the Internet, the
area of such applications is expected to expand in pace with the
realtime transfer protocols. However, hardware instances of such
devices are varied and software to utilize them should clearly
separate the implementation layers of such devices. We have shown
that there are layers of abstractions for such situations. And
we suggest that application software will benefit tremendously
if there is a common protocol and API for construction of such
software.
Appendix: WebView System Specification
WebView - Camera Server
Required hardware: IBM PC/AT or compatible
Operating system: WindowsNT
Video input device: Canon Communication Camera VC-C1
Mk-II
Video compression method: JPEG (Motion JPEG), Indeo3.2
Image size: Five possible sizes from 80x60 to 640x480
WebView - Viewer software
Available as helper application or Netscape plug-in
module.
Required hardware: IBM PC/AT or compatible
Operating system: Windows95 / WindowsNT3.51 or later/MacOS/UNIX
*Macintosh OS and UNIX viewer is under development.