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.

The basic command is:

dvgrab [options] [base] [-]

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-".

Stdin and stdout [-]

If you specify a trailing '-' then the format is forced to raw DV or HDV and sent to stdout. By this way you can create pipelines to, for example, Gstreamer.

dvgrab - | some dv sink

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.

some dv source | dvgrab -stdin


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.






Split automatically by defined timespan or a discontinuity in the timecode when num left out (recorded on another time)

-a[num], -autosplit[=num]


Frames to use for buffering device I/O delays

-buffers num


Which firewire bus to use

-card num

First detected or with -noavc no default

Isochronous channel to receive data from

-channel num


Minimal cut size

-cmincutsize num


Split files when a certain num (MiB) is reached

-csize num


Total duration time

-d, -duration time (HH, MM and ms can be excluded)

Write only every n'th frame

-every n

all frames

Split at number of frames

-F, -frames num

default=0 => unlimeted

Specify GUID in hexadecimal format

-guid hex

found in /sysbus/firewire

1 => dvgrab itself setup


-h, -help

Input a file instead of firewire



-i, -interactive

control AV/C with keyboard

This option tells dvgrab to store at most num megabytes (actually, mebibytes) per file, where num = 0 means unlimited file size for large files. default=1024MB

-s, -size

Show status for each frame


Show version

-v, -version


-f, -format dv1 | dv2 | avi | raw | dif | qt | mov | jpeg | jpg | mpeg2 | hdv

Supported Formats dv1 only stores a single, integrated DV track since the DV format natively interleaves audio with video. dv2 stores a separate audio track in addition to the DV video track, which is more compatible with other applications. dv1 produces a smaller input but dv2 is more compatible raw stores the dv data unmodified and has the .dv extension dif stores the data as raw but with the .dif extension qt/mov store the data as quicktime DV with the .mov extension jpg/jpeg store the data as a sequence of JPEG image files (only with DV input). mpeg2/hdv store HDV data as compressed MPEG2 video with mpg extension Default is raw

JPEG output




Deinterlacing by doubling the lines of the upper field


results in 50% loss in resolution

Scale the output of the width to num (1-2048)

-jpeg-width num

Scale the output of the height to num (1 - 2048)

-jpeg-height num

Write to the same image file, each frame

-jpeg-overwrite name

Quality level (0-100)

-jpeg-quality num

Use a temporary file to create the jpeg, rename the file to the target file name when done.

-jpeg-tem name 10

AV/C VTR controls




Disabling use of AV/C VTR control


Disabling sending the AV/C VTR stop command when exiting dvgrab


Rewind the tape before capture (AV/C required)



-i, -interactive





Put timecode of the first frame of each file into the file name


Put information on date and time of recording into file name

-t, -timstamp

Put system date and time into file name instead of the recording date


Video4Linux 2




Capture from USB Video Class device that supports DV

-V, -v4l2

Uses the uvcvideo kernel module via V4L2, defaut=/dev/video0

Choose another input instead of video0

-input /dev/videoX

X is identification num

Quicktime DV Output




Set frame rate as 24p


only when shot in 24p

Set frame rate as 24p and reverse the 2:3:3:2 pulldown process by removing interlaced "C" frame


only when shot in 24p advanced

Other controls




Remove repeat_first_field flag and set frames per second to 25 to corect a stream recorded in JVC's HDV P24 mode


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.


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.

-lockstep_totaldrops num

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.


Capture footage when camera is recording

-r, -recordonly

requires AV/C controls

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.


FireWire/dvgrab (last edited 2012-09-24 13:58:04 by dooitze)