VOOZH about

URL: https://www.sanslogic.co.uk/fswebcam/

⇱ sanslogic - fswebcam


sanslogic | Images | fswebcam | hacktv | HAB | SSDV | Mastodon29-Jun-2026

fswebcam

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 where it can be piped to something like or .

Download

Latest version is tar.gz tar.xz

A public git repository is available here:

What's New

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.

Links

motionA software motion detector. It grabs images from video4linux devices and/or from webcams.
xawtvA small suite of video4linux related software, with video recording capabilities and serveral useful command line tools - including a simple webcam tool.
CheeseA GUI GStreamer-based webcam app.

-Philip Heron <phil@sanslogic.co.uk>