Ubuntu HD VDR mittels Xine und VAAPI - xine Plugin
Inhaltsverzeichnis |
Endspurt
An den vdr wird das xine Plugin angedockt. Damit landet der auszugebende Stream in einem FIFO, von wo ihn das xine-ui abnehmen und darstellen kann. Diese letzten Schritte werden hier beschrieben.
xine-Plugin
Übersetzen
cd /data/vdr/PLUGINS/src wget 'http://home.vrweb.de/~rnissl/vdr-xine-0.9.4.tgz' tar xf vdr-xine-0.9.4.tgz ln -s xine-0.9.4/ xine cd ../.. make plugins
Damit ist das neue Plugin bereit, es findet sich in /data/vdr/PLUGINS/lib.
Installation
Ein paar zusätzliche Dateien werden vom xine-Plugin noch benötigt
cd /data/vdr/PLUGINS/src/xine/data mkdir /etc/vdr/plugins/xine cp * /etc/vdr/plugins/xine
Andocken
Der vdr wird mit /usr/local/bin/runvdr gestartet. Dieses Startskript wird so verändert, dass es das xine-Plugin lädt.
VDRCMD="$VDRPRG -w 60 -c /etc/vdr -E /var/vdr -u vdruser \ -L /data/vdr/PLUGINS/lib \ -P xine \ -s /usr/local/bin/vdrpoweroff.sh \ $*"
Starten und Kontrolle
Auf zur Kontrolle, ob es wirkt. Also ein Fenster mit der Logkontrolle:
tail -f /var/log/syslog
Im zweiten Fenster den vdr starten:
screen -S vdr runvdr
Durch den Start mit dem Screen Kommando läßt sich der vdr in den Hintergrund schicken:
Strg-A d
Wir sollten im /tmp Verzeichnis ein FiFo (aka Named Pipe) finden, aus dem der Player den Stream abnehmen kann.
vdruser@i3-wiki:/data/vdr/PLUGINS/src/xine/data$ ls -l /tmp/vdr-xine/ insgesamt 0 prw-rw-rw- 1 vdruser vdruser 0 2011-06-13 10:14 external.control prw-r--r-- 1 vdruser vdruser 0 2011-06-13 10:14 external.result prw-r--r-- 1 vdruser vdruser 0 2011-06-13 10:14 stream prw-r--r-- 1 vdruser vdruser 0 2011-06-13 10:14 stream.control prw-rw-rw- 1 vdruser vdruser 0 2011-06-13 10:14 stream.event prw-rw-rw- 1 vdruser vdruser 0 2011-06-13 10:14 stream.result
xine-ui
Parametrisierung
Viele Parameter für xine verstecken sich in ~/.xine/config. Mit fast 800 Zeilen ist sie zu groß, um sie einfach hier mitzulisten. Übernehmt sie trotzdem nicht einfach kritiklos in Euer System, insbesondere für die Tonausgabe sind Anpassungen an Eure Umgebung erforderlich.
Beispiel ~/.xine/config
Ubuntu HD VDR mittels Xine und VAAPI - xine Plugin - config
Startoptionen
Der Aufruf von xine ist komplex genug, um ihn in einem Startskript /usr/local/bin/runxine festzuhalten:
/data/soft/xine-ui/src/xitk/xine --video-driver=vaapi --audio-driver=alsa:hw:3,0 \ --no-logo --no-splash --verbose=2 -f "vdr://tmp/vdr-xine/stream#demux:mpeg_pes" $*
Dann versuchen wir ein:
screen -S xine runxine
und ein wundervolles Fernsehbild blendet unsere Augen...
Benchmarks
Zur Systemleistung noch einige Benchmark Tests, diese sind für den Normalbetrieb jedoch nicht relevant:
PARALLEL_32_4CHAR 320 83.752475 Mbit/s PARALLEL_32_4CHARA 321 73.727672 Mbit/s PARALLEL_32_INT 322 Fail PARALLEL_64_8CHAR 640 41.072995 Mbit/s PARALLEL_64_8CHARA 641 72.241735 Mbit/s PARALLEL_64_2INT 642 Fail PARALLEL_64_LONG 643 378.636531 Mbit/s PARALLEL_64_MMX 644 398.110418 Mbit/s PARALLEL_128_16CHAR 1280 46.917481 Mbit/s PARALLEL_128_16CHARA 1281 76.222696 Mbit/s PARALLEL_128_4INT 1282 325.651709 Mbit/s PARALLEL_128_2LONG 1283 361.555277 Mbit/s PARALLEL_128_2MMX 1284 414.620635 Mbit/s PARALLEL_128_SSE 1285 572.606683 Mbit/s PARALLEL_128_SSE2 1286 704.193908 Mbit/s
Also ist klar, daß PARALLEL_128_SSE2 erste Wahl auf dem Core-i3 Prozessor sein wird.
Übersetzung mit
-march=core2