I use a small script I wrote that uses mencoder, I believe it only works with the older of mplayer/mencoder, prior to 1.x, but here it is:
#This script is simply a very long mencoder laundry list of
#options to enable a very clean recording from a TV-in source
#such as a WinTV Go card using the bttv driver.
#Suggested from jharris, from this thread:
#Example for use:
#Place mentv in your $PATH and run:
#mentv <channel> <filename>
#If your show is on channel 11, and you want to name it Snow.avi, then:
#mentv 11 Snow.avi
#Edit the -o option to your desired path, keeping $2 so Snow.avi works.
/home/masterc/downloads/MPlayer-0.90rc5/mencoder -tv \
-ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=1200:vme=5 \
-oac mp3lame -lameopts cbr:br=128 -vop scale=512:340,pp=tn/lb -sws 1 \
As you can see I use the binary mencoder from inside the older mplayer source directory after I compiled it, I did this because of the necessity of the way to write the options for mencoder 1.x versus the older 0.9x as shown above.
The resulting show, assuming it's 1 hour, is ~700MB, just enough to fit on a CD