Jon McCain
  - software - articles - about - contact  

Linuxcam

Linuxcam is a linux program which grabs a picture from a cam (or any video4linux device) and saves it as a .jpg file. It can then ftp it to your web site.

Features:
   * command line tool which can run in background
* does not require X
* built-in ftp support
* can archive images to local disk
* built-in scheduler
* start/stop scripts
* caption of any color,at any position
* multiple cams
* image settings such as contrast,hue,color,brightness
* capture a single image or loop based on a delay

1/22/2015 - Note: This program is actually old and may not work on the latest version of linux. The kernel has undergone many drastic changes since this program was written. I no longer have a dedicated linux machine and any time I have messed with linux has been in a virtual machine. But feel free to try it.


Supported hardware
Currently all webcams that are supported by the Linux kernel and TV cards are supported fairly well. Anything that supports video4linux should work. For USB cams you will need a fairly recent kernel, like 2.6.x or 2.4.x or >=2.2.18. See www.linux-usb.org for more information on status, supported hardware and instructions of usb devices. You will need to enable usb and video4linux and v4l compatibility in your kernel. And of course you will need the kernel module for your cam.

This has been tested on Debian 3.0r2 (aka Woody) and Debian 4.0r0 (aka Etch) with a creative web cam 3 (ov511 driver) and an intel pc pro cam (spca50x driver for Woody w/ linux 2.4 and gspcav1 for Etch w/ linux 2.6.18). Neither of my cams have video4linux2 drivers so I don't know if this program will work with full v4l2.  Linuxcam still uses the video4linux API.

Download
Lastest version is  0.57.
This version works with kernel 2.6.x and 2.4.x
linuxcam-0.57.tgz (source)
linuxcam_0.57-1_i386.deb (debian binary)

Previous version is 0.56.
This has been tested on Debian Potato 2.2r6 and Woody 3.0r2 with a creative web cam 3 (ov511 driver) and an intel pc pro cam (spca50x driver, experimental). It will not work with kernel 2.6.x  due to changes to video4linux2.
linuxcam-0.56.tgz (source)
linuxcam_0.56-1_i386.deb (debian binary)

Note: If you are upgrading from verion 0.54 or below via the .deb, copy your /etc/linuxcam/linuxcam.conf to a different name or else it will get erased.

Install
Unpack the tarball then cd into the linuxcam directory.
# make clean
# make
# make install

You will need libjpeg-dev to compile it. Debian comes with it.

News
5/2/2002 - Released first version to the public (0.51)
9/13/2003 - Released version 0.52 - fixes compile problem on Red Hat systems with vsprintf function
1/22/2004 - Released version 0.53 - Added man pages and debian binary version
2/18/2004 - Released version 0.54 - added datetime and preaction and postaction to logfile
3/3/2004 - Released version 0.55 - replaced ftp with ftplib so can access ftp server directly
               ,catch SIGHUP and SIGTERM signals so can exit cleanly
               ,handle schedule crossing midnight properly
               ,renamed default .conf to linuxcam-sample.conf so future upgrades via .deb would not remove linuxcam.conf
8/5/2005 - Released version 0.56 - added ability to execute a command after an image is grabbed
7/16/2007 - Released version 0.57 - changed to use read() instead of mmap() so can work under kernel 2.6.x (you need v4l compatibility turned on)
               ,moved "grabbed" message from add_text to create_jpg in case a caption is not used
               ,added yuv420p support
               ,added a swaprgb flag
               ,fixed to compile under gcc 4.1 without all the warnings


History......Or Why I Did It
There are many image capture programs for linux out there, so why do we need another one? Well I tried many of them. But I just could not find one that had everything I wanted. One would have ftp but no brightness,hue,etc controls. Another had hue,etc but no ftp or archive and the font for the caption was too big. Another had all of this but required X even in command line mode. Others wouldn't compile because they depended on so many different special libraries. Nobody seemed to have a built-in scheduler. Or the ability to define multiple webcams via a single config file.

So liunxcam was born. Videodog matched the best so I started with it. It was a simple stand-alone program that did not depend on anything but libjpeg. I cut out all of the effects since I did not care about using them. It lacked ftp abilities and I did not like it's font. I took the ftp and font from xawtv. Then I added other features I wanted such as archiving,start/stop actions,a scheduler,etc.

That's the beauty of open source code. When something does not quite meet your needs you can modify it or use it to create your own program to make it do what you want.