VDR - Video Disk Recorder
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
- 02.02.2004: Erster Start meines VDRs.
- 06.06.2004: Als VDR-Benutzer #857 registriert.
- 10.11.2004: Umstieg von Suse auf Gentoo.
- Februar/März 2006: Zusätzliche Heimkinoausstattung: Projektor
(siehe unten...) und Dolby Surround Receiver Philips LX 700
- Mai 2006: Passende Leinwand (siehe
unten...) zum Beamer.
- August 2006: Umstellung von VDR 1.2 auf 1.4
-
September 2010: Nova-S und Nexus-S wegen Defekts ausgetauscht.
-
November 2010: Update auf Kernel 2.6.35.7 und Update auf
aktuelles Gentoo mit VDR 1.7.16 als Vorbereitung für HD.
-
Mitte November 2010: Tevii S660 an Server angeschlossen und
Start des HD-Empfang.
-
Anfang Februar 2011: Wohnzimmer-VDR, der Beamer ansteuert durch
neuen VDR und Hardware mit HD-Unterstützung
ausgetauscht.
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(Siehe auch: Wiki).
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ß :-)
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
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
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.
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:
-
/video statt /video0
-
--port=2001 nötig, da neuer Default
-
für FF-Karten braucht man das Plugin dvbsddevice
-
Als Aufzeichnungsformat wird TS und nicht mehr VDR (PES)
verwendet.
Das hat eigentlich fast nur Vorteile, außer dass alte VDRs das
nicht wiedergeben können.
Wenn man aber mit seinen Clients nicht gleich auf 1.7 umsteigen
will, dann kann man auch mit dem VDR 1.6 mit dem
tsplay-Patch
Aufzeichnungen vom VDR 1.7 anschauen:
cd /usr/src
wget http://www.udo-richter.de/vdr/files/vdr-1.6.0-2-tsplay-0.2.diff
cd /usr/src/vdr-1.6.0
patch -p1 < ../vdr-1.6.0-2-tsplay-0.2.diff
Weitere Anleitungen zum Thema HD:
-
Der vdr-delete.patch ändert
im VDR die Logik beim Löschen von Aufnahmen: Es werden mit diesem
Patch keine Aufnahmen gelöscht, die schon halb (oder ganz)
angeschaut sind, sondern nur neue Aufnahmen.
-
Der vdr-upt.patch ändert im
VDR das Verhalten bei einem UPT ("Unknown picture type"-Fehler):
Es wird nicht nur eine Meldung
ausgegeben, sondern ein EmergencyExit() durchgeführt.
Ein UPT sieht im Syslog so aus:
Feb 25 20:01:19 server vdr[20828]: ERROR: unknown picture type '6'
Feb 25 20:01:20 server vdr[20828]: ERROR: unknown picture type '7'
Feb 25 20:01:21 server vdr[20828]: ERROR: unknown picture type '4'
Wenn diese Meldungen während einer Aufnahme kommen, dann ist die
Aufzeichnung völlig unbrauchbar, daher ist der beste Work-around
ein Neustart von VDR.
(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.
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'
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 -
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'
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
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!...
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.
(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
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".
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%)
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.
Ziel und Features meines Streaming-Clients:
-
Mein VDR-Server steht im Keller.
-
Verbindung über Ethernet.
-
Client soll Live-Programm und Aufnahme des Servers anbieten können.
-
Client soll Bild inklusive OSD über VGA/DVI ausgeben, also per
Framebuffer oder X11.
"Zutaten":
-
VDR 1.4 für Server und Client
-
Streamplayer-Plugin zur Wiedergabe von Live-Streams für den VDR-Client
-
Streamdev-Server als Datenquelle für das Streamplayer-Plugin
-
kvdr zur Ausgabe des Bildes über X11
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:
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.
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
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ü.
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
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.
-
Um unterwegs VDR-Aufnahmen anzuschauen
ist der
Centrix MVP-120
ist ein sehr geeigneter Multimedia-Player, der JPG, MP3, MPEG in
vielen Formaten wiedergeben kann.
Die VDR-MPEG-Aufnahmen sind allerdings MPEG-2-PES und müssen erst
noch nach MPEG-2-PS umgewandelt werden. Das geht aber sehr schnell
mit dem kleinen Skript
copy_video_to_centrix
das seinerseits vdr2mpeg2ps
aufruft.
Man kann aber auch Platz sparen und die VDR-Aufnahmen (zeitintensiv)
nach MPEG-4 umwandeln. Das mache ich mit dem Skript
vdr2avi bzw. als H.264 mit
vdr2mp4.
Zu den ganzen Formaten gibt es auch
einen sehr guten Artikel im Gentoo-Wiki.
-
Ab VDR 1.7 mit HD-Aufzeichnungen stellt sich unweigerlich die
Frage, wie man diese Aufnahmen so konvertieren kann, dass sie
sich auf einem "klassischen" VDR mit FF-Karte (full-featured)
und VDR 1.4 wiedergeben lassen.
Für SD-Aufzeichnungen ist folgendes zu empfehlen:
ffprobe $INPUT/00001.ts 2>&1 | grep 0x
cat $INPUT/00001.ts | ts2pes 0x65 0x66 >
$TARGET/001.vdr
cd $TARGET
genindex
(Das ts2pes findet sich unter Gentoo in
media-libs/libdvb.)
Für HD-Aufnahmen bietet sich folgendes an:
mencoder -alang deu -ovc lavc -oac lavc -lavcopts vcodec=mpeg2video:acodec=mp2:vbitrate=15000:abitrate=192 -of mpeg -mpegopts format=pes1 -ofps 25 -vf scale -zoom -xy 720 -o $TARGET/001.vdr $INPUT/00001.ts
cd $TARGET
genindex
Eine kleine Spielerei ist die Umwandlung von HD (H.264) in HD
(MPEG-2-PES), um es evtl. auf VDR-xine-Lösungen wiedergeben zu
können, die nicht genug CPU-Leistung für H.264-Decoding
haben:
mencoder -alang deu -ovc lavc -oac lavc -lavcopts vcodec=mpeg2video:acodec=mp2:vbitrate=15000:abitrate=192 -of mpeg -mpegopts format=pes1 -ofps 25 -o $TARGET/001.vdr $INPUT
cd $TARGET
genindex
-
Fast beliebige Videos (zumindest funktoiniert es mit mpeg4) kann
man so in das VDR-Format wandeln:
ffmpeg -i input.mp4 -f mpegts -vcodec mpeg2video -aspect 16:9 -sameq -s 4cif -acodec mp2 -ar 48000 -ab 192k 00001.ts
-
Ton aus einer VDR-Aufnahme kann man so
extrahieren:
pes2aud_es 001.vdr | mpg123 -w out.wav -
Das pes2aud_es ist unter Gentoo in
media-libs/libdvb enthalten.
-
Um .ts-Files mit mplayer in optimaler Geschwindigkeit
wiederzugeben bieten sich diese Optionen an:
mplayer -lavdopts threads=2:fast:skiploopfilter=all
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
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
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!
Hardware:
-
Multimedia PC "Digitainer" für 199.- EUR von Real (Medion).
Dazu gibt es im vdr-portal einen Thread und bei easyVDR eine eigene Seite.
- DVB-T-Stick
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.
- Hauppauge PVR-350 (für Wiedergabe und Fernbedienung)
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
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.
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)
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"
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:
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:
-
Board: MSI H55M-ED55
-
CPU: Core
i3 Clarkdale i3-540 3.06 GHz boxed (mit Lüfter)
(CPU-Übersicht ist in c't
7/2010 S. 143 zu finden.)
-
Gehäuse: Enermax Staray (Midi-Tower)
-
Hauptspeicher 2 x 2 GB (DDR3-1333 / PC3-10600)
-
Netzteil: Enermax PRO82+ 385W (auch "II" ist gut!)
-
Sharkoon HDD Vibe-Fixer 5,25"
-
Wärmeleitpaste benötigt man nicht, wenn man die "boxed"-Version des Prozessors hat.
-
Als Festplatte reichen 4GB wunderbar aus. Man könnte also eine
kleine SDD oder ein Compact-Flash nehmen.
Ich verwende eine alte PATA-Platte aus meinem HW-Bestand.
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.
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.
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'".