WebCam

 

Download

WebCam is a webcam viewer, still and time-lapse capture application. I originally wrote it to capture time-lapse views of the sky. Honestly! I thought; it would be cool to have moving cloudscapes. As it happens, my wife liked to use it to watch our daughter in our back-yard while still in the house. I first looked for a suitable application on-line but they were all too expensive given the functionality. My first version used older Video For Windows and WIA interfaces but that was a dead end. This version uses MicrosoftTM DirectShowTM for video input, WindowsTM GDI+ for still image output and Windows MediaTM services for video file output. WebCam supports DirectShow capture sources. I've only tried it with webcams but it should work with any compatible source (e.g. a video capture or TV card). While a camera is selected WebCam will show live video in the window (see the image on the left, WebCam showing the view from my front yard - it's not my best webcam).

WebCam can optionally capture a JPEG image at a fixed period. The output filename and location can be configured as can the capture interval. In addition, WebCam can rotate a configurable number of captured images at a configurable interval, e.g. keep the last six images at ten minute spacing.

WebCam also optionally supports the generation of a Windows Media Video file from captured frames. The output path and filename are configurable, as is the interval between captured frames. The video file quality can be configured as well. You can even specify a minimum signal level (brightness) as a percentage of the brightest white. This allows for video frame capture when it is bright enough for something to be visible, e.g. at stop capturing at night.

FEATURES

  • Written in C++ using MFC
  • Supports DirectShow capture sources
    • Source settings configurable using the source driver's UI
  • Still capture from live stream and using Windows GDI+ for file generation
  • Time-lapse video in Windows Media Video format
  • User configurable (See right):
    • Can load at startup
    • Output directory
    • Output filename
    • Capture interval
    • Still specific settings:
      • Number of images to keep
      • Period between kept images
    • Time-lapse specific settings
      • Pre-existing file behaviour (not really implemented yet)
      • Minimum frame brightness to use
      • Video file quality
  • Independent still and time-lapse capture options
  • User selectable output quality (for output formats that support adjustable quality

ENHANCEMENTS BEING CONSIDERED

KNOWN PROBLEMS

For some reason the daily rename/restart of video capture stops working after a while. I did find while developing the rename functionality that every time I restarted the video (at the beginning of each day) the new video file would have the same creation date as the previous one. This despite the original file having been closed and renamed. I worked around that by creating the video file directly and doing a forced reset of the creation date. Looking at the video file when the rename functionality has stopped working I see that the creation date on the video file is the day before it should be.

REQUIREMENTS

WebCam should work on any version of Windows that supports DirectShow, Windows Media version 8 and GDI+. A DirectShow compatible video capture source is required.

 

LICENSE

WebCam is provided as-is with no warranty whatsoever. User accepts all responsibility for the results of any use or mis-use of WebCam. User accepts responsibility for respecting the copyright on any source used. WebCam may not be distributed without permission from the author. An e-mail address for the author is provided on the downloads page (it's written in long hand in the top paragraph).

NB: The minimum capture intervals are long enough and the output formats limited enough that there wouldn't be much value in capturing much more than a webcam.

 

DOWNLOAD

By downloading WebCam you acknowledge acceptance of the license above. The current version of WebCam is 1.4 Build 6:

Download  MD5: 8c66d4809b5015f0a467f12c7eef7aef

 

HISTORY

08/15/2004 1.5.7
  • Proof that no-one is using WebCam! If you had installed it you would see it crash when you load it! LOL, just goes to show I missed a test case. I always tested when I already had registry configuration WebCam would load at launch. If there is no registry configuration it crashes! Sorry! This build is an initial fix, that works. I'll do a full code review over the next few weeks.
08/08/2004 1.4.6
  • Couldn't resist adding an option to make the options dialog transparent so that you can see the live video through it. I set the alpha value pretty high (90%) so that the dialog controls aren't too hard to read.
07/01/2004 1.3.5
  • Looks like the deadlock bug is fixed so I profiled the code.
  • Modified the image capture code to use memory rather than an intermediate bitmap file
  • Modified some areas that were not optimally implemented
06/26/2004 1.2.3
  • A final shot, hopefully, at fixing the bug that caused random cases of the stream stopping and the UI locking up. The deadlock happens when a frame is being captured at the same time as the stream is being stopped. In that case the frame capture is attempting to synchronously notify the a window that the new frame is available but the window it notifies is the same as is attempting to stop the stream. The stream can't be stopped until the current frame capture is complete but the current frame capture can''t complete until the stream is stopped - deadlock. It should be fixed now that I've made the frame capture asynchronously notify the window that the frame is available.
06/21/2004 1.2.2
  • Fixed a deadlock that happens when the video stream is restarted after a stall and the next stall detection cycle happens before receipt of the first frame from the restart. This resulted in the stream still looking stalled even though it was in the process of restarting, an attempt to stop it again for a second restart caused a deadlock in DirectShow.
  • Modified the source intialisation code to do a better job of selecting the best resolution supported by any source.
  • Changed the look of the options dialog.
06/13/2004 1.1.1
  • Added a method of detecting and recovering from a stalled source stream
03/28/2004 1.0.1
  • Initial version