VDR - Video Disk Recorder

Inhalt:

  1. Zielsetzung
  2. Historie
  3. Hardware
    1. Beamer
  4. Literatur und Links
  5. Software
    1. Linux-Kernel 2.6.16.16
    2. VDR 1.4
    3. VDR 1.7
    4. Patches für VDR 1.2
    5. VDR-Admin-AM
    6. Generelles zu Plugins
    7. remote-Plugin
    8. osdteletext-Plugin
    9. mp3-Plugin
    10. mplayer-Plugin
    11. mplayercluster-Plugin
    12. Image-Plugin
    13. Streamdev-Plugin
    14. Femon-Plugin
    15. Radio-Plugin
    16. Streaming-Client
    17. xine-Plugin
    18. xineliboutput-Plugin
    19. eggtimer-Plugin
    20. streamplayer-Plugin
    21. kvdr
    22. Konvertierungen
    23. remoteosd-Plugin
    24. noad-Skript
    25. Budget-Only-Server
    26. Wohnzimmer-VDR
    27. Wohnzimmer-VDR 2.0
    28. extrecmenu-Plugin
    29. DVDs brennen
    30. DVB-Tuner bzw. Karte defekt
    31. HDTV-Hardware
    32. HDTV-Client
    33. weather-ng-Plugin
    34. suspendoutput-Plugin
    35. Notebook-HDTV-VDR
    36. XBMC als Frontend
    37. Samba/CIFS statt NFS
    38. Checkliste: Was braucht ein VDR?
    39. UPnP
    40. iStreamdev

Zielsetzung

Als Ziel möchte ich mit VDR das ganze Haus mit digitalem Fernseh-Programm versorgen. Das sollte sowohl über normale Fernseh-Geräte, als auch über Ethernet/WLAN möglich sein.
Im folgenden dokumentiere ich den aktuellen Entwicklungsstand.

Historie


Hardware

Auf dem Dach ist eine 75cm Schüssel mit einem digitaltauglichen Quattro-LNB und eine UKW-Radio-Antenne installiert und auf die Astra-Satelliten ausgerichtet.
Die 4 Kabel vom LNB laufen im Keller auf einen 8-Port-Multiswitch AMS 508 (Wichtig: Den Multiswitch erden!).
Vom Multi-Switch gehen 3 Kabel in 3 digitale Satelliten-Karten bzw. USB-Box.
Davon ist eine Karte eine sog. Full-Featured-Karte (also mit MPEG-Dekoder): Hauppauge Nexus-s.
Die andere Karte ist eine sog. Budget-Karte (also ohne MPEG-Dekoder): Hauppauge WinTV NOVA-s Plus PCI.
Als drittes Empfangsteil verwende ich eine TeVii S660, eine externe USB-Box, die DVB-S2 empfangen kann.
Das Ausgangssignal der Nexus geht von den Cinch-Ausgängen auf den Scart-Anschluß eines alten Videorecorders. Der Videorecorder moduliert das Signal auf Kanal 30 (Tuner-Betrieb). Dieses Ausgangssignal wird mittels eines umgedrehten Y-Adapters zusammen mit der UKW-Antenne vom Dach in den terrestrischen Eingang des Multi-Switches eingespeist.
Die anderes Ausgänge des Multi-Switches gehen in die einzelnen Zimmer.
Auf diese Art und Weise habe ich in jedem Zimmer das Satelliten-Signal, das UKW-Radio-Signal und das Ausgangssingal der DVB-Karte zu Verfügung.
Ins Wohnzimmer zum Fernseher geht noch ein selbstgebasteltes Verlängerungskabel für die Fernbedienung des Infrarotempfängers der Hauppauge Fernbedienung.
Der PC, in dem die DVB-Karten stecken, war anfangs ein alter gebraucht für 40 EUR erworbener Pentium II mit 233 MHz und zwei 250 GB Festplatten.
Zu dem PC muß ich allerdings erwähnen, daß die CPU eigentlich nur für eine DVB-Karte leistungsfähig genug ist. Wenn man von zwei Karten, also zwei Transpondern gleichzeitig aufnimmt und der Video-Strom eine etwas höhere Datenrate hat (schnelle Bewegungen im Bild), dann kommt es mitunter zu Bild- und/oder Ton-Aussetzern.
Ich würde daher für 2 Karten auch eine CPU mit ca. 350 MHz und mehr empfehlen. Außerdem ist das System ab ca. 500 MHz dann auch leistungsfähig genug, um auch Divx und andere Formate ruckelfrei wiederzugeben.
Ich habe aus ebendiesen Gründen ein neues System gekauft: AMD Athlon XP 2200+. Damit macht das Ganze nun wirklich Spaß :-)

Projektor / Beamer / Leinwand

