What is camsource?
In short, camsource grabs images from a video4linux device and makes them
available to various plugins for processing or handling. It features a
modularized and multithreaded design to offer a large amount of flexibility.
A server plugin runs in its own thread, which makes it possible to use the
same grabbed frame for several purposes at the same time. There are also
filter plugins, which can be daisychained to create useful and no-so-useful
effects in images. The configuration happens through an xml config file,
hopefully making configuring camsource an easy task.
News
- May 1 2003 - Camsource 0.7.0 is here! Lots of new features and fixes, almost too many to list here.
For details please consult the ChangeLog.
Download links here
- Dec 17 2002 - After yet more time of little or no activity, camsource 0.6.0 has arrived. People
using bttv and having trouble with previous versions should try this one. Download
links, Changelog
- Nov 14 2002 - After a long time of no activity, released camsource 0.5.1.
Download
links, Changelog
- Oct 7 2002 - Released camsource 0.5.0.
Download
links, Changelog
- Sep 27 2002 - Released camsource 0.4.0.
Download
links, Changelog
- Sep 26 2002 - Having problems compiling camsource with libxml1 or
gnome-xml? Try the latest
snapshot tarball and see if it fixes it.
- Sep 24 2002 - Per request, added a feature to the filewrite and ftpup modules to allow grabbing a single
frame, then exit. This feature is activated by specifying a negative interval in the module's config. You can
download a current tarball with this feature.
- Sep 22 2002 - Released camsource 0.3.0.
Download
links, Changelog
- Sep 19 2002 - Released camsource 0.2.0.
Download
links, Changelog
- Sep 17 2002 - Made a patch against 0.1.0 to add a
config option to select the input channel
- Sep 16 2002 - Camsource 0.1.0 released. Download
links
Requirements
- Linux. Tested with version 2.4.19 and 2.4.20. Compiling also tested on 2.2.17.
- Hardware supported by
video4linux or video4linux
2.
This is usually a webcam, but
tv tuners could be supported as well. Tested with a Philips webcam
(actually a Creative Webcam 5 using the
pwc/pwcx driver). Reportedly also works with an Intel CS330 Create
And Share Cam and an Intel Pro Camera, both with the spca50x driver, as well as a Logitech Quickcam Web
and apparently cameras using the ov511/ov518 driver (this includes at least the Philips PCVC720K ToUcam XS).
Bttv grabber cards should work too (or at least some). Other hardware I dunno. Let me
know.
- Actually I lied in the previous item. You can also use it without any v4l hardware. Camsource can take input from
various sources, for example an x11 display by taking screen shots.
- libxml. Both version 1 (libxml)
and version 2 (libxml2) should work. Tested with libxml 2.4.22 and gnome-xml 1.8.17. Compiling also tested
with gnome-xml 1.7.3.
- jpeglib, probably in version 6b/62. No idea about other versions.
- Possibly a java applet for
viewing the image stream. See below for links.
Status
Currently included plugins are:
- The video4linux input plugin. This functionality was built into camsource
in versions 0.6.0 and earlier, but has been modularized in 0.7.0 and up. New
in 0.7.0 is also the capability to automatically adjust the camera's brightness
level (thanks to Nigel Roberts and Stefan Meyer).
- A plugin "wc_serv" providing compatibility with
webcam_server 0.30. You can use its java applet to view
the image stream from this plugin.
- A http mini-server plugin "http", which can serve the current
still frame to a web browser, as well as serve a
Mozilla/Netscape
compatible multipart jpeg stream. This stream can be viewed without plugins
in said browsers, or with a java applet such as
Cambozola
in any browser (read: IE). This multipart jpeg stream is compatible to
what Camserv 0.5.0 produces.
Camserv also includes a javascript snippet to turn a still image into
an animation. The http server also supports basic http authentication,
so you can password-protect those important live pictures (new in 0.7.0).
- A "filewrite" module, which periodically saves a new snapshot jpeg
to a local file.
- The "ftpup" module, which works like the filewrite module, only that
the snapshot is uploaded to an ftp site.
- The "flip" image filter, which lets you flip an image horizontally
or vertically. Useful if your webcam produces mirrored images like mine.
- The "resize" image filter, doing simple nearest-neighbor image resizing.
The idea is to make the hardware grab images at the maximum size, and use
the resize filter to scale the image down to the required size. This lets
you create several versions of the same image stream, at different sizes.
- An image filter capable of rotating the image left or right by 90 degrees.
If you want to rotate the image by 180 degrees, use the "flip" filter.
- A text overlay module, which is able to display either a fixed text
(possibly containing a timestamp) in the image, or read the text to display
from a local file or from a command's stdout.
- In case your camera produces frames in an BGR palette while the driver
detects an RGB palette (or the other way round, haw haw), there's the
"rgbbgr" filter to fix this. Also includes the "bw" filter to convert
a color image to grayscale.
- (New in 0.7.0) A module to feed the current image data back to
a vloopback device.
This feature should still be considered experimental. Credits go to Cyril Rocheteau
for this.
- (New in 0.7.0) An x11/xwd input plugin. This lets you use an x11
display as an input source to camsource, making it possible to serve live
screenshots to viewers, possibly even as a live stream. When combined with
the http authentication feature of the http module, you could use this
to see what's going on on your desktop at home from anywhere in the world.
The external "xwd"
program is required to do this though (which is part of the core xfree86
distribution).
Check the current
README
file for additional info.
Downloads, links and stuff