fswebcam is a neat and simple webcam app. It captures images from a V4L1/V4L2 compatible device or file, averages them to reduce noise and draws a caption using the GD Graphics Library which also handles compressing the image to PNG or JPEG. The resulting image is saved to a file or sent to stdio where it can be piped to something like ncftpput or scp.
Latest version is fswebcam-20200725 tar.gz tar.xz
A public git repository is available here: http://github.com/fsphil/fswebcam
fswebcam-20200725 - Return a non-zero if the capture fails. - Add option to change camera timeout from default of 10 seconds. (James McCormac) - Add new Bayer palettes. (Eugen Hristev) - Add WebP output support. - Add option to dump raw frames to stdout. (Philipp Simon Schmidt) - Add option to limit number of times to loop. - Fix libgd 2.3.0+ issue where the font test always fails. (Ashley Dixon) fswebcam-20140113 - New method of iterating over all V4L2 controls for a device. (Tom Bürgel) - Fix: double free when both mmap and read fail. (Shayan Elhami) - Remove duplicate 'frame' in help text. (Grozdan) fswebcam-20110717 - Fixed crash when using --no-timestamp option. - Cleaned up a few small compiler warnings. - Fix pointer type in src_v4l2_set_fps() (hauptmech) fswebcam-20101118 - Enable libgd fontconfig support if avaiable. Default font is now "sans:10". - Add S561 compressed palette support. - Fix small memory leak in the logging system. - Add option to swap colour channels in the image. fswebcam-20100622 - Add basic Y16 support. (16-bit greyscale, gets shifted down to 8-bit) - A few fixes for the V4L1 source and other areas. (Pete Zaitcev) - Format conversions have been separated out from fswebcam.c. fswebcam-20100405 - Fix typo and add missing code for parsing --fps option. (Luca Niccoli) fswebcam-20100401 - LDFLAGS should come after object files. (Thomas Spahni) - Don't display banner if the font fails to load. (Luca Niccoli) - Fix typos. - Added SGBRG8 and SGRBG8 palette types (for V4L2 sources only). - Added --fps option. fswebcam-20091224 - Fix memset() error in src_v4l1.c introduced in yesterdays release. (Thomas Spahni) fswebcam-20091223 - Stop configure warning about datarootdir being ignored. - Updated the videodev.h and videodev2.h header files. - Corrected a number of memory leaks and a potential buffer overflow. (Thomas Spahni) - Escape minus signs in the man page. (Luca Niccoli) - Removed debian/ subdirectory. (Luca Niccoli) - Removed spec and ebuild files. - Free mmap()'s on error. - Stop skipping frames on error. fswebcam-20070108 - Fixed R<>B channel swap when using [M]JPEG or PNG. fswebcam-20061210 - Added syslog support via log command. - Added pidfile command for saving the process ID (PID) to file. - The output command has been replaced by the log command. - Added framedump command for dumping the raw captured data to file. - Added exec command for running external programs after capture. - Removed unnecessary malloc.h includes, replaced with the more portable stdlib.h where not already included. (Alexander Logvinov) - Fixed small bug in and simplified the configure script. - Fixed a bug where fswebcam wouldn't close a device if its file descriptor was equal to zero. Affected RAW and V4L2 sources. (Dmitry Saychenko) - The localtime command has been replaced by the new gmt command. The local timezone is now used as the default. - Added offset command to offset capture times in loop mode. - Added file-based configuration support. - Updated argument parser. - Renamed RGB24 and RGB32 to BGR24 and BGR32, and added the real RGB24 and RGB32 formats. - Added signal handler for gracefully exiting loop mode, reloading file-based configuration or for immediately capturing an image. - Don't force an interlaced mode when using V4L2 source. - Fixed RAW source to fail when no more data can be read from source. - Added RAW source to the man page. fswebcam-20060604 - Even more configure fixes. - Added NV12MB palette type (for raw source only). - Added raw source support. - V4L1/V4L2 header files included with source. - More V4L2 configure fixes. (Gary E. Miller) fswebcam-20060424 - Improved V4L2 detection in configure script. - Warn if there have been unsaved changes made to the image. - Fixed a number of small message formatting errors. - Fixed man page formatting. - Be more verbose when adjusting to a new resolution. (Alexandre Bourget) - Added MJPEG palette type. fswebcam-20060415 - Many other small fixes and changes. - Insert DHT segment if missing from MJPEG frames. (Scott J. Bertin) - Properly sets up resolution for V4L1 sources. - New autoconf based configuration system. - Added read support to V4L1 and V4L2 sources (if mmap is unavailable), and an option to force read. - Loop and background modes, allowing the program to run as a daemon. - New job queue allows multiple images to be output from a single run, each with different attributes. - Filenames are now processed by strftime(). - Inputs can now be specified by name. - Tweaked the deinterlacer a bit more. - Timeout when devices take too long delivering a frame. - Added support for YUYV and UYVY colour formats. - Added support for the "Bayer Encoding" colour format. (V4L2 only) - New source system added, allowing for more source types. Including: v4l2 - Captures images using the V4L2 API. v4l1 - The old V4L1 capture code has been moved here. file - Reads a JPEG or PNG image from disk. test - Draws colour bars. - Release mmap before device is closed. - Changed some char's to int8_t's for platforms where char may be unsigned.
motion | A software motion detector. It grabs images from video4linux devices and/or from webcams. |
xawtv | A small suite of video4linux related software, with video recording capabilities and serveral useful command line tools - including a simple webcam tool. |
Cheese | A GUI GStreamer-based webcam app. |
-Philip Heron <phil@sanslogic.co.uk>