Windows platform PRODUCTS


CCS is a project I wrote because I couldn’t find any free software that would do what I wanted.  Specifically I needed to be able to attach multiple inexpensive web cameras to various computers in my home and serve images from them over the web.  Basically I wanted to make a cheap home security video system.

CCS consists of two pieces.  The first is a small compact web server.  This web server is not usable as a production server.  You can however use it to play around with it and test things.  I originally intended to use this minimal server to serve the camera images however it became clear that it was simply not stable enough to use in a production system.  I’ve left it in the release because I think it is kind of neat and I hope someone will find it useful.  For a production system I recommend you use Apache 2.2 or later and PHP 5.  You don’t need PHP if you don’t want to do anything but serve up a single image from each camera.

Here is a screen shot of the only screen the web server has. VERY simple.  Just set the listening port the directories and, if you want the pages secured, a user name and password.

Custom Camera Server

January 17, 2011

The second and in my opinion most important part of CCS is the camera process.  You run one camera process for each camera that you want to capture images from.  It can take a lot of processing power to deal with a camera.  The amount of resources each camera process uses on your computer will depend on many things such as image size, capture interval and image post processing.

If you will be running multiple cameras on a single computer I suggest you keep the size of the images captured below 640x480 but you can play around to see what works for you.  The configuration is fairly straight forward.  Below is a screen shot of the camera configuration tab in the camera process.

In the above screen shot there are two Logitech C310 web cameras attached to the system.  The first one has been selected and an image capture size of 640x360 has been selected.  This configuration also has the Image Series capture type selected.  You use an image series if you want to keep all of the images the camera captures.  If you only need the most current image seelct Single Image and that single image file will be overwritten each time the camera catures a frame.  Image Series is usually used with the On Motion Only check box.

In the Series Configuration area the Pad Filenames With Zeros check box is checked.  This causes the captured image filenames to be something like capture0000000101.png instead of capture101.png.  This is useful if you are using the captured images to make a time lapse video with QuickTime or other software.

The Motion Detection Threshold slider is used to determine how much movement has to occur in the frame before the camera process capture a frame.  The further left the slide is set the less movement has to occur to trigger a capture.  It is important to understand that even if there is a large amount of movement the process will not capture a frame faster than the Capture Interval.

The Storage Directory is where you want the captured images placed on your computer.  If you are going to serve the images over the web you may want to set this to a location inside of the web server content root directory.

The Storage Filename is the part of the name before the file extension to use when saving a captured image.  The default is “capture” so the captured images would look like capture.png.  The File Format lets you choose what format the capture files will be in.

In the Capture Interval area there are two settings.  The first is Capture Every n Seconds.  This setting tells the program how often a new image should be captured from the camera.  The second setting is the On Motion Only check box.  When this is checked the program will only capture a new frame if there is movement at the time of the Capture Interval.

The setting aboved can be saved and reloaded.  The next tab, Image Processing, can be used to apply effects to the images coming from the camera.  Use these sparingly as they take a lot of processing power.  You can turn them on in combination and control the order in which they are applied to the camera image.

The third tab, Camera, shows what the camera is actually seeing once you have started the camera with the start button on the Configuration tab.  Below are two examples of this tab.  In the second image you can see some red crosshatching around my fingers.  This is because the program has detected my fingers moving and it is showing you where the motion occurred.  The red areas are not saved in the captured images.

CCS runs only on MS-Windows platforms and you must have the .NET 4 framework installed.  If you don’t have it installed you will get an error message when you try to run the programs.  You can find the installation for the .NET 4 framework here.

Custom Camera Server Download

Just download the CCS zip file above and extract it to your computer.  The programs are in the bin subdirectory.  The camera program can be given a parameter to tell it what configuration file it should use.  This makes restarting the cameras easier.  I suggest you configure each camera and save the configurations.  Next create a shortcut for each camera by right clicking on the camera.exe and file and choose create shortcut.  Then you can right click on each shortcut choose properties from the menu and add the path to the configuration file to the target box.  Now when you double click on the shortcut the configration will automatically load and start the camera.