Ubuntu HD VDR mittels Xine und VAAPI - xine Plugin

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Übersetzen)
K (Benchmarks)
 
(14 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
=Endspurt=
 
=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.
+
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=
 
=xine-Plugin=
Zeile 14: Zeile 14:
  
 
Damit ist das neue Plugin bereit, es findet sich in /data/vdr/PLUGINS/lib.
 
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==
 
==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==
 
==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=
 
=xine-ui=
  
 
==Parametrisierung==
 
==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==
 
==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
 +
 +
[[Kategorie: Ubuntu HD VDR mittels Xine und VAAPI]]

Aktuelle Version vom 20. Juni 2011, 10:01 Uhr

Inhaltsverzeichnis

[Bearbeiten] 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.

[Bearbeiten] xine-Plugin

[Bearbeiten] Ü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.

[Bearbeiten] 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

[Bearbeiten] 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 \
         $*"

[Bearbeiten] 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

[Bearbeiten] xine-ui

[Bearbeiten] 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

[Bearbeiten] 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...

[Bearbeiten] 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