WebCam2000 (WC2K) is a program for serving live still pictures on the Internet.   It can serve the picture as a JPEG image or a bitmap file and can be used as a standalone web server or as the backend to a CGI script.  This version of WC2K requires:

Copyright Info

WebCam2000 is copyright © 2003 by Jeffrey Carlyle. It is covered by the "Artistic License." For more details on the copyright and the license, please see the files COPYRIGHT and LICENSE included in this distribution.

WebCam2000 remains open source software. The source to WebCam2000 can be downloaded from the WebCam2000 homepage at <>.

WebCam2000 was originally written by Paul Chinn <>. Many thanks to him for all of his hard work.


WebCam2000 only has 3 files: "WebCam2000.exe", "overlay.bmp" and  "capoff.bmp"- to install, just put these files in the directory of your choice.  To uninstall, delete them.

Using the program.

After starting the program you will see a blank window and the menu:

File  Video  Options  Help


The Video menu contains a list of all Video For Windows capture devices on your system.   Select the one you want to take pictures.  After you choose the capture device a checkmark will appear by it and you will see the image it takes in the main window.  Only one device can be selected at a time: if you choose another device (assuming you have more than one on your system) the first will be turned off.  You can turn off the capture device completely by selecting it again. (see below for information about the "capoff.bmp" file)

Also under the Video menu are the options "Source", "Format" and "Display".  Which of these is available depends on your capture device as does their function.  Selecting them brings up dialog boxes that are specific to your device but should be familiar to you from using other video applications.

In the main window you can click the "View Preview" button to toggle a live video preview of the image capture.  Some capture devices consume a lot of CPU power so you can turn the preview off if your system seems to slow down.

Checking "Enable Web Server" starts serving the images. You can see the results by using your web browser and the URL http://localhost:8080/.   If the server is not enabled, people will be unable to contact your computer and will receive an error message in their browser.  See below for information on the "capoff.bmp" file for another, user friendly, way to disable image capture temporarily.


The Options menu contains two options.

"Web Server...",  lets you alter settings related to the image server.   The defaults are probably fine for most people.  The options dialog looks like this:

  1. Enable Image Server: This is the same as the check box in the main window and turns the server off and on
  2. Image Server Port: This is the number of the TCP port on which the server will listen for incoming connections. If you have a firewall you will need to allow connections on this port for your computer.
  3. Image Type: The image can be JPEG or bitmap.  JPEG has the advantage that browsers will display the image themselves "inline".  If you use bitmaps most browsers open the image in another program.  On the other hand JPEG compression causes loss in the picture whereas BMP sends the picture uncompressed, so JPEG images are usually much smaller than BMP images.
  4. Create Access Log: When enabled, WebCam2000 will log each access to your camera in the file "access.log". The log file is stored in WebCam2000's working directory. The access log is written in the same format as the Apache web server log files.
  5. Include HTTP Headers: When this is checked the image is returned with full HTTP headers describing the content.  This lets WebCam2000 function as a complete standalone web server that will properly serve the captured image to any browser.  If unchecked, the image will be served "raw" with no header.  This mode is useful when you want WebCam2000 to act as the back end to a CGI-script and want an unmodified image for further processing.
  6. Refresh Rate: When HTTP headers are enables, WebCam2000 can request that the client refresh the image after a certain number of seconds. Not all clients will honor this request. If you are having trouble with images refreshing, set this to 0 to disable this feature.
  7. Allow client to display last received frame if server is disabled: HTTP headers must be enabled to use this function. If this option is enabled, WebCam2000 will allow a client web browser to display the last image it received if the camera has been disabled.
  8. Password: Entering text here enables HTTP Basic password authentication. This method is not 100% secure; however, it is sufficient to keep a basic level of control over who can access your web cam. WebCam2000 does not require a user name: simply ask those who you wish to view your web cam to enter the same password you enter here.

