<H2><A NAME="tv"><B>2.5 TV input</B></A></H2>
<P>This section is about how to enable <B>watching/grabbing from V4L compatible
TV tuner</B>. See the man page for a description of TV options and keyboard
controls.</P>
<H3><A NAME="tv_compilation">2.5.1 Compilation</A></H3>
<OL>
<LI>First, you have to recompile. <CODE>./configure</CODE> will autodetect
kernel headers of v4l stuff and the existence of <CODE>/dev/video*</CODE>
entries. If they exist, TV support will be built (see the output of
<CODE>./configure</CODE>).</LI>
<LI>Make sure your tuner works with another TV software in Linux, for example
xawtv.</LI>
</OL>
<H3><A NAME="tv_examples">2.5.2 Usage tips</A></H3>
The full listing of the options is available on the manual page. Here
are just a few tips:
<UL>
<LI>
Choose some sane image dimensions. The dimensions of the resulting
image should be divisible by 16.
</LI>
<LI>If you capture the video with the vertical resolution higher than
half of the full resolution (i.e. 384 for PAL or 320 for NTSC), make
sure you turned deinterlacing on. Otherwise you'll get a movie which is
distorted during fast-motion scenes and the bitrate controller will be
probably even unable to retain the specified bitrate as the
interlacing artifacts produce high amount of detail and thus consume
lot of bandwidth. You can enable deinterlacing with <CODE>-vop pp -npp
DEINT_TYPE</CODE>. Usually <CODE>-npp lb</CODE> does a good job, but
it can be matter of personal preference. See other deinterlacing
algorithms in the manual and give it a try.</LI>
<LI>
Crop out the dead space. When you capture the video, the areas at the
edges are usually black or contain some noise. These again consume
lots of unnecessary bandwidth. More precisely it's not the black
areas themselves but the sharp transitions between the black and the
brighter video image which do but that's not important for now. Before
you start capturing, adjust the arguments of the <CODE>crop</CODE>
option so that all the crap at the margins is cropped out. Again,
don't forget to keep the resulting dimensions sane.
</LI>
<LI>
Watch out for CPU load. It shouldn't cross the 90% boundary for most
of the time. If you have a large capture buffer, MEncoder can survive
an overload for few seconds but nothing more. It's better to turn off
the 3D OpenGL screensavers and similar stuff.
</LI>
<LI>
Don't mess with the system clock. MEncoder uses the system clock for
doing A/V sync. If you adjust the system clock (especially backwards
in time), MEncoder gets confused and you will lose frames. This is an
important issue if you are hooked to a network and run some time
synchronization software like NTP. You have to turn NTP off during the
capture process if you want to capture reliably.
</LI>
<LI>
Don't change the <CODE>outfmt</CODE> unless you know what you are
doing. In the older versions of MPlayer/MEncoder it was needed to
specify the output format. This issue should be fixed in the current
releases and <CODE>outfmt</CODE> isn't required anymore, and the
default (YV12 colorspace) suits the most purposes.
</LI>
<LI>
If MEncoder cannot open the audio device, make sure that it is really
available. There can be some trouble with the sound servers like arts
(KDE) or esd (GNOME). If you have a full duplex soundcard (almost any
decent card supports it today), and you are using KDE, try to check
the "full duplex" option in the sound server preference menu.
</LI>
</UL>
<H3><A NAME="tv_examples">2.5.3 Examples</A></H3>
<P>Dummy output, to AAlib :)<BR>
<CODE> mplayer -tv on:driver=dummy:width=640:height=480 -vo aa</CODE><BR>
<BR>
Input from standard V4L<BR>
<CODE> mplayer -tv
on:driver=v4l:width=640:height=480 -vo xv</CODE><BR>
<BR>
A more sophisticated example. This makes MEncoder capture the full
PAL image, crop the margins, and deinterlace the picture using
a linear blend algorithm. This setup is suitable for capturing movies.<BR>
<CODE>
mencoder -tv on:driver=v4l:width=768:height=576 \<BR>
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900 \<BR>
-oac mp3lame -lameopts cbr:br=64 \<BR>
-vop pp,crop=720:540:24:18 -npp lb -o output.avi
</CODE><BR>
<BR>
This will additionally rescale the image to 384x288 and compresses
the video with the bitrate of 350kbps in high quality mode. The
vqmax option looses the quantizer and allows the video compressor to
actualy reach so low bitrate even at the expense of the
quality. This can be used for capturing long TV series, where the
video quality isn't so important.<BR>
<CODE>
mencoder -tv on:driver=v4l:width=768:height=576 \<BR>
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350:vhq:vqmax=31:keyint=300 \<BR>
-oac mp3lame -lameopts cbr:br=48 \<BR>
-vop scale=384:288,pp,crop=720:540:24:18 -npp tn,lb -sws 1 -o output.avi
</CODE>
</P>