Summary: Major update
1. The nightly movie is now created as an NTSC-DVD
ready MPEG2 file. This allows the movie(s) to be
easily moved to DVD for archival, with no transcoding
necessary. As a result, there have been some minor
changes to messages logged, which also clarified
what was actually going on.
2. In addition to IP cameras that allow retrieval of
IMAGE.JPG as the current image, the script has added
support for and V4L device that works with the webcam
utility (part of the xawtv package). To specify a
V4L device, replace the IP address of the camera with
a fully qualified path (i.e., a file name starting
with a slash) to the webcam configuration file. A
sample webcam configuration file, is included with
the distribution as "dcs1000w.webcamrc".
3. The IP address or webcam configuration file is now
passed to the user dcs1000w-error handler (if it
exists), so device specific error handling can
occur. The sample error handler has been updated
to reflect this.
4. While using the ImageMagick convert utility to
timestamp the image, the image is enhanced for
improved low-light visibility. This makes the image
grainy in low-light situations, but at least you can
see what is going on. Also, the date/timestamp is
added to the image comment. This can then be
extracted for processing using the ImageMagick
identify utility. For example:
$ identify -verbose current.jpg | grep Comment
Comment: Tue Aug 16 15:31:37 EDT 2005
5. The brief loss of visibility due to the processing
if the image capture directories at midnight has
been removed. This is accomplished with a new
directory structure in the image capture directory
that allows the directories to be renamed instead
of moving the files. In addition, the long
running deletion of the previous days images is
now performed asynchronously, overlapped with the
movie creation. As a result visibility and capture
is now performed 24x7x365 without interruption.
For those upgrading from a prior release, create
a "today" directory in the image capture directory,
and move all existing camera* files into it. Do
not move the "current.jpg" and "last.jpg" symbolic
links. They will be automatically updated when
the script is restarted.
6. There has been a general code cleanup, to improve
the readability and maintainability of the code.... read more
Summary: Minor fixes
1. The messages generated have been made more clear.
2. An additional check was added before creating a symlink
for the current image.
3. Since corrupt images transferred from the camera are a
fact of life, the message indicating that this has
occurred has been made a debug message.
4. Multiple files are now checked for a possible date change,
to protect against a deletion or processing delay. ... read more
Summary: Stable release!
This is the first stable release. Some minor changes
were made since the last release candidate to insure that
data is never lost:
1. The ffmpeg.log file is now always created, in the movie
directory. In addition, after the movie processing is
completed, the ffmpeg.log is scanned for the number of
images processed. This allows you to confirm that the
processing was successful. For example:... read more
Summary: Bug fix update, version 0.91
This is the second release candidate. If no additional
problems are encountered, this release will be renamed
1.0, and become the first stable release. Changes:
1. An additional hole in the date change detection was
2. Better handling of restart processing, when movie
creation was in progress at the time of the interrupt.
3. A temporary "Please Standby" image is now created during
image file cleanup. The current.jpg symlink is pointed
at this file, so image viewers don't see the symlink
as broken for a few seconds. Opera, for example,
complained (error dialog) when this happened.... read more
Summary: Major feature update, version 0.90
The version number jump reflects that this release is a 1.0
release candidate. Significant changes:
1. Continuous capture is now performed. The daily creation
of the movie is now a low priority background process and
it occurs concurrent with the image captures. On slow
machines, the movie creation can take over an hour, which
would create a gap in the captures. This no longer occurs.... read more
Summary: Bug fix, cleanup, version 0.55
1. Reformatted long lines for readability
2. If an image capture results in a corrupted JPEG (RF noise
or premature termination due to firmware error), skip the
corrupted image. The next successful image capture will
take its place. This corrects the problem ffmpeg had when
an image was missing from the sequence.
I created a project home page with a sample movie (50 second time-lapse). This way, you can see the quality of the final product. Note that the camera was set to 640x480 resolution with compression set to "very low".
1. A misplaced option on the ffmpeg command caused the
created movies to only contain one frame per minute
of the original captures.
2. Support for a user exit on an error retrieving images
has been added. The program
will be executed when an error is detected and logged if
it exists. A sample routine that uses X10 units to power
cycle the camera is included.
dcs1000w Overall improvements, version 0.53
1. Remove movie creation on interrupt
This was unnecessary with the restart code.
2. Display version on startup
Useful to make sure you're running the correct release
3. Write messages to system log too
That way, log monitors (like swatch) can perform automated
recovery operations, page you, whatever.
4. Intercept additional signals
No matter how the script is killed, it should clean up
the temporary files it creates.... read more
Summary: Initial public release, version 0.52
I had purchased the D-Link DCS-1000W as a present for myself. Since I only use Linux, the included software was of no value. I wanted to use the camera for security, and occasionaly for other projects. For example, I had recently watched a caterpillar metamorphize into a Luna moth. It would have been neat to capture the whole process in time-lapse. Since I couldn't find any existing software to do this I created this Bash script.