You can also change several aspects of the image using the "Image..." menu entry:

  1. Image Size- Choose "Capture Default" to use the size of the image as given by the video capture device.  Or you can select whatever size you want by entering values in the Width and Height fields.  The captured image is stretched or compressed to fit in these dimensions.  In general these values correspond to the number of pixels you want however the following values have special meaning:

    1 = use the captured image's size divided by 2
    2-5 = scale the capture image's size by this much

    For example- say your capture device gives a picture that is 100x100.  By entering 1 into the Width and Height fields you would get a shrunken image 50x50.  If you put 2 in the Width field and 30 in Height you'd get an image 200x30.

  2. Overlay Image- check this box to overlay the file "overlay.bmp" on top of the captured image.  WebCam2000 comes with a sample "overlay.bmp" but you can replace it with any file you want of any size.  By selecting "This color is transparent" you specify the color that will be invisible when "overlay.bmp" is copied on top of the captured image.  

    IMPORTANT NOTE: You must run WebCam2000 on a computer with TrueColor video mode to use the overlay image.  Otherwise you will get garbage overlaid on your image.

  3. This color is transparent- The color in the overlay image to be replaced with your webcam image.
  4. Rotate Image- Use this to specify the number of the degrees to rotate the webcam image. Note that the image will not appear rotated in the preview pane.
  5. Rotate Image Background Color- This is the color to use in the areas of the rotated image that are not covered by the original image.
  6. JPEG Quality- Use this to set the compression level of your image. 

    "Excellent" = better image quality = less compression = bigger file.
    "Poor" = reduced image quality = more compression = smaller file.

    Experiment with the slider to find the optimal balance for your image.

  7. Include Captions- you can have up to 6 different text captions overlaid onto your image.   To enable a caption click its checkbox and a caption editor dialog (see below) will appear.  To edit a caption that is already checked simply uncheck it then check it.

When you check a caption in the "Include Captions" section you get the following dialog:

Caption.gif (4902 bytes)

  1. Horizontal Position- Choose the horizontal placement of the caption.  If you want to specify the exact pixel location, choose the last radio button and enter the value in the text box.
  2. Vertical Position- Same as A but for vertical placement
  3. Text Color- choose the color of the text
  4. Background Color- select the first radio button to specify the background color of the text.  In this case the text will have a solid rectangular background of the chosen color.  If you choose "Transparent" then the text will appear directly on the image.  Example:

    textmode.gif (76654 bytes)

  5. Font- brings up the standard system font selector dialog to choose the font and size for the text.
  6. Caption- Edit the text of the caption.  You can use the percent character "%" with letters to get various timestamp formats:
    %a -  Abbreviated weekday name
    %A -  Full weekday name
    %b -  Abbreviated month name
    %B - Full month name
    %c - Date and time formatted for locale. (Example in U.S.A: "01/01/99 12:54:25")
    %d - Day of month as number (01 31)
    %H - Hour in 24-hour format (00 23)
    %I - Hour in 12-hour format (01 12)
    %j - Day of year as decimal number (001 366)
    %m - Month as decimal number (01 12)
    %M - Minute as decimal number (00 59)
    %p - Current locale's A.M./P.M. indicator for 12-hour clock
    %S - Second as decimal number (00 59)
    %U - Week of year as decimal number, with Sunday as first day of week (00 51)
    %w - Weekday as decimal number (0 6; Sunday is 0)
    %W - Week of year as decimal number, with Monday as first day of week (00 51)
    %x - Date representation for current locale
    %X - Time representation for current locale
    %y - Year without century, as decimal number (00 99)
    %Y - Year with century, as decimal number
    %z, %Z -  Time-zone name or abbreviation; no characters if time zone is unknown
    %% - Percent sign


You can use "Save Settings" under the File menu to save all the settings which will be restored automatically every time you start the program.   Note:  The settings provided in the various capture device specific dialogs (Source, Format and Display) are not saved.  Whether these values are saved or not appears to be device specific and not within WebCam2000's control.

Minimize to Notification Area

Once you've set the server up and are happy with the images it is capturing you can minimize it to get it out of the way.  An icon will appear in the System Tray that displays the status of the image server:

weboff.gif (108 bytes) - a little video camera alone means the server is off so no images will be served
webon.gif (173 bytes) - a video camera with a globe means your camera is on The Net and live to the world.

Double clicking the tray icon will restore the window to its normal size; left clicking on the icon allows you to control WebCam2000 through a popup menu.


If no capture device is selected but the server is on, the image in the file "capoff.bmp" will be served to people who contact your server.  Note that the server must be on in order for "capoff.bmp" to be served. You can replace this file with any bitmap file you like of any dimension.  If WebCam2000 is configured to serve JPEG images, "capoff" will be automatically converted to a JPEG image.  This way you can take your camera offline temporarily  but keep visitors informed via a message.   The included "capoff.bmp" contains a plug for the WebCam2000.

Using Multiple Cameras

If you have multiple cameras, you must launch multiple instances of WebCam2000 and specify which configuration to use on the command line.

You can create a new configuration, by starting WebCam2000 with the command-line parameters:

/config configuration-name

Where configuration-name is any name you wish. Configure your camera however you wish, and then use the File menu to save your settings.

Example: If you have three different cameras, you could make three shortcuts to WebCam2000 with the following command-lines:

$Id: webcamdoc.html,v 1.7 2004/02/01 05:50:15 Jeffrey Exp $