HDTV Installationsanleitung Ubuntu
Aus VDR Wiki
Version vom 4. September 2009, 17:38 Uhr von 93.104.117.62 (Diskussion)
Installationsanleitung Ubuntu 9.04
obwohl vdr-1.7.8 verfügbar ist, läuft derzeit die beschriebene Konfig mit vdr-1.7.0 am besten ...
Nvidia Installation
apt-get install build-essential xserver-xorg-dev /etc/init.d/gdm stop cd /home/deinkonto wget ftp://download.nvidia.com/XFree86/Linux-x86/185.19/NVIDIA-Linux-x86-185.19-pkg1.run #(oder neuer) sh *.run /etc/init.d/gdm start
LIB Installation
apt-get install mercurial cvs subversion libncurses-dev zlib1g-dev apt-get install autoconf libtool automake pkg-config gettext apt-get install liba52-0.7.4-dev libmp3lame-dev libvorbis-dev libpng12-dev libx11-dev libxv-dev libasound2-dev
Firmware Installation (unterschiedlich je nach Karte)
TeVii S470 DVB-S2 PCI-E :
cd /usr/local/src apt-get install unrar -y cd /usr/local/src wget http://tevii.com/Tevii_linuxdriver_0815.rar unrar x Tevii_linuxdriver_0815.rar cp tevii_linuxdriver_0815/fw/dvb-fe-cx24116.fw /lib/firmware/dvb-fe-cx24116-1.23.86.1.fw rm /lib/firmware/dvb-fe-cx24116.fw ln -s /lib/firmware/dvb-fe-cx24116-1.23.86.1.fw /lib/firmware/dvb-fe-cx24116.fw
Nova-HD-S2:
apt-get install unrar -y rm /lib/firmware/dvb-fe-c* cd /usr/local/src wget http://www.hauppauge.de/software/mce/88x_2_122_26109_WHQL.zip unzip -jo 88x_2_122_26109_WHQL.zip Driver88/hcw88bda.sys dd if=hcw88bda.sys of=dvb-fe-cx26109.fw skip=75504 bs=1 count=32501 cp dvb-fe-cx26109.fw /lib/firmware/ ln -s /lib/firmware/dvb-fe-cx26109.fw /lib/firmware/dvb/fe-cx24116.fw
Treiber Installation
cd /usr/local/src hg clone http://mercurial.intuxication.org/hg/s2-liplianin/ cd s2-liplianin cd linux/include/linux ln -s /usr/src/linux-headers-`uname -r`/include/linux/compiler.h ./ cd ../../../ make make install depmod -a reboot
ffmpeg
cd /usr/local/src apt-get install build-essential apt-get install mercurial cvs subversion git-core libncurses-dev apt-get install autoconf libtool automake pkg-config gettext apt-get install liba52-0.7.4-dev libmp3lame-dev libvorbis-dev zlib1g-dev libpng12-dev libx11-dev libxv-dev libxvmc-dev libasound2-dev libmpcdec-dev apt-get install yasm apt-get build-dep ffmpeg git clone git://git.videolan.org/x264.git cd x264 ./configure --prefix=/usr --enable-pic --enable-shared --enable-pthread --enable-asm --extra-cflags="-mtune=native -march=native -mfpmath=sse -O4 -pipe" make make install ldconfig -v cd /usr/local/src svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg cd ffmpeg/ ./configure --prefix=/usr --enable-shared --enable-gpl --enable-postproc --enable-libmp3lame --enable-libvorbis --enable-pthreads --enable-libx264 --extra-cflags="-mtune=native -march=native -mfpmath=sse -O4 -pipe" make make install ldconfig –v
xine plugin
cd /usr/local/src wget http://home.vr-web.de/~rnissl/vdr-xine-0.9.3.tgz tar xivf vdr-xine-0.9.3.tgz
Xine-VDPAU
cd /usr/local/src svn co svn://jusst.de/xine-vdpau cd xine-vdpau ## vi /usr/local/src/xine-vdpau/src/combined/ffmpeg/ff_video_decoder.c ## "dort gibt es 2 Einträge mit RGBA32 dies ändern in RGB32" find ../xine-0.9.3 -name xine-lib.patch -exec patch -p1 -i \{} \; ./autogen.sh ./configure --prefix=/usr make make install ldconfig -v
Xine-UI
cd /usr/local/src apt-get install libxt-dev libpostproc-dev wget http://home.vrweb.de/~rnissl/xine-ui-cvs-20090617220000.tar.bz2 tar xivf xine-ui-cvs-20090617220000.tar.bz2 cd xine-ui find ../xine-0.9.3 -name xine-ui.patch -exec patch -p1 -i \{} \; ./autogen.sh --prefix=/usr --enable-vdr-keys make make install
VDR 1.7.x
cd /usr/local/src apt-get install libfreetype6-dev libfontconfig1-dev libjpeg62-dev libcap-dev libncurses5-dev libncursesw5-dev wget ftp://ftp.cadsoft.de/vdr/Developer/vdr-1.7.x.tar.bz2 tar xivf vdr-1.7.x.tar.bz2 cd vdr-1.7.x mv /usr/local/src/xine-0.9.3 PLUGINS/src/xine
vi Make.config
# # User defined Makefile options for the Video Disk Recorder # # Copy this file to 'Make.config' and change the parameters as necessary. # # See the main source file 'vdr.c' for copyright information and # how to reach the author. # # $Id: Make.config.template 2.0 2008/01/13 12:54:09 kls Exp $ ### The C compiler and options: CC = gcc CFLAGS = -g -O2 -Wall CXX = g++ CXXFLAGS = -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses ifdef PLUGIN CFLAGS += -fPIC CXXFLAGS += -fPIC DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE endif ### The directory environment: DVBDIR = /usr/local/src/s2-liplianin/linux MANDIR = /usr/man BINDIR = /usr/bin LOCDIR = /usr/share/locale PLUGINDIR= ./PLUGINS PLUGINLIBDIR= /usr/lib/vdr/plugins VDRSCRIPTDIR= /usr/lib/vdr/scripts VIDEODIR = /var/lib/video.00 CONFDIR = /etc/vdr/ ### The remote control: LIRC_DEVICE = /dev/lircd RCU_DEVICE = /dev/ttyS1 ## Define if you want vdr to not run as root #VDR_USER = vdr
Vorbereitung:
mkdir /var/lib/video.00 mkdir -p /usr/lib/vdr/plugins mkdir -p /usr/lib/vdr/scripts mkdir -p /etc/vdr/plugins make make plugins make i18n make install locale-gen de_DE.UTF-8 de_DE dpkg-reconfigure locales cp -a svdrpsend.pl /usr/bin cp *.conf /etc/vdr/
Wer Probleme hat in der Art:
dvbdevice.c: In constructor âcDvbDevice::cDvbDevice(int)â: dvbdevice.c:487: error: âFE_CAN_2G_MODULATIONâ was not declared in this scope
# vi /usr/include/linux/dvb/frontend.h FE_HAS_EXTENDED_CAPS = 0x800000, // We need more bitspace for newer APIs, indicate this. // Einfuegen, anfang FE_CAN_2G_MODULATION = 0x10000000, /* frontend supports "2nd generation modulation" (DVB-S2) */ // Einfuegen, ende FE_NEEDS_BENDING = 0x20000000, // not supported anymore, don't use (frontend requires frequency bending)
Xineliboutput 1.0.4 plugin (bis vdr-1.7.3)
cd /usr/local/src/vdr-1.7.x/PLUGINS/src wget http://downloads.sourceforge.net/project/xineliboutput/xineliboutput/vdr-xineliboutput-1.0.4/vdr-xineliboutput-1.0.4.tar.bz2 tar xivf vdr-xineliboutput-1.0.4.tar.bz2 mv xineliboutput* xineliboutput cd xineliboutput make make install mkdir -p /etc/vdr/plugins/xineliboutput cp *.mpg /etc/vdr/plugins/xineliboutput/ cd ../../../ make plugins make install
Xineliboutput CVS plugin (ab vdr-1.7.4)
cd /usr/local/src/vdr-1.7.x/PLUGINS/src apt-get install libextractor-dev cvs -d:pserver:anonymous@xineliboutput.cvs.sourceforge.net:/cvsroot/xineliboutput login cvs -z3 -d:pserver:anonymous@xineliboutput.cvs.sourceforge.net:/cvsroot/xineliboutput co -P vdr-xineliboutput mv vdr-xineliboutput* xineliboutput cd xineliboutput make make install mkdir -p /etc/vdr/plugins/xineliboutput cp *.mpg /etc/vdr/plugins/xineliboutput/ cd ../../../ make plugins make install
Xine plugin
cd /usr/local/src/vdr-1.7.7/PLUGINS/src/xine/data mkdir -p /etc/vdr/plugins/xine cp *.mpg /etc/vdr/plugins/xine
Scripts
/var/bin/runvdr
#!/bin/bash export VDR_LANG=de_DE export VDR_CHARSET_OVERRIDE="ISO-8859-15" export LANG="de_DE" export LC_COLLATE="de_DE" export LC_ALL="de_DE" PATH=/usr/local/bin:$PATH /usr/bin/amixer set 'IEC958',1 unmute /usr/bin/touch /var/lib/video.00/.update VDRPRG="/usr/bin/vdr" VDRCMD="/usr/bin/vdr -c /etc/vdr -v /var/lib/video.00 -E /var/vdr -l 3 \ -s /var/bin/vdrpoweroff.sh \ -P'xineliboutput -l none -r 37890 -p' \ ### -P'xine -r' Alternativ -u root \ $*" KILL="/usr/bin/killall -q -TERM" # Detect whether the DVB driver is already loaded # and return 0 if it *is* loaded, 1 if not: DriverLoaded() { return 1 } # Load all DVB driver modules needed for your hardware: LoadDriver () { return 0 } # Unload all DVB driver modules loaded in LoadDriver(): UnloadDriver () { return 0 } # Load driver if it hasn't been loaded already: if ! DriverLoaded; then LoadDriver fi while (true) do eval "$VDRCMD" if test $? -eq 0 -o $? -eq 2; then exit; fi echo "`date` reloading DVB driver" $KILL $VDRPRG sleep 10 UnloadDriver LoadDriver echo "`date` restarting VDR" done
/var/bin/vdrpoweroff.sh
#!/bin/bash /sbin/poweroff
/etc/init.d/vdr
#!/bin/bash ### BEGIN INIT INFO # Provides: VDR # Required-Start: $network # Required-Stop: $network # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: Start, Stop or Restart VDR ### END INIT INFO # Shell functions sourced from /etc/rc.status: # set -e # Reset status of this service # rc_reset # case "$1" in start) echo -n "Starting VDR " /var/bin/runvdr > /var/log/vdr.log & /usr/bin/irexec -d /etc/irexec.conf & /usr/local/bin/switchtv init ;; stop) echo -n "Shutting down VDR " /usr/bin/killall irexec /usr/local/bin/switchtv kill /usr/bin/killall runvdr /bin/kill `/bin/pidof /usr/bin/vdr` 2>/dev/null ;; restart) echo -n "Restart VDR " $0 stop sleep 5 $0 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac # rc_exit exit 0
update-rc.d vdr defaults
/usr/local/bin/switchtv
mit Umschaltung zu XBMC
#!/bin/bash RUNAS="vdr" run_vdr() { killall -9 vdr-sxfe kill_xinit killall xbmc killall xbmc.bin # Verwendung xineliboutput plugin su - $RUNAS -c "/usr/bin/xinit -e /usr/bin/vdr-sxfe --video=vdpau --post tvtime:method=use_vo_driver --audio=alsa --fullscreen --reconnect --lirc $@ &" # Verwendung xine plugin # su - $RUNAS -c "/usr/bin/xinit -e /usr/bin/xine -V vdpau -f -r anamorphic --post vdr_video --post vdr_audio --post upmix_mono --post vdr --verbose=2 vdr:/tmp/vdr-xine/stream#demux:mpeg_pes" } run_xbmc() { killall -9 vdr-sxfe kill_xinit /usr/local/bin/scanvdr & su - $RUNAS -c "/usr/bin/xinit -e /usr/share/xbmc/xbmc.bin -fs $@ &" } kill_xinit() { /usr/bin/killall xinit while [ true ] do [[ "`ps -ef | grep -v grep | grep xinit`" = "" ]] && break done } if [ "$1" = "xbmc" ];then run_xbmc elif [ "$1" = "vdr" ];then run_vdr elif [ "$1" = "init" ];then sleep 5 run_vdr elif [ "$1" = "kill" ];then killall -9 vdr-sxfe killall -9 xbmc killall -9 xbmc.bin elif [ -z "$1" ];then if [ "`ps -ef | grep -v grep | grep 'vdr-sxfe'`" != "" ];then echo "VDR application is running => starting XBMC ..." run_xbmc elif [ "`ps -ef | grep -v grep | grep 'xbmc'`" != "" ];then echo "XBMC application is running => starting VDR ..." run_vdr else echo "no application is running => starting VDR ..." run_vdr fi fi exit 0
X
/etc/init.d/gdm (muß disabled werden)
Edit file /etc/X11/Xwrapper.config: Change this line:
allowed_users=console
to
allowed_users=anybody
# /etc/X11/xorg.conf # nvidia-xconfig: X configuration file generated by nvidia-xconfig # nvidia-xconfig: version 1.0 (buildmeister@builder63) Fri Apr 3 13:01:52 PST 2009 Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" 0 0 InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Mouse0" "CorePointer" EndSection Section "InputDevice" # generated from default Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/psaux" Option "Emulate3Buttons" "no" Option "ZAxisMapping" "4 5" EndSection Section "InputDevice" # generated from default Identifier "Keyboard0" Driver "kbd" EndSection Section "Monitor" # VendorName "Unknown" # ModelName "Unknown" Identifier "Monitor0" #HorizSync 15.0 - 68.0 HorizSync 15.0 - 75.0 VertRefresh 23.0 - 61.0 Option "DPMS" Option "ExactModeTimingsDVI" "True" Option "UseDisplayDevice" "DFP-0" Option "UseEDIDFreqs" "False" # 1920x1080p @ 50Hz (EIA/CEA-861B) ModeLine "1920x1080@50" 148.500 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync # 1920x1080p @ 60Hz (EIA/CEA-861B) ModeLine "1920x1080@60" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync # 1920x1080p @ 24Hz (EIA/CEA-861B) ModeLine "1920x1080@24" 74.250 1920 2558 2602 2750 1080 1084 1089 1125 +hsync +vsync # 1920x1080p @ 23.976Hz (EIA/CEA-861B) ModeLine "1920x1080@23.976" 74.175 1920 2558 2602 2750 1080 1084 1089 1125 +hsync +vsync # 1920x1080i @ 50Hz (EIA/CEA-861B) Modeline "1920x1080@50i" 74.250 1920 2448 2492 2640 1080 1085 1095 1125 +hsync +vsync Interlace # 1920x1080i @ 60Hz (EIA/CEA-861B) Modeline "1920x1080@60i" 74.250 1920 2008 2052 2200 1080 1085 1095 1125 +hsync +vsync Interlace # 1920x1080p @ 59.94Hz (EIA/CEA-861B) ModeLine "1920x1080@59.94" 148.350 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync # 1920x1080i @ 59.94Hz (EIA/CEA-861B) Modeline "1920x1080@59.94i" 74.175 1920 2008 2052 2200 1080 1085 1095 1125 +hsync +vsync Interlace # 1920x1080p @ 25Hz (EIA/CEA-861B) ModeLine "1920x1080@25" 74.250 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync # 1920x1080p @ 29.97Hz (EIA/CEA-861B) ModeLine "1920x1080@29.97" 74.175 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync # 1920x1080p @ 30Hz (EIA/CEA-861B) ModeLine "1920x1080@30" 74.250 1920 2008 2052 2200 1080 1084 1089 1125 +hsync EndSection Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" Option "CustomEdid" "DFP-0:/etc/X11/edid.bin" Option "ConnectedMonitor" "DFP-0" Option "UseDisplayDevice" "DFP-0" EndSection Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 Option "NoLogo" Option "DynamicTwinView" "false" Option "AllowGLXWithComposite" "True" Option "AddARGBVisuals" "True" Option "AddARGBGLXVisuals" "True" Option "NoLogo" "False" Option "RenderAccel" "True" Option "UseEvents" "True" Option "TripleBuffer" "True" Option "ExactModeTimingsDVI" "True" Option "FlatPanelProperties" "Scaling = Native" SubSection "Display" Depth 24 Modes "1920x1080@50" "1920x1080@24" EndSubSection EndSection Section "Extensions" Option "Composite" "Disable" EndSection Section "Module" Load "extmod" Load "glx" #Load "v4l" EndSection
Lirc
apt-get install lirc lirc-modules-source
/etc/lirc/hardware.conf (nur für Nova-HD-S2 IR Empfänger!)
# /etc/lirc/hardware.conf # #Chosen Remote Control REMOTE="Hauppauge Nova-HD-S2" REMOTE_MODULES="" REMOTE_DRIVER="devinput" TEMPIREVENT=`ls /dev/input/by-path/ |grep event-ir` REMOTE_DEVICE="/dev/input/by-path/$TEMPIREVENT" REMOTE_LIRCD_CONF="/etc/lircd.conf" REMOTE_LIRCD_ARGS="" #Chosen IR Transmitter TRANSMITTER="None" TRANSMITTER_MODULES="" TRANSMITTER_DRIVER="" TRANSMITTER_DEVICE="" TRANSMITTER_LIRCD_CONF="" TRANSMITTER_LIRCD_ARGS="" #Enable lircd START_LIRCD="true" #Don't start lircmd even if there seems to be a good config file #START_LIRCMD="false" #Try to load appropriate kernel modules LOAD_MODULES="" # Default configuration files for your hardware if any LIRCMD_CONF="" #Forcing noninteractive reconfiguration #If lirc is to be reconfigured by an external application #that doesn't have a debconf frontend available, the noninteractive #frontend can be invoked and set to parse REMOTE and TRANSMITTER #It will then populate all other variables without any user input #If you would like to configure lirc via standard methods, be sure #to leave this set to "false" FORCE_NONINTERACTIVE_RECONFIGURATION="false" START_LIRCMD=""
/etc/lircd.conf (nur für Nova-HD-S2 IR Empfänger!)
#This configuration has been automatically generated via #the Ubuntu LIRC package maintainer scripts. # #It includes the default configuration for the remote and/or #transmitter that you have selected during package installation. # #Feel free to add any custom remotes to the configuration #via additional include directives or below the existing #Ubuntu include directives from your selected remote and/or #transmitter. #Configuration for the Hauppauge Nova-T 500 remote: #include "/usr/share/lirc/remotes/hauppauge/lircd.conf.hauppauge_novat500" # brand: Hauppauge NOVA-HD-S2 # model no. of remote control: Hauppage NOVA-HD-S2 Snowboard Shape Silver over Black # begin remote name NOVA-HD-S2 bits 16 eps 30 aeps 100 one 0 0 zero 0 0 pre_data_bits 16 pre_data 0x1 gap 199999 min_repeat 1 toggle_bit 0 begin codes test1 0x0174 Pictures 0x016F Go 0x0161 Text 0x0184 Sub 0x0172 Power 0x0074 TV 0x0179 Videos 0x0189 Music 0x0188 Pictures 0x00E2 Guide 0x016D Radio 0x0181 Up 0x0067 Left 0x0069 OK 0x001C Right 0x006A Down 0x006C Back 0x00AE Menu 0x008B Vol+ 0x0073 Vol- 0x0072 Mute 0x0071 Ch+ 0x0192 Ch- 0x0193 Record 0x00A7 FastRew 0x00A8 FastFwd 0x00D0 SkipBack 0x0195 SkipFwd 0x0197 Play 0x00CF Pause 0x0077 Stop 0x0080 Sleep 0x008E NextSong 0x00A3 PrevSong 0x00A5 Sorpre1 0x00D0 PrevCh 0x019C 1 0x0002 2 0x0003 3 0x0004 4 0x0005 5 0x0006 6 0x0007 7 0x0008 8 0x0009 9 0x000A * 0x0037 0 0x000B # 0x0029 one 0x004F two 0x0050 three 0x0051 four 0x004B five 0x004C six 0x004D seven 0x0047 eight 0x0048 nine 0x0049 ten 0x0052 Red 0x018E Green 0x018F Yellow 0x0190 Blue 0x0191 end codes end remote
/etc/irexec.conf
begin prog = irexec remote = NOVA-HD-S2 button = Guide config = /usr/local/bin/switchtv & \n end
/etc/vdr/remote.conf
LIRC.Up Up LIRC.Down Down LIRC.Menu Menu LIRC.Ok OK LIRC.Back Back LIRC.Left Left LIRC.Right Right LIRC.Red Red LIRC.Green Green LIRC.Yellow Yellow LIRC.Blue Blue LIRC.0 0 LIRC.1 1 LIRC.2 2 LIRC.3 3 LIRC.4 4 LIRC.5 5 LIRC.6 6 LIRC.7 7 LIRC.8 8 LIRC.9 9 LIRC.Power Power LIRC.Volume+ Volume+ LIRC.Volume- Volume- LIRC.Mute Mute LIRC.Channel+ Ch+ LIRC.Channel- Ch- XKeySym.Up Up XKeySym.Down Down XKeySym.Menu Menu XKeySym.Ok OK XKeySym.Back Back XKeySym.Left Left XKeySym.Right Right XKeySym.Red Red XKeySym.Green Green XKeySym.Yellow Yellow XKeySym.Blue Blue XKeySym.0 0 XKeySym.1 1 XKeySym.2 2 XKeySym.3 3 XKeySym.4 4 XKeySym.5 5 XKeySym.6 6 XKeySym.7 7 XKeySym.8 8 XKeySym.9 9 XKeySym.Power Power XKeySym.Volume+ Volume+ XKeySym.Volume- Volume- XKeySym.Mute Mute XKeySym.Channel+ Ch+ XKeySym.Channel- Ch-
Audio
Vorsichthalber auf die neueste Alsa Version mit dem Script "AlsaUpgrade-1.0.x-rev-1.17.sh" upgraden und anschließend neu booten
Der User der vdr-sxfe startet muß(!) in der group "audio" sein
HDMI
Im folgenden sieht man das HDMI Device auf Card "0" Device "3"
aplay -l **** List of PLAYBACK Hardware Devices **** card 0: NVidia [HDA NVidia], device 0: ALC883 Analog [ALC883 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: NVidia [HDA NVidia], device 3: NVIDIA HDMI [NVIDIA HDMI] Subdevices: 0/1 Subdevice #0: subdevice #0
# vi /etc/asound.conf pcm.!default { type hw card 0 device 3 }
# /etc/vdr/setup.conf xineliboutput.Audio.Port = hw:0,3 xineliboutput.Audio.Speakers = Pass Through
# ~/.xine/config_xineliboutput audio.device.alsa_front_device:default audio.device.alsa_passthrough_device:hw:0,3 audio.device.alsa_surround51_device:default audio.output.speaker_arrangement:Pass Through audio.synchronization.av_sync_method:resample audio.synchronization.force_rate:48000 audio.synchronization.resample_mode:on
XBMC
# /etc/apt/sources.list.d/xbmc.list deb http://ppa.launchpad.net/team-xbmc-svn/ppa/ubuntu jaunty main deb-src http://ppa.launchpad.net/team-xbmc-svn/ppa/ubuntu jaunty main
apt-get install xbmc
# Lircmap.xml <lircmap> <remote device="NOVA-HD-S2"> <power>Power</power> <info>Red</info> <display>Green</display> <title>Yellow</title> <start>Blue</start> <skipplus>SkipFwd</skipplus> <skipminus>SkipBack</skipminus> <channelplus>Ch+</channelplus> <channelminus>Ch-</channelminus> <skipplus>NextSong</skipplus> <skipminus>PrevSong</skipminus> <mymusic>Music</mymusic> <mypictures>Pictures</mypictures> <myTV>TV</myTV> <myvideo>Videos</myvideo> <up>Up</up> <left>Left</left> <right>Right</right> <down>Down</down> <up>Up</up> <select>OK</select> <menu>Menu</menu> <play>Play</play> <pause>Pause</pause> <stop>Stop</stop> <forward>FastFwd</forward> <reverse>FastRew</reverse> <back>Back</back> <zero>0</zero> <one>1</one> <two>2</two> <three>3</three> <four>4</four> <five>5</five> <six>6</six> <seven>7</seven> <eight>8</eight> <nine>9</nine> </remote> </lircmap>
#/usr/local/bin/scanvdr VDRREC="/var/lib/video.00" TVFILE="../tvshow.nfo" VDRINFO="info.vdr" NFOFILE="001.nfo" DVDTHUMB="../folder.jpg" DVDOFFSET="18000" DVD_XRES="1280" DVD_YRES="720" FANTHUMB="../fanart.jpg" FANOFFSET="20000" FAN_XRES="1280" FAN_YRES="720" if [ "$1" = "-new" ];then echo "regenerating all files ..." find $VDRREC -name "*.jpg" -exec rm {} \; find $VDRREC -name "*.nfo" -exec rm {} \; fi VDR2JPEG="/usr/local/bin/vdr2jpeg" for i in $(find $VDRREC -name info.vdr) do VDRDIR=$(dirname $i) VDRFILE=$(basename $i) cd $VDRDIR if [ -f $VDRINFO ];then AIRED=$(basename $VDRDIR | awk -F'.' '{print $1}') DAUER=$(grep "^E " $VDRINFO | awk '{print $4/60}' | awk -F'.' '{print $1}') TITEL=$(grep "^T " $VDRINFO | sed "s/^T //") INHALT=$(grep "^D " $VDRINFO | sed "s/^D //") KURZTEXT=$(grep "^S " $VDRINFO | sed "s/^S //") if [ -z "$KURZTEXT" ];then KURZTEXT="$TITEL" fi fi echo "${TITEL}:" echo "creating database infos ..." COUNTREC=$(find .. -name "*.rec" | wc -l) HTEXT=$(find .. -name $VDRINFO | sort -n | xargs cat | grep "^S " | sed "s/^S //") if [ -z "$HTEXT" ];then HTEXT="$DAUER min: $INHALT" elif [ "$COUNTREC" = "1" ];then HTEXT="[ ${HTEXT} ] $DAUER min: $INHALT" fi echo "<tvshow>" > $TVFILE echo "<title>$TITEL</title>" >> $TVFILE echo "<plot>$HTEXT</plot>" >> $TVFILE echo "</tvshow>" >> $TVFILE if [ ! -f $NFOFILE ];then echo "<episodedetails>" > $NFOFILE echo "<title>$KURZTEXT</title>" >> $NFOFILE echo "<rating></rating>" >> $NFOFILE echo "<season></season>" >> $NFOFILE echo "<episode></episode>" >> $NFOFILE echo "<plot>$DAUER min: $INHALT</plot>" >> $NFOFILE echo "<credits>VDR</credits>" >> $NFOFILE echo "<director></director>" >> $NFOFILE echo "<aired>$AIRED</aired>" >> $NFOFILE echo "<runtime>$DAUER min</runtime>" >> $NFOFILE echo "<actor></actor>" >> $NFOFILE echo "</episodedetails>" >> $NFOFILE fi if [ -f $VDR2JPEG ];then if [ ! -f $DVDTHUMB ];then echo "creating DVD thumbnails ..." $VDR2JPEG -x $DVD_XRES= -y $DVD_YRES -f $DVDOFFSET -r . mv 000${DVDOFFSET}.jpg $DVDTHUMB fi if [ ! -f $FANTHUMB ];then echo "creating FANART thumbnails ..." $VDR2JPEG -x $FAN_XRES= -y $FAN_YRES -f $FANOFFSET -r . mv 000${FANOFFSET}.jpg $FANTHUMB fi else echo "cannot create Fanart - $VDR2JPEG not found!" fi echo "---" done