I’m running a Hauppauge PVR150 along an older Primio analog TV-card. I wasn’t really happy with the scripts, which were mentioned on the IVTV-Wiki. In particular I didn’t like how the recording period needed to be entered. So I wipped up this little script. For actual timed copy of the video stream
ffmpeg is used in
device=/dev/video0 #peak_bitrate=5500000 # for a little better quality #bitrate=4800000 peak_bitrate=4800000 bitrate=4300000 channel=$1 length=$2 output=$3 if [[ -z "$channel" || -z "$length" || -z "$output" ]] ; then echo must supply exactly 3 arguments exit 1; fi ivtv-tune -d $device -t europe-west -c $channel v4l2-ctl -d $device \ -c video_peak_bitrate=$peak_bitrate,video_bitrate=$bitrate,stream_type=3 ffmpeg -y -v 0 -i $device -t $length -vcodec copy \ -acodec copy $output 2>/dev/null
It is executed with three arguments:
rec-tv.sh <channel> <record period> <output file name>
I’m starting the recording with something like this:
echo ./rec-tv-sh E5 1:45:00 recording.mpg | at 22:00
An improvement to be implemented is a mapping from raw channel numbers to sensible program names.
bitrate combination of 4800000/4300000 you get about 2 hours and 10 minutes onto a standard DVD. With the 550000/4800000 combination you get about 1 hour and 50 minutes onto a DVD, while the picture is somewhat better.