Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
lavrec(1)		      MJPEG tools manual		     lavrec(1)

       lavrec -	Record MJPEG-video from	a zoran/video4linux-device

       lavrec [options]	filename(s)

       lavrec can be used to record video in MJPEG format (either quicktime or
       AVI) from a zoran  video-capture	 device,  such	as  the	 Miro/Pinnacle
       DC10(+),	 the  Iomega Buz or Linux Media	Labs' LML33, or	from a generic
       video4linux device, such	as the cheap Bt848  or	Bt878  based  TV-cards
       that are	being sold in every computer shop around the corner.

       lavrec accepts the following options:

	       The  file to record to (*.avi, *.qt). Use a % to	record to mul-
	       tiple files (using  file%02d.avi	 will  record  to  file00.avi,
	       file01.avi,  etc).  You	can  also give more than one filename,
	       which will have the same	effect.	This will avoid	 problems  re-
	       sulting from filetype or	filesystem size	limits.	AVI, for exam-
	       ple, has	a 2 GB limit, as does ext2fs in	2.2.x kernels.

	       By default, lavrec will capture in a mode that is only suitable
	       for  recording  from  hardware MJPEG devices. Using this	option
	       will make lavrec	 use  software-JPEG-encoding  (using  libjpeg)
	       which enables MJPEG-video-capture from many generic video4linux
	       devices (such as	Bt848/Bt878-based ones).

	       This option adds	support	for the	EM28XX	USB  driver.  As  this
	       driver  is  V4L2.  As the original BTTV software	implementation
	       assumes that the	driver supports	V4L it will not	work with  the
	       EM28XX driver, not even with the	V4L1 emulation layer. This op-
	       tion enables two	things:
		 It enables the	V4L2  calls  to	 make  interaction  with  this
	       driver possible
		 It  select  the  cards	YUV Packed format and converts this in
	       software	to YUV Planar The process is after this	 the  same  as
	       for  the	BTTV driver.  ome things of note are the fact that the
	       EM28XX driver expects 48KHz  audio  recording.  If  you	choose
	       slower  things  will work, but a	lot of deleted/inserted	frames
	       will occur. The lower the sample	rate, the worse	 this  problem
	       gets.  Recording	 at 48KHz is therefore recommended.  This code
	       was tested and found working with  a  DVC100  Pinnacle  Dazzle.
	       This  option  should  work with any EM28XX, but this hasnt been
	       tested.	It might work for any other V4L2 device	 that  outputs
	       YUV  packed  format, this has however not been tested. Feedback
	       would be	appreciated.

       -f/--format [a|A|q|m]
	       The format in which the video should be saved to	the harddisk.
		 a - MJPEG AVI
		 A - MJPEG AVI with fields exchanged
		 q - Quicktime
	       By default, lavrec will look at the extension of	the first file
	       (*.avi, *.qt) and choose	a format based on that.

       -i/--input [p|P|n|N|s|S|t|T|f|a]

       -i/--input input[:norm]
	       The recording source and	the video source standard format.
		p - PAL	through	Composite or 1st Bt8x8 input
		P - PAL	through	SVHS- or 2nd Bt8x8 input
		t - PAL	through	TV-tuner- or 3rd Bt8x8 input
		n - NTSC through Composite or 1st Bt8x8	input
		N - NTSC through SVHS- or 2nd Bt8x8 input
		T - NTSC through TV-tuner- or 3rd Bt8x8	input
		s - SECAM through Composite or 1st Bt8x8 input
		S - SECAM through SVHS-	or 2nd Bt8x8 input
		f - SECAM through TV-tuner- or 3rd Bt8x8 input
		a - (or	every other letter) Autosense (default)
	       The  input  can	be specified using either single letters or an
	       input number with an optional norm, where the number  specifies
	       the  n'th  input	of the card, ranging from 1 to 10. Using a nu-
	       merical input is	necessary when using input four	or higher with
	       a  card that has	more than three	inputs,	for instance the Aver-
	       Media 6 Eyes.  When using numeric input with the	norm  it  must
	       contain	the whole norm name; valid names are pal, ntsc and se-
	       cam. You	can use	numeric	input selection	for  cards  with  only
	       three   inputs,	 too,	which  most  Zoran  based  cards  has.
	       "-i 2:pal" used with a  Buz  would  be  equivalent  to  "-i P",
	       recording from the S-Video input	in PAL format.

       -d/--decimation num
	       Recording  decimation, either 1,	2 or 4.	This will decimate the
	       size of the recorded video horizontally and vertically. To  use
	       different horizontal and	vertical decimations, use two numbers,
	       the first one being the horizontal and the second one being the
	       vertical	 (-d  12).   Note: this	option can only	be used	during
	       hardware	recording.

       -g/--geometry WxH(+X+Y)
	       For hardware recording: An X-style geometry string, giving  the
	       geometry	 of the	undecimated subframe to	record.	The default is
	       the full	frame,	so  720x576/480+0+0  for  Buz/LML33-users  and
	       640x480+0+0  or	768x576+0+0  for  DC10(+)-users.  For software
	       recording: The size of the video	to  be	captured.   Currently,
	       width  and  height need to be a multiple	of 16. You always cap-
	       ture the	full frame since most video4linux devices  don't  sup-
	       port subframe capture.

       -q/--quality num
	       Quality	of  the	 JPEG-video  to	be recorded (in	percent). This
	       must be a number	between	0 and 100. Lower quality should	gener-
	       ally  mean  lower  filesize,  higher  quality  will  take  more
	       diskspace but will give more detailed perfectness  in  the  re-
	       sulting recorded	video. Default is 50%.

       -C/--channel LIST:CHAN
	       Choose  the  channel  to	record from (xawtv-style). By default,
	       lavrec will just	use the	current	TV channel.

       -t/--time num
	       Recording time in seconds. The default is  unlimited.  To  stop
	       capturing video while recording,	use Ctrl-C.

	       Single-frame  capture mode. This	means that one can capture in-
	       dividual	frames from the	capture	device.

       -T/--time-lapse num
	       time-lapse factor, which	means that only	every <num>th frame is
	       saved to	the recording file.

	       If this option is given,	lavrec will wait for the user to press
	       enter before starting to	record.

	       This option turns off all possible  interactivity  options  and
	       limits	console	  output  as  much  as	possible.  Useful  for
	       cron/scheduled recordings.

       -a/--audio-bitsize num
	       Audio size in bits, either 0, 8 or 16 (default).	0 means	no au-

       -r/--audio-bitrate num
	       Audio  sampling	rate in	Hz. This must be a sampling rate which
	       is supported by the soundcard. Often-supported  audio  sampling
	       rate values are 11025, 22050 or 44100 (default).

	       Capture in stereo. By default, lavrec captures in mono.

       -l/--audio-volume num
	       Recording  level. This must be a	value between 0	(no sound) and
	       100 (loud recording). -1	(default) means	to not touch the mixer
	       settings	at all.

	       Mute  sound  output  while  recording.  This can	be useful when
	       recording sound from the	microphone to disable echos. This  op-
	       tion is disabled	by default.

       -R/--audio-source [l|m|c]
	       Recording  source,  either (l)ine-in, (m)icrophone or (c)d-rom.
	       The default is to record	from line-in (l).

	       Use the read() system call rather than the mmap()  system  call
	       for  audio  recording.  This may	fix many audio recording prob-

       -c/--synchronization [0|1|2]
	       Audio/video synchronization level efforts. (0)  means  no  syn-
	       chronization,  (1)  means that lavrec will replicate frames for
	       lost frames. (2)	means that lavrec will	replicate  frames  for
	       lost frames and do sync correction.  Default is 2.

       -n/--mjpeg-buffers num
	       Number  of MJPEG-buffers. Default is 32.	Try changing this num-
	       ber if you have many lost frames.

       -b/--mjpeg-buffer-size num
	       MJPEG buffersize	in kilobytes. The default is 256 kB.

       --max-file-size num
	       The maximum file	size per JPEG file. By	default,  lavrec  uses
	       the maximum possible size for that specific recording format.

       --max-file-frames num
	       The maximum number of frames per	per JPEG file. By default, the
	       number of frames	is only	limited	by other factors, such as max-
	       imum file size.

       --file-flush num
	       Flush the file to disk after every num frames captured.

       -v/--verbose num
	       Verbosity level (0, 1 or	2). Default is 0.

       The following environment variables can be recognized by	lavrec:

	       The video device. Default is /dev/video

	       The audio device. Default is /dev/dsp

	       The mixer device. Default is /dev/mixer

       Lavrec  will  output the	current	recording state. Typically, this looks
       0.06.14:22 int: 00040 lst:0 ins:0 del:0 ae:0 td1=0.014 td2=0.029
       The first part is the time that has been	spent recording	(hours -  min-
       utes  -	seconds	 - frames).  int is the	interval (in milliseconds) be-
       tween two captured frames (this should be around	40 for	PAL/SECAM  and
       33  for	NTSC).	lst is the number of lost frames.  ins and del are the
       number of frames	inserted and deleted for sync correction.  ae  is  the
       number  of  audio errors.  td1 and td2 are the audio/video time-differ-
       ence (out-of-sync'ness).

       Okay, that's a lot of options. Now how would I normally	record	video?
       Let's  assume  you  want	to record at VCD resolution (352x288) from PAL
       source.	You might want some higher quality than	default	(80%). You use
       default audio options and record	to an AVI file.	That having said, your
       recording command line would look like:

       From hardware MJPEG devices (S-video input)
	       lavrec	--format=a   --input=P	 --quality=80	--decimation=2

       From normal video4linux devices
	       lavrec  --software-encoding  --format=a	--input=p --quality=80
	       --geometry=352x288 /path/to/file.avi

       lavrec should be	able to	detect automatically whether to	 use  software
       JPEG  encoding or whether to use	the card's hardware JPEG encoding fea-
       tures (if available).

       Besides that, software JPEG encoding seems, for some people,  to	 cause
       small  out-of-sync'ness.	 SMP  support  for  JPEG encoding is currently

       This man	page was written by Ronald Bultje.
       If you have questions, remarks, problems	or you just  want  to  contact
       the developers, the main	mailing	list for the MJPEG-tools is:
       For more	info, see our website at

       mjpegtools(1), lavplay(1)

MJPEG Tools Team		27 August 2003			     lavrec(1)


Want to link to this manual page? Use this URL:

home | help