Als Projektor habe ich den Panasonic PT-AE900E (Getestet in c't 1/2006 S. 108, siehe auch den Eintrag in der Projektoren-Datenbank). Dazu passend habe ich eine Motor-Leinwand von Alphaluxx im 4:3 Format, Tuch 240x183cm, sichtbarer Fläche 230x173cm, Gain 1.2, LCD-Tuch, schwarze Rückseite und 5cm umlaufender schwarzer Rand (Getestet bei areadvd.de). Damit erreicht man bei 16:9-Sendungen eine Bildschirmdiagonale von 2,50m. Sowohl Beamer, als auch die Leinwand kann ich sehr empfehlen.
So sieht das Ganze dann bei mir aus: Beamer und Surround-Receiver und Leinwand. Noch mehr Wissenswertes und Notizen zum Beamerkauf:

Literatur und Links


Software

Linux-Kernel 2.6.16.16

Der 2.6er Kernel enthält bereits alle notwendigen Treiber.
Es schadet nicht CONFIG_HIGH_RES_TIMERS = yes zu setzen.
Dann kommt wenigstens nicht mehr diese Fehlermeldung:
cTimeMs: not using monotonic clock - resolution is too bad
Für die Fernbedienung braucht die Kernel-Option CONFIG_INPUT_EVDEV.
Für die Nexus muss man diese Optionen aktivieren:
DVB Core Support (DVB_CORE)
AV7110 cards (DVB_AV7110)
AV7110 OSD support (DVB_AV7110_OSD)
Laden muss man das Modul dvb_ttpci und für die Fernbedienung evdev.
Für die Nova braucht man diese Optionen:
Conexant 2388x (bt878 successor) support (VIDEO_CX88)
DVB/ATSC Support for cx2388x based TV cards (VIDEO_CX88_DVB)
Build all supported frontends for cx2388x based TV cards (VIDEO_CX88_DVB_ALL_FRONTENDS)
Laden muss man das Modul cx88-dvb.
Man braucht nur noch die Firmware für die Hauppauge Nexus. Die gibt es bei
http://www.linuxtv.org/downloads/firmware/
bzw.
http://blog.janjonas.net/2010-03-16/linux-hauppauge-nexus-firmware-update
bzw.
http://www.escape-edv.de/endriss/firmware/.
Ich nutze Version dvb-ttpci-01.fw-2622.
Das Laden der Firmware erfolgt durch udev und hotplug vollautomatisch. Man muss nur die Firmware an die richtige Stelle kopieren:
mkdir -p /lib/firmware
cp dvb-ttpci-01.fw-2622 /lib/firmware/dvb-ttpci-01.fw
Wenn das nicht funktioniert, dann hat man das udev und hutplug unter Gentoo noch nicht richtig installiert. Das kann man nachholen:
emerge -avt udev hotplug coldplug
Bitte darauf achten, daß sich im Laufe der DVB-Treiber-Entwicklung die Major-Number von 250 auf 212 geändert hat. In /dev sollte es so aussehen:
/dev/dvb:
total 114
drwxr-xr-x    6 root     root          144 2004-09-04 14:59 .
drwxr-xr-x   32 root     root       116472 2004-09-09 14:25 ..
drwxr-xr-x    2 root     root          248 2004-09-04 14:59 adapter0
drwxr-xr-x    2 root     root          248 2004-09-04 14:59 adapter1
drwxr-xr-x    2 root     root          248 2004-09-04 14:59 adapter2
drwxr-xr-x    2 root     root          248 2004-09-04 14:59 adapter3

/dev/dvb/adapter0:
total 0
drwxr-xr-x    2 root     root          248 2004-09-04 14:59 .
drwxr-xr-x    6 root     root          144 2004-09-04 14:59 ..
crw-rw----    1 root     root     212,   1 2004-09-04 14:59 audio0
crw-rw----    1 root     root     212,   6 2004-09-04 14:59 ca0
crw-rw----    1 root     root     212,   4 2004-09-04 14:59 demux0
crw-rw----    1 root     root     212,   5 2004-09-04 14:59 dvr0
crw-rw----    1 root     root     212,   3 2004-09-04 14:59 frontend0
crw-rw----    1 root     root     212,   7 2004-09-04 14:59 net0
crw-rw----    1 root     root     212,   8 2004-09-04 14:59 osd0
crw-rw----    1 root     root     212,   0 2004-09-04 14:59 video0

/dev/dvb/adapter1:
total 0
drwxr-xr-x    2 root     root          248 2004-09-04 14:59 .
drwxr-xr-x    6 root     root          144 2004-09-04 14:59 ..
crw-rw----    1 root     root     212,  65 2004-09-04 14:59 audio0
crw-rw----    1 root     root     212,  70 2004-09-04 14:59 ca0
crw-rw----    1 root     root     212,  68 2004-09-04 14:59 demux0
crw-rw----    1 root     root     212,  69 2004-09-04 14:59 dvr0
crw-rw----    1 root     root     212,  67 2004-09-04 14:59 frontend0
crw-rw----    1 root     root     212,  71 2004-09-04 14:59 net0
crw-rw----    1 root     root     212,  72 2004-09-04 14:59 osd0
crw-rw----    1 root     root     212,  64 2004-09-04 14:59 video0

/dev/dvb/adapter2:
total 0
drwxr-xr-x    2 root     root          248 2004-09-04 14:59 .
drwxr-xr-x    6 root     root          144 2004-09-04 14:59 ..
crw-rw----    1 root     root     212, 129 2004-09-04 14:59 audio0
crw-rw----    1 root     root     212, 134 2004-09-04 14:59 ca0
crw-rw----    1 root     root     212, 132 2004-09-04 14:59 demux0
crw-rw----    1 root     root     212, 133 2004-09-04 14:59 dvr0
crw-rw----    1 root     root     212, 131 2004-09-04 14:59 frontend0
crw-rw----    1 root     root     212, 135 2004-09-04 14:59 net0
crw-rw----    1 root     root     212, 136 2004-09-04 14:59 osd0
crw-rw----    1 root     root     212, 128 2004-09-04 14:59 video0

/dev/dvb/adapter3:
total 0
drwxr-xr-x    2 root     root          248 2004-09-04 14:59 .
drwxr-xr-x    6 root     root          144 2004-09-04 14:59 ..
crw-rw----    1 root     root     212, 193 2004-09-04 14:59 audio0
crw-rw----    1 root     root     212, 198 2004-09-04 14:59 ca0
crw-rw----    1 root     root     212, 196 2004-09-04 14:59 demux0
crw-rw----    1 root     root     212, 197 2004-09-04 14:59 dvr0
crw-rw----    1 root     root     212, 195 2004-09-04 14:59 frontend0
crw-rw----    1 root     root     212, 199 2004-09-04 14:59 net0
crw-rw----    1 root     root     212, 200 2004-09-04 14:59 osd0
crw-rw----    1 root     root     212, 192 2004-09-04 14:59 video0

VDR 1.4 für den Server im Keller

Download der aktuellen Version gibt es in diesem Verzeichnis.
Entwickler-Versionen gibt es in diesem Verzeichnis.
Voraussetzungen: Wenn man nur ein minimales Gentoo installiert hat, dann braucht man noch das:
emerge -avt media-libs/jpeg
Installation:
emerge -avt sys-libs/libcap
emerge -avt ffmpeg
cd /usr/src
bunzip2 -cd /usr/src/vdr-1.4.7.tar.bz2 | tar -xf -
cd /usr/src/vdr-1.4.7
Dann nach persönlichen Bedürfnissen Patches (Liste im Wiki) einspielen oder auch nicht.
make
strip vdr
mkdir /video0
cp vdr /video0/
cd PLUGINS/src
gunzip -cd /usr/src/vdr-remote-0.3.7.tgz | tar -xf -
ln -s remote-0.3.7 remote
gunzip -cd /usr/src/vdr-osdteletext-0.5.1.tgz | tar -xf -
ln -s osdteletext-0.5.1 osdteletext
cd osdteletext
patch < /usr/src/vdr-osdteletext-0.5.1.patch
cd ..
gunzip -cd /usr/src/vdr-image-0.2.6.tar.gz | tar -xf -
ln -s image-0.2.6 image
gunzip -cd /usr/src/vdr-radio-0.1.3.tgz | tar -xf -
ln -s radio-0.1.3 radio
gunzip -cd /usr/src/vdr-femon-1.0.1.tgz | tar -xf -
ln -s femon-1.0.1 femon
gunzip -cd /usr/src/vdr-epgsearch-0.9.22.tgz | tar -xf -
ln -s epgsearch-0.9.22 epgsearch
gunzip -cd /usr/src/vdr-remoteosd-0.0.2.tgz | tar -xf -
ln -s remoteosd-0.0.2 remoteosd
gunzip -cd /usr/src/vdr-svdrpext-0.0.1.tgz | tar -xf -
ln -s svdrpext-0.0.1 svdrpext
gunzip -cd /usr/src/vdr-svdrpservice-0.0.3.tgz | tar -xf -
ln -s svdrpservice-0.0.3 svdrpservice
# streamdev aus dem CVS holen nach streamdev-CVS
ln -s streamdev-CVS streamdev
gunzip -cd /usr/src/vdr-mp3-0.9.15.tar.gz | tar -xf -
ln -s mp3-0.9.15 mp3
vi mp3/Makefile
und das ändern:
WITHOUT_LIBVORBISFILE=1
WITHOUT_LIBSNDFILE=1
cd ..
cd ..
make plugins
mkdir -p /video0/PLUGINS/lib
cp PLUGINS/lib/libvdr-remote.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-streamdev-server.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-mp3.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-mplayer.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-femon.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-osdteletext.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-radio.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-image.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-epgsearch.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-remoteosd.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-svdrpext.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-svdrpservice.so.* /video0/PLUGINS/lib/
cp channels.conf /video0/
cp sources.conf /video0/
cp diseqc.conf /video0/
cp usr/src/dvb-ttpci-01.fw-2622 /video0/
mkdir -p /lib/firmware
cp dvb-ttpci-01.fw-2622 /lib/firmware/dvb-ttpci-01.fw
modprobe dvb_ttpci
modprobe cx88-dvb
modprobe evdev
mkdir /video1
mkdir /video2
cd /video0
# Erster Test
./vdr -v /video0 -Premote
Um den VDR per SVDRP fernbedienen zu können (notwendig z.B. für VDR-Admin oder kvdr) sollte man die Datei /video0/svdrphosts.conf mit diesem Inhalt anlegen:
127.0.0.1
Testen kann man das mit netcat localhost 2001.
Der Start von VDR erfolgt bei mir über das Gentoo-Init-Skript /etc/init.d/vdr bzw. das eigentliche Startskript /video0/runvdr, das man per
rc-update add vdr default
dauerhaft aktiviert.

VDR 1.7 für den Server im Keller mit HDTV-Empfang (Stand: 11/2010)

Für HD-Empfang ist natürlich eine emtsprechende Hardware nötig. Siehe HDTV-Hardware.
VDR nutzt für HDTV das S2API.
Wer Probleme hat in der Art:
VDR requires Linux DVB driver API version 5.0
hat, der sollte sicherstellen, dass das passende linux-libc-dev Paket zum Kernel installiert ist und Kernel Version >= 2.6.28!
Download der aktuellen Version gibt es in diesem Verzeichnis.
Entwickler-Versionen gibt es in diesem Verzeichnis.
Voraussetzungen: Wenn man nur ein minimales Gentoo installiert hat, dann braucht man noch das:
emerge -avt media-libs/jpeg
Installation:
emerge -avt sys-libs/libcap
emerge -avt ffmpeg
export DOWNLOADDIR=/usr/portage/distfiles
cd $DOWNLOADDIR
wget ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.16.tar.bz2
wget http://streamdev.vdr-developer.org/releases/vdr-streamdev-0.5.0.tgz
wget http://www.escape-edv.de/endriss/vdr/vdr-remote-0.4.0.tgz
wget http://projects.vdr-developer.org/attachments/download/116/vdr-osdteletext-0.8.3.tgz
wget http://download.berlios.de/vdr-image/vdr-image-0.3.0.tar.gz
wget http://egal-vdr.de/plugins/in_progress/vdr-radio-0.9.0pre.tgz
wget http://www.saunalahti.fi/~rahrenbe/vdr/femon/files/vdr-femon-1.7.8.tgz
ACCEPT_KEYWORDS=~x86 emerge -f media-plugins/vdr-epgsearch
# oder:
wget http://winni.vdr-developer.org/epgsearch/downloads/vdr-epgsearch-0.9.25.beta17.tgz
wget http://vdr.schmirler.de/remoteosd/vdr-remoteosd-0.1.0.tgz
wget http://vdr.schmirler.de/svdrposd/vdr-svdrposd-0.1.0.tgz
wget http://vdr.schmirler.de/svdrpservice/vdr-svdrpservice-0.0.4.tgz
wget http://projects.vdr-developer.org/attachments/download/334/vdr-extrecmenu-1.2.tgz
wget http://www.muempf.de/down/vdr-mp3-0.10.2.tar.gz
cd /usr/src/
bunzip2 -cd $DOWNLOADDIR/vdr-1.7.16.tar.bz2 | tar -xf -   
cd vdr-1.7.16/PLUGINS/src/
gunzip -cd $DOWNLOADDIR/vdr-streamdev-0.5.0.tgz | tar -xf -
ln -s streamdev-0.5.0 streamdev
gunzip -cd $DOWNLOADDIR/vdr-remote-0.4.0.tgz | tar -xf - 
ln -s remote-0.4.0 remote
gunzip -cd $DOWNLOADDIR/vdr-osdteletext-0.8.3.tgz | tar -xf - 
ln -s osdteletext-0.8.3 osdteletext 
gunzip -cd $DOWNLOADDIR/vdr-image-0.3.0.tar.gz | tar -xf - 
ln -s image-0.3.0 image 
gunzip -cd $DOWNLOADDIR/vdr-radio-0.9.0pre.tgz | tar -xf -
ln -s radio-0.9.0pre radio 
gunzip -cd $DOWNLOADDIR/vdr-femon-1.7.8.tgz | tar -xf -
ln -s femon-1.7.8 femon
gunzip -cd $DOWNLOADDIR/vdr-epgsearch-0.9.25.beta17.tgz | tar -xf -
ln -s epgsearch-0.9.25.beta17 epgsearch
gunzip -cd $DOWNLOADDIR/vdr-remoteosd-0.1.0.tgz | tar -xf -
ln -s remoteosd-0.1.0 remoteosd
gunzip -cd $DOWNLOADDIR/vdr-svdrposd-0.1.0.tgz | tar -xf -
ln -s svdrposd-0.1.0 svdrposd
gunzip -cd $DOWNLOADDIR/vdr-svdrpservice-0.0.4.tgz | tar -xf -
ln -s svdrpservice-0.0.4 svdrpservice
gunzip -cd $DOWNLOADDIR/vdr-extrecmenu-1.2.tgz | tar -xf - 
ln -s extrecmenu-1.2 extrecmenu
gunzip -cd $DOWNLOADDIR/vdr-mp3-0.10.2.tar.gz | tar -xf - 
ln -s mp3-0.10.2 mp3
vi mp3/Makefile 
# und das ändern: 
WITHOUT_LIBSNDFILE=1 
cd .. 
cd .. 
make
make plugins 
mkdir -p /video/PLUGINS/lib 
cp vdr /video/
cp PLUGINS/lib/libvdr-* /video/PLUGINS/lib/ 
cp channels.conf /video/ 
cp sources.conf /video/ 
cp diseqc.conf /video/
cp -r locale /video/
Kanäle scannen mit W_scan ab Version 20090918:
emerge -avt w_scan
cd /video
w_scan -f s -s S19E2 -E 0 -O 0 -o 7 | tee channels.conf
Beispiele für free-to-air DVB-S2-HD-Kanäle:
Das Erste HD;ARD:11361:HC23M5O35S1:S19.2E:22000:6010=27:6020=deu@3,6021=mis@3;6022=deu@106:6030:0:11100:1:1011:0
ZDF HD;ZDFvision:11361:HC23M5O35S1:S19.2E:22000:6110=27:6120=deu@3,6121=mis@3,6123=qaa@3;6122=deu@106:6130:0:11110:1:1011:0
Einsfestival HD;ARD:12421:HC34M2O0S0:S19.2E:27500:1601=27:1602=deu@3,1603=mis@3;1606=deu@106:0:0:28396:1:1201:0
arte HD;ZDFvision:11361:HC23M5O35S1:S19.2E:22000:6210=27:6221=deu@3,6222=fra@3;6220=deu@106:6230:0:11120:1:1011:0
Servus TV HD;ServusTV:11302:HC23M5O35S1:S19.2E:22000:3583=27:3584=deu@4,3585=eng@4;3587=deu@106:3588:0:4913:1:1007:0
ASTRA HD;BetaDigital:10832:HC23M5O35S1:S19.2E:22000:1023=27:0;1027=deu@106:0:0:61203:1:1057:0
ANIXE HD;BetaDigital:10832:HC23M5O35S1:S19.2E:22000:0:0:0:0:61202:1:1057:0
Erster Test:
cd /video ./vdr -P remote Um den VDR per SVDRP fernbedienen zu können (notwendig z.B. für VDR-Admin) sollte man die Datei /video0/svdrphosts.conf mit diesem Inhalt anlegen:
127.0.0.1
Testen kann man das mit netcat localhost 2001.
Der Start von VDR erfolgt bei mir über das Gentoo-Init-Skript /etc/init.d/vdr bzw. das eigentliche Startskript /video/runvdr, das man per
rc-update add vdr default
dauerhaft aktiviert.
Unterschiede zwischen VDR 1.4 und 1.7, die beim Update zu beachten sind:
Weitere Anleitungen zum Thema HD:

Patches für VDR 1.2


VDR-Admin-AM

(Der ursprüngliche VDR-Admin wird leider nicht mehr weiterentwickelt.)
(Und hier gibts den master-timer.)
Als Alternative bietet sich Xxv an.
Wie folgt nach /video0 installieren:
emerge -avt dev-perl/Compress-Zlib
emerge -avt Locale-gettext
cd /video0
bunzip2 -cd /usr/src/vdradmin-am-3.6.4.tar.bz2 | tar -xf -
ln -s vdradmin-am-3.6.4 vdradmin
cd vdradmin
./vdradmind.pl --config
Das sieht dann so aus:
What's your VDR hostname (e.g video.intra.net)? [localhost]: 
On which port does VDR listen to SVDRP queries? [2001]: 
On which address should VDRAdmin-AM listen (0.0.0.0 for any)? [0.0.0.0]: 
On which port should VDRAdmin-AM listen? [8001]: 
Username? [linvdr]: ************
Password? [linvdr]: ************
Where are your recordings stored? [/video]: /video0
Where are your VDR's configuration files located? [/video]: /video0
Config file written successfully.
Starten: ./vdradmind.pl
Dann kann man mit einem Browser den VDR-Admin ansteuern:
http://my.vdr.server:8001/
Beenden: ./vdradmind.pl -k
Ab Version 3.5.0 gibt es keine Autotimer mehr, sondern das funktioniert dann über das Plugin epgsearch. Die alten Autotimer kann man so ins egpsearch überführen:
autotimer2searchtimer.pl -i /tmp/vdradmind.at -s
und natürlich weiterhin auch per Browser verändern.

Generelles zu Plugins

Es gibt diese zwei Listen von Plugins, wobei die zweite vollständiger scheint: Wenn die Sourcen von VDR in /usr/src/vdr-1.2.6 installiert sind und VDR in /video0, dann müssen die Sourcen der Plugins nach /usr/src/vdr-1.2.6/PLUGINS/src/ ausgepackt werden und in diesem Verzeichnis jeweils ein Link der Art gelegt werden:
ln -s remote-0.2.1 remote
Kompilieren:
cd /usr/src/vdr-1.2.6
make plugins
mv PLUGINS/lib/* /video0/PLUGINS/lib/
Plugins müssen beim VDR-Start mit angegeben werden, z.B.
./vdr -v /video0 -d -Premote -P'osdteletext -r'

remote-Plugin

Das braucht man, wenn man die bei Hauppauge Nexus mitgelieferte Fernbedienung nutzen will.
cd /usr/src/vdr-1.2.6/PLUGINS/src
gunzip -cd /usr/src/vdr-remote-0.2.1.tgz | tar -xf -

osdteletext-Plugin

Mit diesem Plugin wird Videotext (Teletext) per OSD angezeigt.
cd /usr/src/vdr-1.2.6/PLUGINS/src
gunzip -cd /usr/src/vdr-osdteletext-0.3.2.tgz | tar -xf -
Für den Aufruf muß der Parameter -r mitegegeben werden:
-P'osdteletext -r'

mp3-Plugin

Mit diesem Plugin kann man MP3s wiedergeben.
emerge -avt libid3tag
cd /usr/src/vdr-1.2.6/PLUGINS/src
gunzip -cd /usr/src/vdr-mp3-0.9.11.tar.gz | tar -xf -
Im Makefile diese beiden Einträge ändern:
WITHOUT_LIBVORBISFILE=1
WITHOUT_LIBSNDFILE=1
Man muß nur in der Konfigurationsdatei /video0/plugins/mp3sources.conf ein Verzeichnis mit MP3s und - wenn man will - ein Verzeichnis mit Stream-Playlisten angeben:
/audio;MP3;0
/video0/plugins/streams;Streams;0;*.pls
Für jeden Stream legt man dann eine Datei z.B. sunshinelive.pls ins Verzeichnis /video0/plugins/streams mit dem URL als Inhalt:
http://server.sl.de:3000/ES/85
Wenn Covers als Hintergrundbilder angezeigt werden sollen, dann muss man das im Menü des Plugins aktvieren und ein passendes Skript zur Verfügung stellen:
cp examples/image_convert.sh.example /video0/plugins/image_convert.sh
Ausserdem muss das Plugin dann so gestartet werden:
-P'mp3 -i /video0/plugins/image_convert.sh'
Das mitgelieferte Skript hat nur einen kleinen Fehler. Bei "ppmtoy4m" muss noch "-S 420mpeg2" angehängt werden. Für das image_convert braucht man evtl. noch das:
emerge -avt netpbm mjpegtools

mplayer-Plugin

Das mplayer-Plugin kommt mit dem oben genannten mp3-Plugin mit.
Mit diesem Plugin kann man alles wiedergeben, was mplayer wiedergeben kann.
Man muß nur in der Konfigurationsdatei /video0/plugins/mplayersources.conf ein Verzeichnis mit Filmen angeben:
/video0;VDR-Aufnahmen;0
/film-archiv;Film-Archiv;0
und dem VDR die Kommandozeilen-Option "-P'mplayer --mplayer $VIDEODIR/plugins/mplayer.sh'" mitgeben. Natürlich sollte das Skript mplayer.sh existieren. Als Vorlage kann man das beim Plugin im Unterverzeichnis examples mitgelieferte nehmen.
Noch besser ist dieses mplayer.sh.
Für einen fuktionsfähigen Mplayer, der die DVB-Karte direkt als Ausgabegerät verwenden kann, braucht man unter Gentoo noch die Kernel-Header des Kernel 2.6: emerge linux26-headers und mplayer muss USE=dvb gesetzt haben.
Wenn der VDR-Server zu langsam für mplayer ist, dann schafft das mplayercluster-Plugin oder die recode-tools Abhilfe: Auf dem VDR und auf dem rechenstarken Server:
bunzip2 -cd recoder-tools-0.0.2.tar.bz2 | tar -xf -
cd recoder-tools-0.0.2
./configure --with-server-ip=SERVER_IP
make
make install
Die Kommandozeilen-Option muss dann so sein:
-P'mplayer --mplayer /usr/local/bin/recoderc'
Auf dem Server braucht man noch das mplayer.sh. Es reicht auch ein Link:
ln -s /video0/plugins/mplayer.sh /usr/local/bin/mplayer.sh
ln -s /video0/plugins/mplayer.sh.conf /usr/local/bin/mplayer.sh.conf
In der mplayer.sh.conf braucht man diese Option: VO="mpegpes:grab.mpg".
Um auf Server-Seite den recoderd nach jedem Recoden wieder automatisch neu zu starten, trägt man das in die /etc/inittab ein:
re:12345:respawn:/video0/recoderd.sh
Und in diesem Skript steht nur das:
#!/bin/sh
PATH=$PATH:/usr/local/bin
exec /usr/local/bin/recoderd >> /tmp/recoderd.sh.out 2>&1
Ein Problem gibts noch: Der wiedergebende VDR muss nach jeder Wiedergabe neu gestartet werden... TODO!...

mplayercluster-Plugin

Für VDR ab 1.4 sind evtl. diese Patches noch nötig.
Mit diesem Plugin ist es möglich alles wiederzugeben, was mplayer wiedergeben kann, aber die eigentliche Rechenarbeit wird auf einen anderen Rechner ausgelagert.
Man kompiliert das Plugin und kopiert den recode-server auf den Rechner, der das Dekodieren übernehmen soll:
scp /usr/src/vdr-1.2.6/PLUGINS/src/mplayercluster-0.0.1a/recode-server/recode-server myfasthost:/usr/local/bin/
Auf dem "myfasthost" muß ein mplayer in /usr/local/bin/ liegen, der keinen DVB-Support hat. Das erreicht man, in dem man nach dem ./configure --disable-dvb von mplayer alles, was nach dvb aussieht in config.h und config.mak deaktiviert.
Um das Plugin kompilieren zu können ist in der Version VDR 1.2.6 mit mplayercluster 0.0.1a noch dieser Patch nötig:
--- player.c.orig       2004-05-13 11:38:05.000000000 +0200
+++ player.c    2004-05-13 11:42:25.000000000 +0200
@@ -64,7 +64,7 @@
        uchar *buffer = 0;
        int pesc = 0;
        cFrame *readFrame = 0;
-       const cFrame *playFrame = 0;
+       cFrame *playFrame = 0;
 
        cRingBufferFrame *ringBuffer = new cRingBufferFrame(VIDEOBUFSIZE);
Und dann habe für optimale Darstellung noch das recode-server.cpp etwas modifiziert:
--- recode-server.cpp.orig      2004-05-13 14:20:44.000000000 +0200
+++ recode-server.cpp   2004-05-13 15:13:46.385428344 +0200
@@ -313,7 +313,7 @@
                        ::dup2(mpPipes[0], 0);
 
                        ::execl("/usr/local/bin/mplayer", "mplayer", "-vo", "mpegpes", "-ao",
-                                       "mpegpes", "-vop", "lavc,scale=640:480", "-slave", "-sws", "5",
+                                       "mpegpes", "-slave", "-vf", "expand=720:576",
                                        (const char*)videoFilename, NULL);
 
                        LOGe << "Couldn't start mplayer: " << strerror(errno) << endl;
Und nicht vergessen ins VDR-Plugin-Setup zu gehen und die IP-Adresse des "myfasthost" eintragen.

image-Plugin

(Es gibt auch noch dieses image-Plugin.
Mit diesem Plugin kann man Bilder anschauen.
emerge -avt libexif
cd /usr/src/vdr-1.2.6/PLUGINS/src
gunzip -cd /usr/src/vdr-image-0.2.2.tar.gz | tar -xf -
ln -s image-0.2.2 image
find image/ -type d | xargs chmod 755
Für die ffmpeg 0.4.9_p20051216 muss noch in image/liboutput/encode.c diese beiden Zeilen auskommentieren:
pAVCC->frame_rate=GetFrameRate();
pAVCC->frame_rate_base=1;
Dann das image-Plugin kompilieren mit
make plugins
Das File ./scripts/imageplugin.sh muß man noch nach /video0/plugins/ kopieren und den Aufruf vom Plugin so in den vdr-Start eintragen:
-P'image -C $VIDEODIR/plugins/imageplugin.sh' Und:
echo "/fotos;Fotos;0" >> /video0/plugins/imagesources.conf

streamdev-Plugin

Siehe auch: VDR-Wiki.
Die neueste Version gibt es in diesem Verzeichnis.
Oder ganz taufrisch aus dem CVS:
cvs -d:pserver:anoncvs@vdr-developer.org:/var/cvsroot login
cvs -d:pserver:anoncvs@vdr-developer.org:/var/cvsroot co streamdev
Oder die stabile Version:
gunzip -cd /usr/src/vdr-streamdev-0.3.1.tgz | tar -xf -
Mit diesem Plugin kann man Streams über das Netzwerk ermöglichen.
Den Client (z.B. mplayer) startet man mit dem URL http://my.vdr.server:3000/21 oder für Radio (z.B. xmms oder mpg123) mit dem URL http://my-vdr-server:3000/ES/85, wobei die letzte Ziffer der gewünschte Kanal ist.
Ich starte mplayer entweder unter X11 mit den Optionen "-vf lavcdeint -ac mad -fs" oder noch besser auf der Konsole mit den Optionen "-vo fbdev -vf pp=lb -ac mad -fs" (Siehe manpage).
Bei Problemen mit der Dolby-AC3-Wiedergabe hilft die Option "-aid 0".

Ab Version 0.3.x muss man noch eine weitere Datei kopieren und anpassen:
cp PLUGINS/src/streamdev/streamdevhosts.conf.example /video0/plugins/streamdevhosts.conf
vi /video0/plugins/streamdevhosts.conf
Und der Start des Plugins auf dem VDR-Server geht jetzt mit -Pstreamdev-server.
Zum Streamdev-Client: Siehe unter xine-plugin.

Mit dem Streamdev-Plugin kann man zwei VDRs miteinander verbinden, wobei einer der VDR echte Empfangskarten hat und der andere nur das streamdev-client-Plugin. Damit ist Live-TV und sogar Aufnahmen möglich.
Allerdings funktionieren Aufnahmen nur, wenn man die richtigen Prioritäten im streamdev-client-Setup einstellt. Es funktioniert z.B.:
Filter Streaming: yes
Live TV Priority: 0
Minimum Priority: 0
Maximum Priority: 50
Wenn man nun eine Aufnahme programmiert, die eine Priorität größer 50 hat kann kommt die Fehlermeldung "no free DVB device to record channel XX".

femon-Plugin

Dieses Plugin zeigt die Stärke und weitere Infos des Satelliten-Signals an.
gunzip -cd /usr/src/vdr-femon-0.0.7.tgz | tar -xf -
Sollte unter VDR 1.7 die femon-Anzeige nicht funktionieren, sondern nur im syslog diese Meldung erscheinen:
ERROR: cOsd::SetAreas returned 6 (out of memory)
dann muss man das VDR-OSD auf diese Werte setzen:
Weite auf 81% und Höhe auf 87%. (Standard sind 87% und 84%)

radio-Plugin (Alternativ: Update für VDR ab 1.3.22) Das neueste gibts hier!

Diese Plugin zeigt bei Radiosendern ein Hintergrund-Bild statt eines schwarzen Bildschirms an.
Dazu muß man nach /video0/plugins/radio/ einzelne mpg-Standbilder mit dem Namen des Radiosenders legen.
So kann man die *.mpg-Files erstellen:
/video0/plugins/imageplugin.sh /tmp/sun.jpg /tmp/sun.pnm 720 576 0 0 0
convert /tmp/sun.pnm /video0/plugins/radio/sunshine\ live.mpg
oder:
cat image.jpg | jpegtopnm | ppmtoppm | ppmtoy4m -F 25:1 -A 4:3 -I p -r -S 420_mpeg2 -v 2 -n 1 | mpeg2enc -f 8 -a 2 -q 1 -n p -T 120 -R 2 -g 12 -G 12 -o image.mpg
oder für MPEG1 statt MPEG2:
cat image.jpg | jpegtopnm | pnmscale -xsize=720 -ysize=576 | ppmtoppm | ppmtoy4m -F 25:1 -A 4:3 -I p -r -S 420mpeg2 -v 2 -n 1 | mpeg2enc -f 0 -a 2 -q 1 -n p -T 120 -R 2 -g 12 -G 12 -o image.mpg
Den ppmtoy4m kann man durch
emerge -avt media-video/mjpegtools
ggf. nachinstallieren.

VDR fernsteuern über SVDRP

VDR kann über eine simple TCP/IP-Kommunikation in der Art von HTTP ferngesteuert werden. Das kann man entweder mit dem mitgelieferten svdrpsend.pl oder mit netcat machen:
svdrpsend.pl MESG Hallo
oder
/bin/echo -e "MESG Hallo\nQUIT" | netcat localhost 2001
Um SVDRP nutzen zu können, müssen die Client-IP-Adressen oder -Namen in der Datei /video0/svdrphosts.conf eingetragen werden und VDR neu gestartet werden.
Wenn dann VDR nach dem Neustart nicht auf
telnet 127.0.0.1 2001
antwortet ("telnet: connect to address 127.0.0.1: Connection refused"), dann kann das zwei Ursachen haben: Entweder kann VDR die DVB-Karten nicht richtig ansteuern oder er ist gerade in der Fernbedienungs-Tasten-Lernphase.

Wie baue ich einen Streaming-Client?

Ziel und Features meines Streaming-Clients: "Zutaten": Meine Lösung:
Hardware: Ein alter PC (Pentium-II-233) mit einer Hauppauge Nexus.
Installation für VDR 1.4:
cd /usr/src
bunzip2 -cd /usr/src/vdr-1.4.3.tar.bz2 | tar -xf -
cd /usr/src/vdr-1.4.3
make
strip vdr
mkdir /video0
cp vdr /video0/
cd PLUGINS/src
gunzip -cd /usr/src/vdr-remote-0.3.7.tgz | tar -xf -
ln -s remote-0.3.7 remote
gunzip -cd /usr/src/vdr-streamplayer-0.1.3.tgz | tar -xf -
ln -s streamplayer-0.1.3 streamplayer
gunzip -cd /usr/src/vdr-mp3-0.9.15.tar.gz | tar -xf -
ln -s mp3-0.9.15 mp3
vi mp3/Makefile
und das ändern:
WITHOUT_LIBSNDFILE=1
WITHOUT_LIBVORBISFILE=1
Dann noch die Plugins für das RemoteOSD-Plugin (siehe unten).
cd ..
cd ..
make plugins
mkdir -p /video0/PLUGINS/lib
cp PLUGINS/lib/libvdr-remote.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-streamplayer.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-mp3.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-mplayer.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-remoteosd.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-svdrpext.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-svdrpservice.so.* /video0/PLUGINS/lib/
scp server:/video0/channels.conf /video0/
scp server:/video0/sources.conf /video0/
scp server:/video0/dvb-ttpci-01.fw-2622 /video0/
mkdir -p /lib/firmware
cp dvb-ttpci-01.fw-2622 /lib/firmware/dvb-ttpci-01.fw
modprobe dvb_ttpci
mkdir /video0/Aufnahmen
mkdir /video1
mkdir /video2
mount -o ro,rsize=8192,wsize=8192 server:/video0 /video0/Aufnahmen
mount -o ro,rsize=8192,wsize=8192 server:/video1 /video1
mount -o ro,rsize=8192,wsize=8192 server:/video1 /video1
cd /video0
./vdr -v /video0
Für kvdr: Siehe unten bei kvdr
Wenn das alles manuell klappt, dann sollte man das Ganze automatisieren:
Das Skript /video0/runvdr.client anlegen und verlinken:
ln -s /video0/runvdr.client /video0/runvdr
Der Start von VDR erfolgt bei mir über das Gentoo-Init-Skript /etc/init.d/vdr welches obiges runvdr aufruft. Dauerhaft aktivieren:
rc-update add vdr default
Übrigens ist die ~/.xinitrc von root, die zum Start von kvdr verwendet wird, auch sehr übersichtlich:
/video0/kvdr -f -d -u &
unlcutter
Mein Pentium-II-233 schafft das Ganze bestens mit ca. 60% idle!
Noch nicht ausprobiert:
Bild über HDMI mit 1280x720:
Using_Linux_to_watch_HDTV
Modeline "1280x720" 74.520 1280 1368 1424 1656 720 724 730 750 +hsync +vsync

Dann habe ich auf dem Streaming-Client noch folgende Plugins installiert:

xine-Plugin

Eines vorweg: Ich habe wesentlich bessere Erfahrungen mit dem xineliboutput-Plugin gemacht.
Das Xine-Plugin stellt für VDR ein Ausgabe-Gerät zur Verfügung. An dieses Ausgabe-Gerät kann sich die xine-lib und darauf aufsetzende Player wie xine-ui koppeln. Mit dem Xine-Plugin und dem Streamdev-Plugin kann man einen VDR-Client bauen.
Weitere Details finden sich im Wiki.
Ich beschreibe hier die Installation detailliert und mit Versionnummern, da man sonst nie weiss, ob die Patches funktionieren.
cd /usr/src/vdr-1.4.6-1/PLUGINS/src
gunzip -cd /usr/src/vdr-xine-0.7.10.tgz | tar -xf -
ln -s xine-0.7.10 xine
Xine patchen und installieren:
cd /usr/src
wget http://home.vr-web.de/~rnissl/xine-lib-cvs-20061209220000.tar.bz2 http://home.vr-web.de/~rnissl/xine-ui-cvs-20061209220000.tar.bz2
bunzip2 -cd xine-lib-cvs-20061209220000.tar.bz2 | tar -xf -
bunzip2 -cd xine-ui-cvs-20061209220000.tar.bz2 | tar -xf -
cd xine-lib
patch -d. -p1 < /usr/src/vdr-1.4.6/PLUGINS/src/xine/patches/xine-lib.patch
cd..
cd xine-ui
patch -d. -p1 < /usr/src/vdr-1.4.6/PLUGINS/src/xine/patches/xine-ui.patch
cd..
cd xine-lib
./autogen.sh
make
make install
cd..
cd xine-ui
# Evtl. ist noch das nötig:
# export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
./autogen.sh --enable-vdr-keys
make
make install
xine-plugin (0.7.10) ganz normal wie alle Plugins kompilieren und installieren.
Zusätzlich:
md -p /video0/plugins/xine
cp PLUGINS/src/xine/data/*.mpg /video0/plugins/xine/
cp PLUGINS/src/xine/xineplayer /video0/plugins/xine/
Erster Test:
./vdr -v . -Pxine
Es sollten unter /tmp/vdr-xine 6 Fifos auftauchen.
Den xine kann man so beim Start mit dem xine-plugin verbinden:
xine vdr:/tmp/vdr-xine/stream#demux:mpeg_pes
oder
fbxine vdr:/tmp/vdr-xine/stream#demux:mpeg_pes
Dann brauchen wir ja noch ein Input-Device für den VDR. Ich verwende hier den Streamdev-Client. Siehe unter Streamdev-plugin.
Dazu muss man vorbereitend vom VDR-Server die channels.conf ins video-Verzeichnis kopieren, sodass der VDR-Client die Kanäle des Servers kennt.
Start des VDR-Clients:
./vdr -v . -P'xine -r' -Pstreamdev-client
Wenn man zur Fehlersuche das OSD auf der aktuellen Konsole sehen will und den VDR über die Tastatur der Konsole bedienen will, dann den VDR mit so kompilieren (ohne das NO_KBD=1!):
DEBUG_OSD=1 make
Man sollte mal probieren den xine mit der Option "-V xxmc" zu starten (eXtended Xvideo Motion Compensation). Wenn xxmc nicht vorhanden, dann verwendet xine XVideo-MotionCompensation, also "-V xvmc". Evtl. bringt diese Option auch einen Gewinn:
video.device.xvmc_bob_deinterlacing:1
Man kann das xine-Plugin auch zusammen mit dem mplayer-Plugin nutzen.
Dazu installiert man das mplayer-Plugin wie gewohnt (Siehe oben) und ersetzt lediglich im mplayer.sh.conf die Variable
MPLAYER="mplayer"
durch
MPLAYER="/video0/plugins/xine/xineplayer"
Ausserdem ist nur der TRADITIONAL-mode des mplayer-Plugins möglich.
Das funktioniert aber nicht wirklich.

xineliboutput-Plugin

Man braucht nur eine Standard xine-lib, also einfach per emerge installieren.
gunzip -cd /usr/src/vdr-xineliboutput-1.0.0rc2.tgz | tar -xf -
ln -s xineliboutput-1.0.0rc2 xineliboutput
cd ..
cd ..
make plugins
cp PLUGINS/lib/libvdr-xineliboutput.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libxineliboutput-* /video0/PLUGINS/lib/
cd PLUGINS/src/xineliboutput
make install
Es wird das installiert:
/usr/lib/xine/plugins/1.1.4/xineplug_inp_xvdr.so
/usr/lib/xine/plugins/1.1.4/post/xineplug_post_autocrop.so
/usr/lib/xine/plugins/1.1.4/post/xineplug_post_audiochannel.so
/usr/bin/vdr-fbfe
/usr/bin/vdr-sxfe
Dann man besten die README lesen, denn man kann das Plugin auf verschiedene Arten starten.
Vorbereitung: In /video0/svdrphosts.conf sollte die IP des Rechners drin sein, auf dem vdr-sfxe gestartet wird! Wenn alles auf demselben Rechner läuft, dann reicht 127.0.0.1 nicht aus!
Ich mache das Starten von xineliboutput zweigeteilt. Einmal der VDR ohne Frontend:
./vdr -v /video0 -d -t /dev/tty5 -P"xineliboutput --local=none --remote=37890 --primary"
Und dann das Frontend unter X11:
vdr-sxfe --lirc --fullscreen --post tvtime:method=Linear,cheap_mode=1,pulldown=0,use_progressive_frame_flag=1
Wenn man AC3-Ton direkt an einen Receiver ausgeben will, dann muss man möglicherweise in ~/.xine/config_xineliboutput noch das eintragen/ändern:
gui.experience_level:Master of the known universe
gui.audio_mixer_method:Software
audio.driver:alsa
audio.device.alsa_front_device:default
audio.device.alsa_mmap_enable:1
audio.output.speaker_arrangement:Pass Through
audio.synchronization.slow_fast_audio:0
audio.synchronization.av_sync_method:metronom feedback
audio.synchronization.resample_mode:off
audio.volume.mixer_volume:100
audio.volume.remember_volume:1
und
/usr/bin/iecset audio on
/usr/bin/amixer sset 'IEC958 Playback AC97-SPSA' 0

Man kann das laufende Bild (und Ton) von xineliboutput jederzeit streamen: http://RECHNER:37890

Beliebige Streams (Web-Radio, Fernseh-Streams von anderen VDRs, etc.) kann man komfortabel anzeigen lassen, indem man m3u-Dateien in ein Verzeichnis legt mit dem Stream-URI als Inhalt, also z.B.:
http://server:3000/TS/1

eggtimer-Plugin

Das eggtimer-Plugin stellt eine Eieruhr (Kurzzeitwecker) zur Verfügung.
gunzip -cd /usr/src/vdr-eggtimer-0.0.4.tgz | tar -xf -
Man trägt seine gewünschten Zeiten einfach in die Datei $VIDEODIR/plugins/eggtimer.conf ein:
0;10;Maroni;Die Maroni sind fertig!
0;3;Grüner Tee;Der grüne Tee ist fertig!
Die Bedienung geht ganz einfach über das Menü.

streamplayer-Plugin

Mit diesem Plugin kann man Netzwerk-Streams wiedergeben.
gunzip -cd /usr/src/vdr-streamplayer-0.1.3.tgz | tar -xf -
Und so sieht meine /video0/plugins/streamplayer-bookmarks.conf aus:
ARD:http://server:3000/TS/1
ZDF:http://server:3000/TS/2
BR3:http://server:3000/TS/3
Sat.1:http://server:3000/TS/6
RTL:http://server:3000/TS/7
WDR:http://server:3000/TS/8
Pro-7:http://server:3000/TS/11
3sat:http://server:3000/TS/12
Kabel 1:http://server:3000/TS/14
RTL2:http://server:3000/TS/15
VOX:http://server:3000/TS/16
arte:http://server:3000/TS/17
Super RTL:http://server:3000/TS/18
N3:http://server:3000/TS/20
SunshineLive:http://server:3000/ES/85

kvdr

Voraussetzungen:
emerge -avt qt
emerge -avt kdelibs
emerge -avt arts
emerge -avt xawtv
env-update
source /etc/profile
Evtl. muss man noch manuell export KDEDIR=/usr/kde/3.4 setzen.
Kompilieren dann mit dem üblichen ./configure && make
Für ein problemloses Zusammenarbeiten von kvdr und z.B. VDR-Admin oder mein Überwachungsskript /video0/runvdr, sollte man beim VDR den SVDRP-Timeout auf ca. 15 Sekunden einstellen.
Ausserdem nicht vergessen über /video0/svdrphosts.conf den Zugriff ermöglichen:
127.0.0.1
Testen kann man das mit netcat localhost 2001.

VDR-Aufnahmen konvertieren, also in andere Formate umwandeln (Stand 11/2010)


remoteosd-Plugin

Mit diesem Plugin kann man einen anmderen VDR fernsteuern.
gunzip -cd /usr/src/vdr-remoteosd-0.0.1.tgz | tar -xf -
gunzip -cd /usr/src/vdr-svdrpext-0.0.1.tgz | tar -xf -
gunzip -cd /usr/src/vdr-svdrpservice-0.0.2.tgz | tar -xf -
ln -s remoteosd-0.0.1 remoteosd
ln -s svdrpext-0.0.1 svdrpext
ln -s svdrpservice-0.0.2 svdrpservice
cd..
cd..
make plugins
cp PLUGINS/lib/libvdr-remoteosd.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-svdrpext.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-svdrpservice.so.* /video0/PLUGINS/lib/
echo "remoteosd.ServerIp = IP_des_VDR_der_gesteuert_werden_soll" >> /video0/setup.conf

noad-Skript

Ein Programm zum automatischen Setzen von Schnittmarken für Werbeeinblendungen.
echo "media-video/noad ffmpeg imagemagick" >> /etc/portage/package.use
emerge -avt noad
Ein erster Test:
noad -v --ac3 --overlap --jumplogo --comments --OSD --statisticfile=/var/log/vdr/noad.log nice /video0/Filme/Test/2006-09-04.22.03.40.99.rec
Wenn das erfolgreich ist, dann dauerhaft einrichten, indem man das Skript noad_start in die crontab einträgt, z.B.:
0 0 * * * /usr/sl/noad_start

Wie baue ich einen Server, der nur aufnehmen soll (keine Wiedergabe/Ausgabe)?

Hardware: Beliebiger Linux-PC mit einerm DVB-T-Stick (hier: TerraTec Cinergy T2).
Für diesen Stick braucht man im Kernel natürlich USB-Unterstützung und noch dieses:
CONFIG_DVB_CINERGYT2
CONFIG_USB_EHCI_HCD
CONFIG_USB_OHCI_HCD
Ohne die EHCI und OHCI geht der Stick nur "halb", d.h. ein Channel-Scan geht, aber sonst kein Empfang.
(Es gibt auch einen Treiber für die Hauppauge WinTV PVR USB2, aber diesen Stick kenne ich nicht.)
Dann kanns losgehen:
cd /usr/src
bunzip2 -cd /usr/src/vdr-1.4.4.tar.bz2 | tar -xf -
cd /usr/src/vdr-1.4.4
make
strip vdr
mkdir /video0
cp vdr /video0/
vi /video0/channels.conf
und das einfügen:
Das Erste:212500:I999B7C34D12M16T8G4Y0:T:27500:513:514:516:0:32:0:0:0
arte:212500:I999B7C34D12M16T8G4Y0:T:27500:33:34,35:36:0:2:0:0:0
Phoenix:212500:I999B7C34D12M16T8G4Y0:T:27500:49:50:52:0:3:0:0:0
EinsPlus:212500:I999B7C34D12M16T8G4Y0:T:27500:97:98:516:0:6:0:0:0
RTL2:578000:I999B8C23D12M16T8G4Y0:T:27500:353:354:359:0:16406:0:0:0
Super RTL:578000:I999B8C23D12M16T8G4Y0:T:27500:433:434:439:0:16411:0:0:0
VOX:578000:I999B8C23D12M16T8G4Y0:T:27500:545:546:551:0:16418:0:0:0
RTL Television:578000:I999B8C23D12M16T8G4Y0:T:27500:337:338:343:0:16405:0:0:0
ZDF:586000:I999B8C23D12M16T8G4Y0:T:27500:545:546,547;559:551:0:514:0:0:0
3sat:586000:I999B8C23D12M16T8G4Y0:T:27500:561:562,563;575:567:0:515:0:0:0
Doku/KiKa:586000:I999B8C23D12M16T8G4Y0:T:27500:593:594:599:0:517:0:0:0
N24:690000:I999B8C23D12M16T8G4Y0:T:27500:225:226:231:0:16398:0:0:0
ProSieben:690000:I999B8C23D12M16T8G4Y0:T:27500:305:306;312:311:0:16403:0:0:0
kabel eins:690000:I999B8C23D12M16T8G4Y0:T:27500:161:162:167:0:16394:0:0:0
Sat.1:690000:I999B8C23D12M16T8G4Y0:T:27500:385:386;392:391:0:16408:0:0:0
BFS Süd:754000:I999B8C23D23M16T8G4Y0:T:27500:545:546:548:0:34:0:0:0
BR-alpha:754000:I999B8C23D23M16T8G4Y0:T:27500:561:562:564:0:35:0:0:0
SÜDWEST BW:754000:I999B8C23D23M16T8G4Y0:T:27500:3601:3602:3604:0:225:0:0:0
Eurosport:834000:I999B8C23D12M16T8G4Y0:T:27500:577:578:583:0:16420:0:0:0
TELE 5:834000:I999B8C23D12M16T8G4Y0:T:27500:465:466:471:0:16413:0:0:0
HSE24:834000:I999B8C23D12M16T8G4Y0:T:27500:145:146:151:0:16393:0:0:0
München TV:834000:I999B8C23D12M16T8G4Y0:T:27500:2177:2178:0:0:18564:0:0:0
Alternativ kann man auch Kanäle automatisch suchen: w_scan >> /video0/channels.conf
cp sources.conf /video0/
cp diseqc.conf /video0/
cd PLUGINS/src/
# streamdev aus dem CVS holen nach streamdev-CVS
ln -s streamdev-CVS streamdev
gunzip -cd /usr/src/vdr-epgsearch-0.9.19.tgz | tar -xf -
ln -s epgsearch-0.9.19 epgsearch
cd..
cd..
make plugins
md -p /video0/PLUGINS/lib
cp PLUGINS/lib/libvdr-skincurses.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-streamdev-server.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-epgsearch.so.* /video0/PLUGINS/lib/
md /video0/plugins
cp PLUGINS/src/streamdev/streamdevhosts.conf.example /video0/plugins/streamdevhosts.conf
vi /video0/plugins/streamdevhosts.conf
vi /video0/svdrphosts.conf (und 127.0.0.1 eintragen)
cd /video0
./vdr -v /video0 -P skincurses -P streamdev-server -P epgsearch
Dann noch den VDR-Admin installieren. Fertig!

Wie baue ich einen wohnzimmertauglichen VDR?

Hardware: Erst mal das einfache vorneweg: Wake-On-LAN. Dazu muss man in /etc/conf.d/local.start das eintragen:
ethtool -s eth0 wol g
echo -n PCI0 > /proc/acpi/wakeup
Grundlagen zum Wake-on-LAN findet man in c't 1/2011 S. 150
Aufwecken kann man den Rechner dann so:
wakeonlan 00:0e:2e:a7:9b:47
Dann kanns mit dem VDR losgehen:
cd /usr/src
bunzip2 -cd /usr/src/vdr-1.4.6.tar.bz2 | tar -xf -
cd /usr/src/vdr-1.4.6
make
strip vdr
mkdir /video0
cp vdr /video0/
cp svdrpsend.pl /video0/
vi /video0/channels.conf
und das einfügen:
Das Erste:212500:I999B7C34D12M16T8G4Y0:T:27500:513:514:516:0:32:0:0:0
arte:212500:I999B7C34D12M16T8G4Y0:T:27500:33:34,35:36:0:2:0:0:0
Phoenix:212500:I999B7C34D12M16T8G4Y0:T:27500:49:50:52:0:3:0:0:0
EinsPlus:212500:I999B7C34D12M16T8G4Y0:T:27500:97:98:516:0:6:0:0:0
RTL2:578000:I999B8C23D12M16T8G4Y0:T:27500:353:354:359:0:16406:0:0:0
Super RTL:578000:I999B8C23D12M16T8G4Y0:T:27500:433:434:439:0:16411:0:0:0
VOX:578000:I999B8C23D12M16T8G4Y0:T:27500:545:546:551:0:16418:0:0:0
RTL Television:578000:I999B8C23D12M16T8G4Y0:T:27500:337:338:343:0:16405:0:0:0
ZDF:586000:I999B8C23D12M16T8G4Y0:T:27500:545:546,547;559:551:0:514:0:0:0
3sat:586000:I999B8C23D12M16T8G4Y0:T:27500:561:562,563;575:567:0:515:0:0:0
Doku/KiKa:586000:I999B8C23D12M16T8G4Y0:T:27500:593:594:599:0:517:0:0:0
N24:690000:I999B8C23D12M16T8G4Y0:T:27500:225:226:231:0:16398:0:0:0
ProSieben:690000:I999B8C23D12M16T8G4Y0:T:27500:305:306;312:311:0:16403:0:0:0
kabel eins:690000:I999B8C23D12M16T8G4Y0:T:27500:161:162:167:0:16394:0:0:0
Sat.1:690000:I999B8C23D12M16T8G4Y0:T:27500:385:386;392:391:0:16408:0:0:0
BFS Süd:754000:I999B8C23D23M16T8G4Y0:T:27500:545:546:548:0:34:0:0:0
BR-alpha:754000:I999B8C23D23M16T8G4Y0:T:27500:561:562:564:0:35:0:0:0
SÜDWEST BW:754000:I999B8C23D23M16T8G4Y0:T:27500:3601:3602:3604:0:225:0:0:0
Eurosport:834000:I999B8C23D12M16T8G4Y0:T:27500:577:578:583:0:16420:0:0:0
TELE 5:834000:I999B8C23D12M16T8G4Y0:T:27500:465:466:471:0:16413:0:0:0
HSE24:834000:I999B8C23D12M16T8G4Y0:T:27500:145:146:151:0:16393:0:0:0
München TV:834000:I999B8C23D12M16T8G4Y0:T:27500:2177:2178:0:0:18564:0:0:0
Alternativ kann man auch Kanäle automatisch suchen: w_scan >> /video0/channels.conf
cp sources.conf /video0/
cp diseqc.conf /video0/
cd PLUGINS/src/
# streamdev aus dem CVS holen nach streamdev-CVS
ln -s streamdev-CVS streamdev
gunzip -cd /usr/src/vdr-epgsearch-0.9.20.tgz | tar -xf -
ln -s epgsearch-0.9.20 epgsearch
gunzip -cd /usr/src/vdr-image-0.2.6.tar.gz | tar -xf -
ln -s image-0.2.6 image
bunzip2 -cd /usr/src/vdr-bitstreamout-0.85.tar.bz2 | tar -xf -
ln -s bitstreamout-0.85 bitstreamout
cd bitstreamout
patch < /usr/src/vdr-bitstreamout-0.85.patch
cd..
gunzip -cd /usr/src/vdr-mp3-0.9.15.tar.gz | tar -xf -
ln -s mp3-0.9.15 mp3
vi mp3/Makefile
und das ändern:
WITHOUT_LIBSNDFILE=1
WITHOUT_LIBVORBISFILE=1
cd..
cd..
make plugins
md -p /video0/PLUGINS/lib
cp PLUGINS/lib/libvdr-skincurses.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-streamdev-server.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-epgsearch.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-image.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-mp3.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-mplayer.so.* /video0/PLUGINS/lib/
md /video0/plugins
cp PLUGINS/src/streamdev/streamdevhosts.conf.example /video0/plugins/streamdevhosts.conf
cp PLUGINS/src/image/scripts/imageplugin.sh /video0/plugins/
echo "/fotos;Fotos;0" >> /video0/plugins/imagesources.conf
vi /video0/plugins/streamdevhosts.conf
vi /video0/svdrphosts.conf (und 127.0.0.1 eintragen)
cd /video0
./vdr -v /video0 -P skincurses -P streamdev-server -P epgsearch
Dann noch den VDR-Admin installieren.
Soweit ist dann schon mal ein Basis-VDR am Laufen.
Jetzt zur PVR-350:
Im Kernel diese Optionen setzen:
CONFIG_I2C_ALGOBIT
CONFIG_I2C_CHARDEV
CONFIG_VIDEO_DECODER
CONFIG_VIDEO_AUDIO_DECODER
CONFIG_VIDEO_BT848
CONFIG_VIDEO_WM8775
CONFIG_VIDEO_CX25840
CONFIG_VIDEO_SAA711X
CONFIG_VIDEO_CX2341X
CONFIG_VIDEO_SAA7127
CONFIG_VIDEO_CX88
CONFIG_VIDEO_WM8775
CONFIG_VIDEO_MSP3400
CONFIG_VIDEO_CX25840
CONFIG_VIDEO_SAA711X
CONFIG_VIDEO_CX2341X
CONFIG_VIDEO_SAA7127
In den USE-Flags muss man "fbcon" drin haben.
emerge -avt linux-headers
ACCEPT_KEYWORDS=~x86 emerge -avt =vanilla-sources-2.6.18.4
echo "media-tv/ivtv ~x86" >> /etc/portage/package.keywords
emerge -avt =media-tv/ivtv-0.8.2-r1
echo ">media-tv/ivtv-0.8.2-r1" >> /etc/portage/package.mask
modprobe ivtv
modprobe ivtv-fb
(Zum ivtv sollte man bei Problemen auch das Gentoo-Howto dazu lesen.)
Um zu verhindern, dass sich udev und hotplug ins Gehege kommen und damit bei Laden der Firmware zu einem Einfrieren des ganzen Systems zu führen, muss man den firmware.agent des hotplug entfernen:
rm /etc/hotplug/firmware.agent
Dann um die Fernbedienung der PVR-350 zum Laufen zu bekommen:
echo "LIRC_DEVICES=hauppauge" >> /etc/make.conf
emerge -avt lirc
modprobe lirc_i2c
Zum ersten Test:
mode2
Das sollte die Ferbedienungs-Codes ausgeben, wenn man eine Taste drückt.
Wenn ja, dann Daemon starten:
/etc/init.d/lircd start
rc-update add lircd default
Weiter mit dem VDR:
cd /usr/src/vdr-1.4.6/PLUGINS/src
gunzip -cd /usr/src/vdr-remote-0.3.7.tgz | tar -xf -
ln -s remote-0.3.7 remote
gunzip -cd /usr/src/vdr-pvr350-0.0.4pre1.tgz | tar -xf -
ln -s pvr350-0.0.4pre1 pvr350
cd pvr350
# Dann diese beiden Patches ausführen:
patch < /usr/src/vdr-pvr350-0.0.4_pre1-Makefile.diff
patch -p1 < /usr/src/vdr-pvr350-0.0.4_pre1-vdr-1.3.42.diff
cd..
cd..
cd..
make plugins
cp PLUGINS/lib/libvdr-pvr350.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-remote.so.* /video0/PLUGINS/lib/
./vdr -v /video0 -P pvr350 -P streamdev-server -P epgsearch -P"remote --lirc=/dev/lircd"
Nun zum analogen Eingang der PVR-350:
Meiner Erfahrung nach funktioniert das ptv-Plugin nicht, obwohl es einen sehr guten Channel-Scan durchführt! Daher hab ich es mal hier aufgelistet. Für die Praxis empfehle ich das pvrinput-Plugin zu nutzen.
cd /usr/src/vdr-1.4.6/PLUGINS/src
gunzip -cd /usr/src/vdr-ptv-20061021.tgz | tar -xf -
ln -s ptv-20061021 ptv
patch -p1 < /usr/src/vdr-ptv-20061021.patch
gunzip -cd /usr/src/vdr-pvrinput-0.1.1.tgz | tar -xf -
ln -s pvrinput-0.1.1 pvrinput
cd..
cd..
cd..
make plugins
cp PLUGINS/lib/libvdr-ptv.so.* /video0/PLUGINS/lib/
cp PLUGINS/lib/libvdr-pvrinput.so.* /video0/PLUGINS/lib/
Für den Channel-Scan: (Kanal-Format im Plugin-Menü auf "pvrinput" setzen!):
./vdr -v /video0 -P ptv -P pvr350 -P"remote --lirc=/dev/lircd"
Dann wirklich:
./vdr -v /video0 -P pvrinput -P pvr350 -P"remote --lirc=/dev/lircd"
Zum NVRAM-Wakeup:
emerge -avt nvram-wakeup
Die /boot/grub/menu.lst sollte so aussehen:
default saved
timeout 8
splashimage=(hd0,1)/boot/grub/splash.xpm.gz

title=Linux 2.6.18.4
root (hd0,1)
kernel /boot/2.6.18.4 root=/dev/hda2 vga=791

title=halt
root (hd0,1)
savedefault 0
cat /boot/grub/default
halt
Im Kernel: CONFIG_NVRAM=y
Für dieses spezielle Motherboard muss man noch diese /etc/nvram-wakeup.conf anlegen.
Eine Besonderheit gibt es bei diesem MSI MS-6723 noch:
Einmalig muß im BIOS "RTC-Wakeup" aktiviert werden und dort eine Wakeup-Zeit gesetzt werden, die keine "0" beinhaltet, (Bsp.: Day: 11, Hour: 12, Min.: 13, Sec.: 14).
Dann kann man es erstmalig testen:
nvram-wakeup -C /etc/nvram-wakeup.conf --directisa -s $(( `date +%s`+ 10*60 ))
grub-set-default 1
reboot
Dann sollte sich der Rechner nach ein paar Minuten wieder von selbst einschalten.
Für den VDR-Shutdown braucht man dann noch ein kleines Skript: /video0/shutdownvdr.
Und für das normale Herunterfahren des Systems am besten in /etc/conf.d/local.stop das eintragen:
if [ -e /tmp/shutdown-by-vdr.txt ]
then
  echo Shutdown durch VDR. Nichts zu tun.
  rm /tmp/shutdown-by-vdr.txt
else
  echo Normaler Shutdown
  DATE=`/video0/svdrpsend.pl -d localhost NEXT abs|grep 250 |cut -f3 -d' '|tr -d '\r'`
  if [ "$DATE" == "" ]
  then
    DATE=$((`date +%s` + 24 * 60 * 60))
  fi
  echo local.stop abs: $DATE >> /tmp/shutdown.txt
  nvram-wakeup -C /etc/nvram-wakeup.conf --directisa -s $DATE
  grub-set-default 1
fi
Das xine-plugin funktioniert nach obiger Anleitung.
Dazu schreibt man am besten in die /root/.xinitrc diese Zeile:
xine --deinterlace -f vdr:/tmp/vdr-xine/stream#demux:mpeg_pes
Wenn den Sound des VDR nicht über S/PDIF ausgeben will, dann lässt man das bitstreamout-Plugin einfach weg.
Start des VDR erfolgt über /video0/runvdr
Einziger Nachteil des ivtv für die PVR-350: Bei jedem ca. hundersten Mal Laden des Treibers/Firmware bleibt das ganze System hängen.
Lösung: Auf die PVR-350 verzichten, denn der Digitainer lässt sich auch wunderbar mit DVB-T und dem TV-Out mit dem xine-plugin nutzen. Das schafft der Celeron gerade so.
Noch eleganter ist das ganze mit dem xineliboutput-plugin nach obiger Anleitung.
Dann erfolgt der Start des VDR über dieses /video0/runvdr

Wie baue ich einen wohnzimmertauglichen VDR? - Neue Version mit Sabayon-Linux und VDR 2.0 (Stand: noch in Arbeit)

Hardware: Erst mal das einfache vorneweg: Wake-On-LAN. Dazu muss man in /etc/local.d/wakeonlan.start das eintragen:
#!/bin/bash
ethtool -s enp0s6 wol g
echo -n PCI0 > /proc/acpi/wakeup
Dann noch:
chmod 755 /etc/local.d/wakeonlan.start
Grundlagen zum Wake-on-LAN findet man in c't 1/2011 S. 150
Aufwecken kann man den Rechner dann so:
wakeonlan 00:0e:2e:a7:9b:47
Dann kanns mit dem VDR losgehen:
Voraussetzungen:
pkg-config
xine-lib
Also z.B. unter Sabayon-Linux:
equo install -a pkg-config media-libs/xine-lib
und media-libs/xine-lib-1.2.3, da mit 1.2.2 das vdr-sxfe beim Spulen in HD hängen bleibt!

export DOWNLOADDIR=/usr/src/vdr
export VDRVERSION=2.0.5
mkdir $DOWNLOADDIR
cd $DOWNLOADDIR
wget ftp://ftp.tvdr.de/vdr/vdr-$VDRVERSION.tar.bz2
wget http://winni.vdr-developer.org/epgsearch/downloads/beta/vdr-epgsearch-1.0.1.beta5.tgz
wget http://www.escape-edv.de/endriss/vdr/vdr-remote-0.5.0.tgz
wget http://projects.vdr-developer.org/attachments/download/1580/vdr-streamdev-0.6.1.tgz
wget http://www.saunalahti.fi/~rahrenbe/vdr/femon/
cd /usr/src/
bunzip2 -cd $DOWNLOADDIR/vdr-$VDRVERSION.tar.bz2 | tar -xf -   
cd vdr-$VDRVERSION/PLUGINS/src/
gunzip -cd $DOWNLOADDIR/vdr-epgsearch-1.0.1.beta5.tgz | tar -xf - 
ln -s epgsearch-1.0.1.beta5 epgsearch
gunzip -cd $DOWNLOADDIR/vdr-remote-0.5.0.tgz | tar -xf - 
ln -s remote-0.5.0 remote
gunzip -cd $DOWNLOADDIR/vdr-streamdev-0.6.1.tgz | tar -xf - 
ln -s streamdev-0.6.1 streamdev
gunzip -cd $DOWNLOADDIR/vdr-femon-2.0.2.tgz | tar -xf - 
ln -s femon-2.0.2 femon
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
cd vdr-xineliboutput
cvs update -AD 2013-05-23
cd ..
ln -s vdr-xineliboutput xineliboutput
git clone git://projects.vdr-developer.org/vdr-plugin-extrecmenu.git extrecmenu-git
cd extrecmenu-git
git checkout 8e43c91736a35b197507999ac53de399b0f48dfd
cd ..
ln -s extrecmenu-git extrecmenu
cd ..
cd ..
make -j8
sudo make install
### Das installiert folgendes:
/srv/vdr/video
/var/cache/vdr/epg.data
/var/lib/vdr/diseqc.conf
/var/lib/vdr/sources.conf
/var/lib/vdr/channels.conf
/var/lib/vdr/themes/...
/var/lib/vdr/svdrphosts.conf
/var/lib/vdr/keymacros.conf
/var/lib/vdr/scr.conf
/var/lib/vdr/plugins
/var/lib/vdr/plugins/epgsearch/...
/usr/bin/vdr-fbfe
/usr/bin/vdr-sxfe
/usr/include/xine/vdr.h
/usr/local/bin/vdr
/usr/local/include/vdr
/usr/local/include/vdr/...
/usr/local/share/locale/...
/usr/local/share/vdr
/usr/local/share/man/man5/vdr.5.gz
/usr/local/share/man/man1/vdr.1.gz
/usr/local/lib/pkgconfig/vdr.pc
/usr/local/lib/vdr
/usr/local/lib/vdr/libvdr- ...
###
mkdir -p /var/lib/vdr/plugins/xineliboutput
vi /var/lib/vdr/plugins/xineliboutput/allowed_hosts.conf
# eigene IP-Adresse dort eintragen
# Erster Test:
vdr -w 120 -P skincurses -P"xineliboutput --local=none --remote=37890 --primary"
rm /var/lib/vdr/remote.conf
# Dann richtiger Aufruf:
vdr -w 120 -P extrecmenu -P remote -P epgsearch -P streamdev-client -P streamdev-server -P"xineliboutput --local=none --remote=37890 --primary" -P femon
# Und unter X11 das Frontend starten:
vdr-sxfe
Nach den ersten Tests geht es weiter:
Kanal-Liste automatisch erstellen:
w_scan -f t -A 1 -c DE -R 0 -T 1 -O 0 -E 0 -o 2 > /var/lib/vdr/channels.conf
Dann noch den VDR-Admin installieren:
equo install --ask dev-perl/Locale-gettext
cd $DOWNLOADDIR
wget http://andreas.vdr-developer.org/vdradmin-am/download/vdradmin-am-3.6.9.tar.bz2
cd /var/lib/vdr
bunzip2 -cd $DOWNLOADDIR/vdradmin-am-3.6.9.tar.bz2 | tar -xf -
ln -s vdradmin-am-3.6.9 vdradmin
cd vdradmin
./make.sh check
./vdradmind.pl --config
mkdir cache
./vdradmin
Soweit ist dann schon mal ein Basis-VDR am Laufen.

### FIXME

Zum NVRAM-Wakeup:
emerge -avt nvram-wakeup
Die /boot/grub/menu.lst sollte so aussehen:
default saved
timeout 8
splashimage=(hd0,1)/boot/grub/splash.xpm.gz

title=Linux 2.6.18.4
root (hd0,1)
kernel /boot/2.6.18.4 root=/dev/hda2 vga=791

title=halt
root (hd0,1)
savedefault 0
cat /boot/grub/default
halt
Im Kernel: CONFIG_NVRAM=y
Für dieses spezielle Motherboard muss man noch diese /etc/nvram-wakeup.conf anlegen.
Eine Besonderheit gibt es bei diesem MSI MS-6723 noch:
Einmalig muß im BIOS "RTC-Wakeup" aktiviert werden und dort eine Wakeup-Zeit gesetzt werden, die keine "0" beinhaltet, (Bsp.: Day: 11, Hour: 12, Min.: 13, Sec.: 14).
Dann kann man es erstmalig testen:
nvram-wakeup -C /etc/nvram-wakeup.conf --directisa -s $(( `date +%s`+ 10*60 ))
grub-set-default 1
reboot
Dann sollte sich der Rechner nach ein paar Minuten wieder von selbst einschalten.
Für den VDR-Shutdown braucht man dann noch ein kleines Skript: /video0/shutdownvdr.
Und für das normale Herunterfahren des Systems am besten in /etc/conf.d/local.stop das eintragen:
if [ -e /tmp/shutdown-by-vdr.txt ]
then
  echo Shutdown durch VDR. Nichts zu tun.
  rm /tmp/shutdown-by-vdr.txt
else
  echo Normaler Shutdown
  DATE=`/video0/svdrpsend.pl -d localhost NEXT abs|grep 250 |cut -f3 -d' '|tr -d '\r'`
  if [ "$DATE" == "" ]
  then
    DATE=$((`date +%s` + 24 * 60 * 60))
  fi
  echo local.stop abs: $DATE >> /tmp/shutdown.txt
  nvram-wakeup -C /etc/nvram-wakeup.conf --directisa -s $DATE
  grub-set-default 1
fi
Das xine-plugin funktioniert nach obiger Anleitung.
Dazu schreibt man am besten in die /root/.xinitrc diese Zeile:
xine --deinterlace -f vdr:/tmp/vdr-xine/stream#demux:mpeg_pes
Wenn den Sound des VDR nicht über S/PDIF ausgeben will, dann lässt man das bitstreamout-Plugin einfach weg.
Start des VDR erfolgt über /video0/runvdr
Noch eleganter ist das ganze mit dem xineliboutput-plugin nach obiger Anleitung.
Dann erfolgt der Start des VDR über dieses /video0/runvdr
equo install x11-misc/unclutter --ask /usr/sl/.xinitrc... ### vi /home/loescher/.xine/config_xineliboutput # eintragen: engine.buffers.audio_num_buffers:750 # eintragen: engine.buffers.video_num_frames:50 ###

extrecmenu-Plugin (Stand: 2009)

Dieses Plugin bietet ein neues erweitertes "Recordings"-Menü an. Wichtige Features: Man kann Aufnahmen in andere Verzeichnisse verschieben oder die Lifetime ändern.
cd PLUGINS/src
gunzip -cd /usr/src/vdr-extrecmenu-1.1.tgz | tar -xf -
ln -s extrecmenu-1.1 extrecmenu
cd..
cd..
make plugins
cp PLUGINS/lib/libvdr-extrecmenu.so.1.4.5 /video0/PLUGINS/lib/
Für korrekte Darstellung der Sonderzeichen benötigt man noch eine zusätzliche Schriftart:
emerge -avt media-fonts/vdrsymbols-ttf
und dann muss man im VDR-OSD-Setup noch den Font "VDRSymbolsSans" auswählen.

DVDs brennen

Achtung: Diese Anleitung ist noch unfertig!
http://vdr-wiki.de/wiki/index.php/Burn-plugin
http://vdr-wiki.de/wiki/index.php/Roaster-plugin

Es müssen diese USE-Flags gesetzt sein:
USE="jpeg png truetype fontconfig jbig jpeg2k mpeg tiff wmf gif"

Evtl. in /etc/portage/package.use das eintragen:
media-video/mjpegtools png
media-libs/gd fontconfig jpeg png truetype
media-gfx/imagemagick fontconfig jbig jpeg jpeg2k png tiff truetype wmf
media-libs/jasper jpeg

emerge -avt boost gd dvdauthor dvd+rw-tools imagemagick mjpegtools m2vrequantizer libcdio

Project X
emerge -avt blackdown-jdk

* eselect java-vm list
- dort dann schauen, welches der blackdown-jdk ist und einsetzen mit
* eselect java-vm set system X (für X die Nummer einsetzen)

emerge -avt =media-video/projectx-0.90.4.00-r3
echo 'LDPATH="/usr/lib/projectx"' >> /etc/env.d/99xxxlocal
env-update
ldconfig
. /etc/profile

emerge -avt media-fonts/ttf-bitstream-vera

emerge -vf vdr-burn

# cp /usr/portage/distfiles/vdr-burn-0.1.0-pre21.tgz /usr/src/
cp /usr/portage/distfiles/vdr-burn-0.1.0-pre22-ff1.tgz /usr/src/
cd /usr/src/vdr-1.4.7/PLUGINS/src
# gunzip -cd /usr/src/vdr-burn-0.1.0-pre21.tgz | tar -xf -
gunzip -cd /usr/src/vdr-burn-0.1.0-pre22-ff1.tgz | tar -xf -
cd ..
cd ..
make plugins
cp -a PLUGINS/src/burn/burn /video0/plugins/
cp PLUGINS/src/burn/libvdr-burn.so /video0/PLUGINS/lib/libvdr-burn.so.1.4.5
mkdir -p /pub/export
cp PLUGINS/src/burn/*.sh PLUGINS/src/burn/burn-buffers /usr/local/bin/
echo "burn.DemuxType = 1" >> /video0/setup.conf

ln -s /usr/share/projectx/lib/projectx.jar /usr/share/projectx/lib/ProjectX.jar
export PROJECTX_HOME=/usr/share/projectx/lib

Hintergründe:
http://vdr-wiki.de/wiki/index.php/Vorlagen_(burn-plugin)

DVB-Tuner bzw. Karte defekt (Stand: 09/2010)

Ein kleiner Erfahrungsbericht zum Thema "Alterung von DVB-S-Karten":
Nach 6 Jahren Dauerbetrieb der Nexus-S und Nova-S kam es innerhalb von 3 Monaten zu sichtbaren Bildstörungen.
Die Störungen waren je nach Sender und Karte unterschiedlich stark.
Auf der Nova-S war es auf einzelnen Sender so schlimm, dass man nur noch "Bild-Müll" zu sehen bekam.
Als Ursache stellten sich tatsächlich die beiden Karten heraus.
Seit dem Austausch habe ich wieder ein einwandfreies Bild.
Wenn also im femon die BER-Werte größer Null sind und immer mehr werden, dann liegt das nicht unbedingt an der SAT-Anlage.
BERs kann man übrigen auf der Kommandozeile auch so finden:
dvbsnoop -s signal -adapter 0 | grep -v "BER: 0"

HDTV-Hardware (Stand: 2/2011)

Im VDR-Wiki gibt es eine Übersicht zu HDTV.
Ich habe mich für eine TeVii S660 (USB, DVB-S2, inklusive IR-Empfänger und Fernbedienung) entschieden.
Siehe auch: VDR-Wiki - externe Geräte.
Ab Kernel 2.6.33 sind die Treiber bereits enthalten und man muss sie nur noch aktivieren: CONFIG_DVB_USB_DW2102.
Im Detail:
Device Drivers  --->
    <*> Multimedia support  --->
        <*>   DVB for Linux
        [*]   Load and attach frontend and tuner driver modules as needed
        [*]   DVB/ATSC adapters  --->
              <*>   Support for various USB DVB devices
              <*>     DvbWorld & TeVii DVB-S/S2 USB2.0 support
              [*]   Customise the frontend modules to build
                        Customise DVB Frontends  --->
                            *** DVB-S (satellite) frontends ***
                            <*> Zarlink VP310/MT312/ZL10313 based
                            <*> ST STV0288 based
                            <*> Montage Tehnology DS3000 based
Falls im Kernel noch kein I2C-Support enthalten ist, dann diesen I2C-Treiber im Kernel aktivieren:
Mit
lspci | grep SMBus
herausfinden, welchen Chipsatz man hat und dann den passenden Treiber aktivieren:
-> Device Drivers
-> I2C support
-> I2C Hardware Bus support
Falls im VDR noch eine alte Full-Featured-Karte (z.B. Nexus-S) steckt, dann muss diese mindestens die Firmware FD2623 verwenden.
Ich habe also auf die Verion dvb-ttpci-01.fw-fb2624 aufgerüstet.
Die Firmware für die TeVii S660 installiert man so:
emerge -avt unrar
mkdir /tmp/firmware
cd /tmp/firmware
Da die Firmware noch nicht in media-tv/linuxtv-dvb-firmware enthalten ist (siehe Gentoo-Bug 306021), eines dieser drei herunterladen:
wget http://www.tevii.com/100205_linux_tevii_ds3000.rar
wget http://www.tevii.com/linux_tevii_ds3000.rar
wget http://www.tevii.com/100315_Beta_linux_tevii_ds3000.rar
Es ist egal, welches man nimmt, denn die Firwmare ist immer identisch.
Dann auspacken und kopieren:
unrar e *.rar
cp -p dvb-usb-teviis660.fw /lib/firmware/
cp -p dvb-fe-ds3000.fw /lib/firmware
cd /lib/firmware
ln -s dvb-usb-teviis660.fw dvb-usb-s630.fw
md5sum dvb-usb-s630.fw dvb-fe-ds3000.fw
# sollte das ausgeben:
2946e99fe3a4973ba905fcf59111cf40 dvb-usb-s630.fw
a32d17910c4f370073f9346e71d34b80 dvb-fe-ds3000.fw
Man sollte noch das rc_polling deaktivieren:
echo "options dvb-usb disable_rc_polling=1" >> /etc/modprobe.d/tevii.conf
update-modules
Dann den USB-Stecker einstecken und mal im Syslog schauen.
Damit ist die Hardware erst mal verfügbar.
Sollte man massive Probleme mit dem Empfang von SD- oder HD-Sendern haben, dann sollte man sicherstellen, dass im Kernel die Option
CONFIG_HZ_250 = yes
ist! Mit 100 Hz geht es nämlich nicht!
Ansonsten verwende ich einen ganz normalen Kernel 2.6.35.7.
Jetzt bitte in folgenden Kapiteln weiterlesen:

HDTV-Client (Stand: 12/2010)

Ich setze für folgendes einen VDR-Server voraus, der HDTV empfangen kann. Siehe VDR 1.7 als Server.
Dieser Server exportiert sein /video per NFS und der HDTV-Client mountet dieses.

Hardware (Stand: 1/2011)
Als Hardware für den HDTV-VDR-Client habe ich mich vom Bauvorschlag aus c't 8/2010 S. 142 inspirieren lassen: Wer es noch leiser mag, der könnte noch als CPU-Kühler den Scythe Samurai ZZ oder noch besser den Scythe Kabuto einbauen.
Die Hardware ist relativ schnell zusammengebaut.
Das System ist sehr leise und braucht im Leerlauf ca. 35 Watt.
Bei der HD-Wiedergabe steigt der Strombedarf auf ca. 47 Watt.
Unter Volllast (z.B. Kernel Kompilieren) geht der Verbrauch auf ca. 70 Watt hoch.
Einzige Stolperfalle ist der S/PDIF-Ausgang. Dieser wird von dem ALSA-Sound-Treiber nicht ganz korrekt erkannt und bleibt stumm. Abhilfe:
echo "options snd-hda-intel model=intel-alc889a" > /etc/modprobe.d/snd-hda-intel.conf
update-modules
Die Dokumentation dazu findet man in /usr/src/linux/Documentation/sound/alsa/HD-Audio-Models.txt.
Mein Dank geht auch an den Autor von http://wiki.sabayon.org/index.php?title=HOWTO:_Resolve_Problems_with_HDA-Intel_Sound_Cards.
Ansonsten ist die Hardware komplett von Gentoo (11/2010) und dem Standard-Kernel (2.6.36.2) unterstützt.
Hier ist meine .config.

Software (Stand: 2/2011)
VDR nutzt für HDTV das S2API.
Wer Probleme hat in der Art:
VDR requires Linux DVB driver API version 5.0
hat, der sollte sicherstellen, dass das passende linux-libc-dev Paket zum Kernel installiert ist und Kernel Version >= 2.6.28!
export DOWNLOADDIR=/usr/portage/distfiles
cd $DOWNLOADDIR
wget ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.16.tar.bz2
wget http://projects.vdr-developer.org/attachments/download/334/vdr-extrecmenu-1.2.tgz
cd /usr/src/
bunzip2 -cd $DOWNLOADDIR/vdr-1.7.16.tar.bz2 | tar -xf -   
cd vdr-1.7.16/PLUGINS/src/
gunzip -cd $DOWNLOADDIR/vdr-extrecmenu-1.2.tgz | tar -xf - 
ln -s extrecmenu-1.2 extrecmenu
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
cd vdr-xineliboutput
cvs update -AD 2010-10-11
cd ..
ln -s vdr-xineliboutput xineliboutput
cd ..
cd ..
make -j8
make -j8 plugins
mkdir -p /video/PLUGINS/lib/
cp vdr sources.conf diseqc.conf /video/
cp PLUGINS/lib/libvdr-* /video/PLUGINS/lib/
cd PLUGINS/src/xineliboutput
make install
# Es wird das installiert:
#/usr/lib/xine/plugins/1.28/xineplug_inp_xvdr.so
#/usr/lib/xine/plugins/1.28/post/xineplug_post_autocrop.so
#/usr/lib/xine/plugins/1.28/post/xineplug_post_swscale.so
#/usr/lib/xine/plugins/1.28/post/xineplug_post_audiochannel.so
#/usr/bin/vdr-fbfe
#/usr/bin/vdr-sxfe
mkdir -p /video/plugins/xineliboutput
cp vdrlogo_720x576.mpg /video/plugins/xineliboutput/nosignal.mpg
vi /video/plugins/xineliboutput/allowed_hosts.conf
# eigene IP-Adresse dort eintragen
cd /video
touch channels.conf
# Erster Test:
./vdr -w 120 -P skincurses -P"xineliboutput --local=none --remote=37890 --primary"
# Dann richtiger Aufruf:
./vdr -w 120 -P extrecmenu -P"xineliboutput --local=none --remote=37890 --primary"
# Und unter X11 das Frontend starten:
vdr-sxfe
Man kann sich noch ein No-Signal-Bild erstellen: Bild z.B. mit Gimp erzeugen und dann:
cat image.jpg | jpegtopnm | ppmtoppm | ppmtoy4m -F 25:1 -A 4:3 -I p -r -S 420mpeg2 -v 2 -n 1 | \
mpeg2enc -f 8 -a 2 -q 1 -n p -T 120 -R 2 -g 12 -G 12 -o /video/plugins/xineliboutput/nosignal.mpg
Den ppmtoy4m kann man durch
emerge -avt media-video/mjpegtools
ggf. nachinstallieren.
Für eine 16:9-Anzeige des nosignal.mpg muss man die Parameter nur leicht verändern:
cat vdr-hd-logo.jpg | jpegtopnm | ppmtoppm | ppmtoy4m -F 25:1 -A 16:9 -I p -r -S 420mpeg2 -v 2 -n 1 | \
mpeg2enc -f 8 -a 3 -q 1 -n p -T 120 -R 2 -g 12 -G 12 -o /video/plugins/xineliboutput/nosignal.mpg
Ausprobieren kann man es dann so:
xine -l /video/plugins/xineliboutput/nosignal.mpg
Der Start des VDR erfolgt über das Skript /video/runvdr, was wiederum eine Reihe von Skripten nutzt. Hier eine Liste: Und dann braucht man noch eine /etc/X11/xorg.conf.
Um den Sound als Stereo und ggf. auch als Dolby Digital über den optischen S/PDIF-Ausgang direkt an den Sourround-Receiver auszugeben, muss in /root/.xine/config_xineliboutput folgendes eingetragen werden:
audio.device.alsa_front_device:iec958:CARD=Intel,DEV=0
audio.device.alsa_mmap_enable:1
audio.device.alsa_passthrough_device:iec958:CARD=Intel,DEV=0
audio.output.speaker_arrangement:Pass Through
audio.synchronization.av_sync_method:resample
Es funktioniert alles bestens. Einziger Fehler: Wenn man im Media-Player versucht ein *.ts wiederzugeben, dann endet das mit einem Segmentation Fault.
Das liegt an der ffmpeg-Lib. Durch ein Update auf Version ffmpeg-0.6_p26400 (Snapshot aus dem ffmpeg-SVN ziehen und schnell eigenes ebuild bauen.) ist dieser Fehler weg.
Wenn die Soundausgabe im Mediaplayer übersteuert klingt, dann einfach im VDR die Lautstärke reduzieren, z.B. auf 100.
Sollte es Unklarkeiten oder Fehler bei der Ansteuerung des Monitors geben, dann ist u.U. das hilfreich:
emerge -avt read-edid
get-edid | parse-edid
Ausserdem kann man sich mit gtf Modelines für X11 erstellen lassen, z.B.:
gtf 1280 720 50
Und man könnte noch diverse Deinterlacer ausprobieren, siehe: http://www.linuxtv.org/pipermail/vdr/2008-July/017296.html
Als Fernbedienung (FB) verwende ich die FB der Hauppauge Nexus-S, allerdings an einer WinTV-Karte mit dem Brooktree Corporation Bt878 Chipsatz.
Im Kernel aktiviert man deren Treiber inklusive Infrarot-Empfänger-Unterstützung als Kernel-Modul.
Dann braucht man noch einen aktuellen LIRC:
echo "app-misc/lirc ~x86" >> /etc/portage/package.keywords
emerge -avt lirc
Testen:
modprobe lirc_i2c
irw
Dann kann man lirc starten und vdr die Keycodes lernen lassen:
/etc/init.d/lircd start
rc-update add lircd default
cd /video
./vdr --lirc -v /video -P"xineliboutput --local=none --remote=37890 --primary" -P skincurses
Jetzt kann das HD-Film-Vergnügen losgehen...
Eine alternative Fernbedienung, die ich noch nicht kenne, wäre übrigens die X10, die über Funk funktioniert und die an USB angeschlossen wird: Fernbedienung_-_USB_X10.

weather-ng-Plugin (Stand: 12/2010)

Das Weather-NG-Plugin stellt das aktuelle Wetter und eine Vorhersage zur Verfügung.
Herunterladen der Version 0.0.10 von http://www.glaserei-franz.de/VDR/Moronimo2/vdrplugins.htm
emerge -avt media-libs/imlib2
bunzip2 -cd /usr/portage/distfiles/vdr-weatherng-0.0.10.tar.bz2 | tar -xf -
ln -s weatherng-0.0.10 weatherng
cd weatherng
vi Makefile
# HAVE_IMLIB2=1 eintragen und "-02" durch "-O2" ersetzen
vi imagecache.h
# Das eintragen:
# #include <sys/types.h>
cd ../../..
make plugins
cp PLUGINS/lib/libvdr-weatherng.so.* /video/PLUGINS/lib/
cp -R PLUGINS/src/weatherng-0.0.10/weatherng/weatherng /video/plugins/
cd /video/plugins/weatherng
vi weatherng.sh
# SETUPDIR=/video/ und KEY und URLs eintragen.
Der Start im VDR kann ganz einfach mit "-P weatherng" erfolgen.

Suspendoutput-Plugin (Stand: 12/2010)

Das Plugin zeigt ein Standbild anstelle von einem Live-Programm an.
cd /usr/portage/distfiles/
wget http://phivdr.dyndns.org/vdr/vdr-suspendoutput/vdr-suspendoutput-1.0.1.tgz
gunzip -cd /usr/portage/distfiles/vdr-suspendoutput-1.0.1.tgz | tar -xf -
ln -s suspendoutput-1.0.1 suspendoutput
cd ../../..
make plugins
cp PLUGINS/lib/libvdr-suspendoutput.so.* /video/PLUGINS/lib/
Der Start im VDR geht z.B. mit "-P 'suspendoutput --nomenu --logo'".

Notebook-HDTV-VDR (Stand: 8/2013)

Hier beschreibe ich den Aufbau eines HDTV-VDR mit VDR 2.0 auf einem ganz normalen modernen Notebook, um bei Bedarf unterwegs einen VDR dabei zu haben...

Voraussetzungen:
pkg-config
Also z.B. unter Sabayon-Linux:
equo install -a pkg-config
und media-libs/xine-lib-1.2.3, da mit 1.2.2 das vdr-sxfe beim Spulen in HD hängen bleibt!
export DOWNLOADDIR=/usr/src
cd $DOWNLOADDIR
wget ftp://ftp.tvdr.de/vdr/vdr-2.0.2.tar.bz2
wget http://projects.vdr-developer.org/attachments/download/936/vdr-extrecmenu-1.2.2.tgz
cd /usr/src/
bunzip2 -cd $DOWNLOADDIR/vdr-2.0.2.tar.bz2 | tar -xf -   
cd vdr-2.0.2/PLUGINS/src/
gunzip -cd $DOWNLOADDIR/vdr-extrecmenu-1.2.2.tgz | tar -xf - 
ln -s extrecmenu-1.2.2 extrecmenu
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
cd vdr-xineliboutput
cvs update -AD 2013-05-23
cd ..
ln -s vdr-xineliboutput xineliboutput
git clone git://projects.vdr-developer.org/vdr-plugin-extrecmenu.git
ln -s vdr-plugin-extrecmenu extrecmenu
cd ..
cd ..
make -j8
sudo make install
mkdir -p /var/lib/vdr/plugins/xineliboutput
vi /var/lib/vdr/plugins/xineliboutput/allowed_hosts.conf
# eigene IP-Adresse dort eintragen
# Erster Test:
vdr -w 120 -P skincurses -P"xineliboutput --local=none --remote=37890 --primary"
rm /var/lib/vdr/remote.conf
vi /home/loescher/.xine/config_xineliboutput
# eintragen: engine.buffers.audio_num_buffers:750
# eintragen: engine.buffers.video_num_frames:50
# Dann richtiger Aufruf:
./vdr -w 120 -p 2001 -P extrecmenu -P"xineliboutput --local=none --remote=37890 --primary"
# Und unter X11 das Frontend starten:
vdr-sxfe
Jetzt kann das HD-Film-Vergnügen losgehen...

XBMC als Frontend (Stand: 8/2013 noch in Arbeit...)

Versuch mit xbmc:
https://github.com/opdenkamp/xbmc-pvr-addons/tree/master/addons/pvr.vdr.vnsi/vdr-plugin-vnsiserver

md xbmc-pvr-addons
cd xbmc-pvr-addons
git clone https://github.com/opdenkamp/xbmc-pvr-addons.git
ln -s xbmc-pvr-addons/addons/pvr.vdr.vnsi/vdr-plugin-vnsiserver vnsiserver4
Aber beim XBMC fehlt leider das passende Addon... Hm...

Samba/CIFS statt NFS (Stand: 8/2013)

Bisher hatte ich vom VDR-Server das /video als NFS an die VDR-Clients exportiert.
Leider kam es in letzter Zeit gehäuft zu solchen Fehlern:
vdr: ERROR: /video/Aufnahmen/Filme/HD/.../2012-10-14.23.48.35-0.rec/resume: Input/output error
mit gefolgten Totalhängern auf dem Client, die nur durch NFS-Neustart auf Server und Client zu beheben sind.
Diverse Kernel-Upgrades oder -Downgrades haben nichts daran geändert.
Die NFS-Hänger treten bei folgenden Server-Kernels auf:
2.6.35.7
2.6.35.14
2.6.36.1
2.6.36.4
2.6.37.6
2.6.38.8
2.6.39.4
Client ist 2.6.36.4 und evtl. liegt es auch an diesem.
Abhilfe ist aber Samba/CIFS was im Fehlerfall auch leichter zu debuggen wäre:
Folgendes in smb.conf:
[global]
...
unix charset = iso8859-1

[video-rw]
  hosts allow = 192.168.178.212 192.168.178.214
  comment = video-rw
  path = /video
  valid users = root
  create mask = 644
  public = no
  writable = yes
  printable = no
Dann noch mit smbpasswd root ein Kennwort setzen und beim Client das in die /etc/fstab:
//server/video-rw /video/Aufnahmen cifs auto,username=root,password=GEHEIM 0 0

Checkliste: Was braucht ein VDR? (Stand: 9/2013)

Diese Checkliste soll möglichst vollständig auflisten, was ein VDR für spezielle Einsatzzwecke an Hardware/Software benötigt.

UPnP (Universal Plug and Play) (Stand: 9/2013)

Eine Möglichkeit, die Aufnahmen des VDR per UPnP freizugeben ist die Verwendung von vdrnfofs zusammen mit einem UPnP-Server wie z.B. Mediatomb.
Einrichtung von vdrnfofs:
emerge -avt dev-python/fuse-python
./setup.py install
vdrnfofs /mnt/vdrnfofs -o video=/video,allow_other
Oder in /etc/fstab:
vdrnfofs /mnt/vdrnfofs fuse video=/video 0 0
Dann das Verzeichnis /mnt/vdrnfofs im Mediatomb einlesen lassen.
Wiedergabe geht z.B. unter Android mit Mediahouse.

(Stand: 12/2013)

Laut Installations-Anleitung und c't 23/2013 S. 178 (Zusätze: 1323-178.tgz und Channellogos):
emerge -avt www-servers/apache
# ggf.:
echo "dev-lang/php gd zlib" >> /etc/portage/package.use
emerge -avt dev-lang/php
# ggf.:
echo "media-video/ffmpeg mp3 faac x264" >> /etc/portage/package.use
emerge -avt media-video/ffmpeg
mkdir istreamdev
cd istreamdev
vdmkdir segmenter
cd segmenter
wget http://svn.assembla.com/svn/legend/segmenter/Makefile http://svn.assembla.com/svn/legend/segmenter/segmenter.c
make
make install
cd ..
wget http://projects.vdr-developer.org/attachments/download/275/istreamdev-1.0.1.tar.gz
# oder
git clone git://projects.vdr-developer.org/istreamdev.git
cp -r istreamdev-1.0.1 /var/www/localhost/htdocs/
ln -s /var/www/localhost/htdocs/istreamdev-1.0.1 /var/www/localhost/htdocs/istreamdev
cd /var/www/localhost/htdocs/istreamdev
cp config_default.php config.php
vi config.php
chown -R root.apache ./*
find ./ -type f | xargs chmod 644
find ./ -type d | xargs chmod 755
mkdir /dev/shm/ram
ln -s /dev/shm/ram ram
chmod 775 ram playlist
chmod 755 bin/istream.sh
chown root.apache /dev/shm/ram
chmod 775 /dev/shm/ram
Funktioniert bei mir aber leider nicht...

Valid HTML 4.01 Transitional   Valid CSS!