other versions
DVGRAB(1) | General Commands Manual | DVGRAB(1) |
NAME¶
dvgrab — Capture DV or MPEG-2 Transport Stream (HDV) video and audio data from FireWireSYNOPSIS¶
dvgrab [options] [base] [-]DESCRIPTION¶
dvgrab is a program that captures DV or HDV (MPEG2-TS) video and audio data from digital camcorders via FireWire (IEEE 1394). The data is stored in one or several files and can later be processed by video editing software. dvgrab can remote control the camcorder but it does not show the video's content on screen. dvgrab also supports UVC (USB Video Class) compliant DV devices using Linux kernel module uvcvideo, which is a V4L2 driver. In this mode, there is no AV/C VTR control and therefore interactive mode is almost useless. interactive feature is The base argument is used to construct the filename to store video data: base-num.ext. num is a running number starting from 001, and ext is the file name extension specifying the file format used, e.g. avi. A different naming scheme is used whenever the -timestamp, -timecode, or -timesys is given (see below). If base is a full filename including extension, then dvgrab attempts to determine the output file format from the extension, but it still inserts num. The default value for base is "dvgrab-". If you specify a trailing '-' then the format is forced to raw DV or HDV and sent to stdout. dvgrab will also output raw DV or HDV to stdout while capturing to a file if stdout is piped or redirected. You can use dvgrab's powerful file writing capabilities with other programs that produce raw DV or HDV. Using the -stdin option and if dvgrab detects that it is on the receiving end of a pipe and it is not in interactive mode, then it will try to read raw DV or HDV on stdin.OPTIONS¶
Options longer than a single character can be specified with either one or two leading hyphens. Also, you can use a space character or equal sign to separate the option name and its argument value.- -a[num], -autosplit[=num]
- Try to detect whenever a new recording starts, and store it into a separate file. This can be combined with the -frames and -size options, and a split occurs whenever a specified event arises. Autosplit is off by default.
- num is optional. Without it, dvgrab
determines when to split using a flag in the stream or a discontinuity in
the timecode, where timecode discontinuity is anything backwards or
greater than one second. If you set the optional argument num you
can set the time sensitivity in seconds and ignore the stream's
new-recording flag. This basically lets you split on larger time
increments such as minutes or hours. For example, -autosplit=3600
splits the recording whenever there is a gap in the recording that is an
hour or longer.
- -buffers num
- The number of frames to use for buffering device I/O
delays. Defaults to 100.
- -card num
- Tells dvgrab to receive data from FireWire card
num. The default behaviour is to automatically select the first
card containing the first discovered camera If used in conjunction with
-noavc, then no bus probing is performed If used in conjunction
with -guid hex, then only the specified bus is probed for
node with guid hex.
- -channel num
- Isochronous channel to receive data from. Defaults to 63,
which is pretty much standard among DV camcorders these days. If you
specify anything different, no attempt is made at this time to tell the
device which channel to use. You must have some manual way to tell the
transmitting device which channel to use.
- -cmincutsize num
- This option is used to start the collection if a cut occurs
num megabytes (actually, mebibytes) prior to the end of the
collection. This option reduces small files being created when using the
-csize option. When a new collection is started in this manner, the
amount of free space in the previous collection is stored, and while the
following clips fit within the previous collection, the new collection
starting point is reset.
- -csize num
- This option tells dvgrab to split the files when the
collection of files exceeds num . This option is used to create
collections of files that fit perfectly into num megabytes
(actually, mebibytes) (i.e. for archiving onto DVD). When this occurs, a
new collection is started (See also the -cmincutsize option)
- -debug type
- Display HDV debug info, type is one or more of:
all,pat,pmt,pids,pid=N,pes,packet,video,sonya1
- -d, -duration time
- Set the maximum capture duration across all file splits for a single capture session (multiple sessions are possible in interactive mode). The time value is expressed in SMIL2 MediaClipping Time format. See http://w3.org/AudioVideo/ for the specification.
- Briefly, the formats are:
- XXX[.Y]h, XXX[.Y]min, XXX[.Y][s], XXXms,
- [[HH:]MM:]SS[.ms], or smpte=[[[HH:]MM:]SS:]FF.
- -every n
- This option tells dvgrab to write every n'th
frame only (default all frames).
- -f, -format dv1 | dv2 | avi | raw | dif | qt | mov | jpeg | jpg | mpeg2 | hdv
- Specifies the format of the output file(s). File format can
also be determined if you include an extension on the base name.
The following extensions are recognizable: avi, dv, dif, mov, jpg, jpeg,
and m2t (HDV).
- dv1 and dv2 both are AVI files with slightly
different formats. dv2 stores a separate audio track in addition to
the DV video track, which is more compatible with other applications.
dv1 only stores a single, integrated DV track since the DV format
natively interleaves audio with video. Therefore, while dv1
produces smaller output, some applications won't grok it and require
dv2 instead. dvgrab is capable of creating extremely large
AVI files—well over 2 or 4 GB—however, compatibility with
other tools starts to decrease over the 1 GB size.
- raw stores the data unmodified and have the .dv
extension. These files are read by a number of GNU/Linux tools as well as
Apple Quicktime.
- dif is a variation of raw DV that names files with a
.dif extension so they can be more immediately loaded into MainConcept
MainActor5.
- qt is Quicktime, but requires that dvgrab be
compiled with libquicktime.
- jpg or jpeg is for a sequence of JPEG image
files if dvgrab was compiled with libdv and jpeglib. This option can only
be used with a DV input, not HDV (MPEG2-TS).
- mpeg2 or hdv is for a MPEG-2 transport stream
when using, for example, a HDV camcorder or digital TV settop box.
- Defaults to raw
- -F, -frames num
- This option tells dvgrab to store at most num
frames per file before splitting to a new file, where num = 0 means
ulimited. The corresponding time depends on the video system used. PAL
shows 25, NTSC about 30 frames per second.
- -guid hex
- If you have more than one DV device, then select one using
the node's GUID specified in hex (hexadecimal) format. This is the
format as displayed in /proc/bus/ieee1394/devices or the new kernel 2.6
/sys filesystem. When you specify a GUID, dvgrab will establish (or
overlay) a peer-to-peer connection with the device instead of listening to
the device's broadcast. If you supply a hex value of 1, then
dvgrab attempts to discover the device as well as setup a
peer-to-peer connection. This is especially handy with MPEG2-TS settop
boxes, which typically require a connection management procedure to start
transmitting.
- -h, -help
- Show summary of options.
- -I, -input file
- Read from file instead of FireWire. You can use '-'
for stdin instead of using -stdin.
- -i, -interactive
- Make dvgrab interactive where single keypresses on stdin
control the camera VTR or start and stop capture. Otherwise, dvgrab runs
in session mode, where it immediately starts capture and stops as directed
or interrupted (ctrl-c).
- -jpeg-deinterlace
- If using -format jpeg, deinterlace the output by
doubling the lines of the upper field. This is a cheap form of deinterlace
that results in an effective 50% loss in resolution.
- -jpeg-height num
- If using -format jpeg, scale the output of the
height to num (1 - 2048).
- -jpeg-overwrite name
- Write to same image file for each frame, instead of
creating a sequence of image files.
- -jpeg-quality num
- If using -format jpeg, set the JPEG quality level
from 0 (worst) to 100 (best).
- -jpeg-temp name 10
- Use a temporary file to create the jpeg, rename the file to
the target file name when done. Useful when using dvgrab with
-jpeg-overwrite for generating a webcam image.
- -jpeg-width num
- If using -format jpeg, scale the output of the width
to num (1 - 2048).
- The JPEG scaling width and height must be both either less
than or greater than the normal frame size. For example, the scaled size
of 700 wide by 525 high yields a nice 4:3 aspect image with square pixels,
but it is illegal for NTSC because 700 is less than the normal width of
720 while the height is greater than the normal height of 480.
- Since DV uses non-square pixels, it is nice to be able to
scale to an image based upon a 4:3 aspect ratio using square pixels. For
NTSC, example sizes are 800x600, 640x480, and 320x240. For PAL, example
square pixel sizes are 384x270 and 768x540.
- -jvc-p25
- Remove repeat_first_field flag and set frames per second to
25 to correct a stream recorded in JVC's HDV P25 mode.
- -lockstep
- Align capture to a multiple of -frames based on
timecode. This is useful for redundancy, when more than one machine is
capturing from the same FireWire device, and you want to ensure each file
contains the same footage. To ensure the files from each machine have the
same name use the -timecode option and the same base name.
- -lockstep_maxdrops num
- If num frames are dropped consecutively, then close
the file and resume capture on the next lockstop interval. If num
is -1, then permit an unlimited number of consecutively dropped frames;
this is the default.
- -lockstep_totaldrops num
- If num frames are dropped in the current file, then
close the file and resume capture on the next lockstep interval. If
num is -1, then permit an unlimited number of total dropped frames;
this is the default.
- -noavc
- Disable use of AV/C VTR control. This is useful if you are
capturing live video from a camera because in camera mode, an AV/C play
command tells the camera to start recording, perhaps over material on the
current tape. This applies to either interactive more or non-interactive
because non-interactive stills sends a play and stop to the VTR upon
capture start and stop.
- -nostop
- Disables sending the AV/C VTR stop command when exiting
dvgrab.
- -opendml
- If using -format dv2, create an OpenDML-compliant
type 2 DV AVI. This is required to support dv2 files >1GB. dv1 always
supports files >1GB.
- -r, -recordonly
- When the camcorder is in record mode, this option causes
dvgrab to only capture when the camcorder is recording and not
paused. Normally, when in record mode, dvgrab always captures to let you
use the camcorder purely as a camera where the computer operator is in
control. This option makes dvgrab act like the VCR where the camera
operator controls when capture takes place. This is very handy when used
with the -autosplit option to automatically create a new file for
each shot. This option requires AV/C and will not work with the
-noavc option.
- -rewind
- Rewind the tape completely to the beginning prior to
starting capture. Naturally, this requires AV/C; however, perhaps not so
obvious is that this does not apply to interactive mode.
- -showstatus
- Normally, the capture status information is displayed after
finished writing to each file. This option makes it show the capture
status during capture, updated for each frame.
- -s, -size num
- This option tells dvgrab to store at most num
megabytes (actually, mebibytes) per file, where num = 0 means
unlimited file size for large files. The default size limit is 1024 MB.
- -srt
- Generate subtitle files containing the recording date and
time in SRT format. For each video file that is created two additional
files with the extension .srt0 and .srt1 are created. They contain the
recording date and time as subtitles in the SRT format. The .srt0 file
contains the subtitles with timing based on the running time from the
start of the current file. Use this file if you transcode to a format like
AVI. The .srt1 file contains the subtitles with timing based on the time
code as delivered by the camera. The mplayer program understands this type
of subtitles.
- -stdin
- Read the DV stream from a pipe on stdin instead of
FireWire.
- -timecode
- Put the timecode of the first frame of each file into the
file name.
- -t, -timestamp
- Put information on date and time of recording into file
name.
- -timesys
- Put system rather than recording date and time into file
name. This is useful when using converter devices that do not change the
recording date time in the DV stream.
- -V, -v4l2
- Capture from a USB Video Class (UVC) device that supports
DV. This uses the uvcvideo kernel module via V4L2. The default device file
is /dev/video. Use the -input option to set a different device
file.
- -v, -version
- Show version of program.
- -24p
- For Quicktime DV, set the frame rate as 24 fps in the
Quicktime file. This only works as expected when the video has been shot
in 24p mode.
- -24pa
- For Quicktime, DV, in addition to setting the frame rate to
24 in the Quicktime file, also reverse the 2:3:3:2 pulldown process by
removing the interlaced "C" frame. This only works as expected
when the video has been shot in 24p Advanced mode. See
http://www.adamwilt.com/24p/
EXAMPLES¶
- dvgrab foo-
- Captures video data from the default FireWire source and
stores it to files foo-001.avi, foo-002.avi, etc.
- dvgrab -frames 25 foo-
- Assuming a PAL video source, this command records one
second's worth of video data per file.
- dvgrab -autosplit -frames 750 -timestamp foo-
- Records video data from the default FireWire source, cuts
it into chunks of 30 seconds (assuming PAL) or when a new recording starts
and names the resulting files according to date and time info in the
videostream.
- dvgrab -autosplit -size 1998 -csize 4400 -cmincutsize 10 foo-
- Records video data from the default FireWire source, cuts
it into chunks when a new recording starts or when the current file
exceeds 1998 megabytes (actually, mebibytes), or the current collection of
files exceeds 4400 megabytes. It also reduces the size of the smallest
file made due to a collection size cut to 10 megabytes.
- This option is perfect for backing up DV to DVD's as 2 Gb
is around the maximum file size that (the current) linux implementation of
the ISO9660 filesystem can handle!
- Warning: It is possible to make ISO9660 filesystems with
files greater than 2 Gb, but the current linux IS09660 driver can't read
them! Newer linux kernels may be able to handle ISO9660 filesystems with
filesizes greater than 2 Gb.
- dvgrab -format hdv -autosplit
- Capture from a HDV camcorder.
- dvgrab -format mpeg2 -guid 1
- Record from a digital TV settop box.
- dvgrab -jpeg-over -jpeg-w=320 -jpeg-h=240 -d smpte=1 webcam.jpeg
- Capture a single frame, save it as a JPEG named webcam.jpg
and exit. This example also demonstrates option handling. You only need to
specify enough of a long option name to uniquely identify it. You can use
space or equal sign to separate option name and argument. The file format
is inferred from the filename extension. Also, since
-jpeg-overwrite is used, the filename will be exactly
"webcam.jpeg" and not include any numbers.
- dvgrab -V
- Capture over USB from a UVC compliant DV device.
- dvgrab -v4l -input /dev/video1
- Capture over USB from a UVC compliant DV device using
device file /dev/video1.
- dvgrab -format=hdv -autosplit=28800 -srt foo-
- Capture from a HDV camcorder, splitting whenever there is a
gap in the recording that lasts longer than 8 hours. This will likely
generate a separate file for each day (useful for holiday videos). It will
also generate subtitle files. Assuming that the files foo-001.m2t and
foo-002.m2t are generated, the corresponding subtitle files will be
foo-001.srt0, foo-001.srt1 and foo-002.srt0, foo-002.srt1. You can use the
subtitle files to show the recording date and time while viewing the
video.