#!/bin/sh
# ============================================================================
#                        Simple TV viewer and recorder.
#   Made for Medion MD8800 in 64-bit mode, but will work with any V4L2 cards
# ----------------------------------------------------------------------------
#               (C)opyright Martin Moeller, martin@martinm-76.dk
#                       Licensed under the GPL version 2.
#                See www.gnu.org/copyleft/gpl.html for details.
# ============================================================================

###
# Default settings. You can change these as you like
###

CHAN=${CHAN:-43}
#WIDTH=${WIDTH:-352}
#HEIGHT=${HEIGHT:-288}
WIDTH=${WIDTH:-720}
HEIGHT=${HEIGHT:-576}
FPS=${FPS:-25}
NORM=${NORM:-pal-bg}
CHANLIST=${CHANLIST:-europe-west}
PROGRAM=${PROGRAM:-mplayer} # Use mencoder to record in stead.

###
# My channnel list. This is TDC KabelTV for Copenhagen and surrounding area.
# Most people will need to put something else here :)
###

CHANNELS="E10-DR1,E7-TV2,SE13-SVT1,SE14-SVT2,E5,Kanal_4,SE10-Kanal_Kbh,E9-DR2,66,TV2_Zulu,SE11-Infokanalen,SE15-ARD,21,Kanal_5,49-VH-1,42-TV4,51-TV5_Europe,52-Fox_Kids/Hallmark,54-MTV,55-Discovery_Channel,SE16-ZDF,44-TV2_Charlie/BBC_Food,45-TV3_Danmark,43-3+_Danmark,64-Eurosport,S30-Ekstrakanalen,22-CNN,S29-NRK1,58-BBC_World,59-BBC_Prime,50-Cartoon_Network,57-TV2_Film,63-ViaSat_Sport,65-DK4,E6-TV2_Norge,67-Animal_Planet,68-National_Geographic,61-TCM,62-Disney_Channel,56-The_Voice_TV"

###
# Encoding/recording options. Be careful here!
###

ENDPOS=${ENDPOS:-1:00:00} # Record an hour as standard
OUTPUT=${OUTPUT:-$CHAN-record$$.avi}
AC=${AC:-mp3lame} # toolame|lavc
VC=${VC:-lavc}    # xvid|x264
BITRATE=${BITRATE:1500}
ASPECT=${ASPECT:-4/3}
AOPTS=${AOPTS:-}  # e.g. "-lameopts br=128:q=4"
VOPTS=${VOPTS:--lavcopts vcodec=mpeg4:vbitrate=$BITRATE:vhq:aspect=$ASPECT -ffourcc=xvid}
#VOPTS=${VOPTS:--lavcopts vcodec=mpeg2video:vbitrate=$BITRATE:vhq:aspect=$ASPECT}
# e.g. "-lavcopts vcodec=msmpeg4:vbitrate=1800:vhq:keyint=250"

RECOPTS="-ovc $VC -oac $AC $AOPTS $VOPTS -endpos $ENDPOS"

## Do the magic! ##

if [ "$PROGRAM" != "mencoder" ] ; then
  mplayer tv://$CHAN -tv driver=v4l2:device=/dev/video0:width=$WIDTH:height=$HEIGHT:norm=$NORM:chanlist=$CHANLIST:adevice=/dev/dsp1:amode=1:audiorate=32000:fps=$FPS:immediatemode=0:channels=$CHANNELS
else
  echo $RECOPTS -o $OUTPUT
  mencoder $RECOPTS -o "$OUTPUT" -aspect 4:3 tv://$CHAN -tv driver=v4l2:device=/dev/video0:width=$WIDTH:height=$HEIGHT:norm=$NORM:chanlist=$CHANLIST:adevice=/dev/dsp1:amode=1:audiorate=32000:fps=$FPS:immediatemode=0:channels=$CHANNELS
fi  

