sanslogic | Images | Webcam | fswebcam | HAB | SSDV02-Oct-2014

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

Download

Latest version is fswebcam-20140113 tar.gz tar.xz

A public git repository is available here: http://github.com/fsphil/fswebcam

What's New

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>