As processor speeds increase and the cost of digital video technology falls, the use of video is expanding in a plethora of applications including video surveillance, human computer interaction, tele-instruction, and enhanced sports broadcasts. However, a major problem that now faces developers of video systems is the requirement to build the low-level video processing from the ground up for each application. This paper describes a camera system that acts not merely as a provider of pixels, but as a video information server. A video application interacts with the camera server using the Camera Markup Language (CaML, pronounced camel) proposed here. CaML is an XML-based (Extensible Markup Language) data format for exchanging video information with a server. It provides a layer of abstraction between the application and the pixels to simplify the development process and is well-suited to exchanging data over a network. Using a camera as a server on a network makes it a simple matter for a single application to use multiple cameras. Local- and wide-area networks (LANs and WANs) replace the need for conventional methods for routing video signals.