It has been a long time since a new release of dvgrab. Dan Dennedy has been slowly adding the improvements that have been developed for Kino as they matured. This version also adds JPEG output with deinterlacing and scaling options developed upon request for a donation (thanks!).
This release is a major new release prepared by Dan Dennedy that pulls in
much of what improved upon in Kino plus more.
AVI file correctness and compatibility has been improved upon.
1.1 beta releases allowed one to specify small and large indexes.
This is no longer required; it is automatic now based upon general
practice observed in AVIs created by other applications. Instead,
now there is a new --opendml option for use with type 2 DV AVI
OpenDML is a specification of AVI extensions created by Matrox in
collaboration with others and approved by Microsoft. OpenDML
introduced a new index structure, which dvgrab 1.1 called the
"large" index. Type 1 DV AVI (dv1) is inherently OpenDML,
and it contains a large index only. dvgrab 1.2 type 2 always contain
a small index, but OpenDML adds a large index to permit type 2 AVIs
greater than 1GB.
The main difference between a type 1 and type 2 file is that a type 2
contains a separate audio stream extracted from the DV. dvgrab 1.2
can use libdv (must be detected when compiled) to create this audio stream
instead of using internal routines. There are several advantages of
using libdv the most obvious being audio block error handling. Without
error handling, one can hear "bleeps" in the audio stream.
Raw DV capture has been improved to prevent corrupt files in the event of
a dropped firewire packet. Also, one can send raw DV to stdout instead
of to a file, so it can be used in pipes. This is especially useful with
smilutils. For example, one can preview video with libdv's playdv utility:
dvgrab - | playdv --no-mmap
The '-' file designation forces the format to raw overridding whatever
you specify; the other formats are not streaming formats.
Support for Quicktime has been added if libquicktime is detected when
compiled. Use "--format qt." It creates a separate audio track in twos
Support for JPEG has been added if jpeglib is deteced when compiled.
Use "--format jpeg" to save a series of sequentially numbered JPEG
still images. There are two number parts of the filename, the first number
is increments with each scene change while the second number increments
with each successive save. Use --jpeg-overwrite to continually update the
same file and not add any numbers to the file name stem you provide. The
JPEG option works nicely with the --every option.
There are several JPEG options you will find handy. First, is --jpeg-quality
followed by a number between 0 and 100; the default is 75.
--jpeg-deinterlace extracts one of the fields and doubles it for a cheap
form of deinterlacing. However, when used with the scaling options
--jpeg-width and --jpeg-height to reduce the resolution by 50%,
you can get perfect deinterlaced output. The scaling
options also allow one to compensate for the non-square pixels of DV.
For example, on NTSC, the following produces nice output for a webcam,
dvgrab --format jpeg --jpeg-deinterlace --jpeg-width 320 --jpeg-height 240
Due to code refactorization, all capture options work with all formats.
For example, previous versions of dvgrab did not support hardly any
options like --autosplit, --every, --timestamp, and --frames when used with --format raw.
A new capture option --size followed by a number in mega bytes, sets
the maximum file size of any captured file.
If all this were not enough; dvgrab 1.2 also supports capture using the
new dv1394 driver! By default and traditionally, dvgrab uses
raw1394; however, raw1394 requires an interrupt for each packet, which
can be too intense for some systems. dv1394 in kernel releases 2.4.21 or
recent linux1394.org Subversion snapshots drastically reduce the IRQ and
using kernel background threads and internal buffering. You must use the
--dv1394 option followed by the device file name to use dv1394 instead