Xine-plugin

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Hardwareanforderungen)
(Hardwareanforderungen)
Zeile 1: Zeile 1:
==Beschreibung==
 
'''Autor:''' Reinhard Nissl
 
  
Beschreibung: http://www.thunderbolt2000.de/index.php?content=vdr-sw-plugins
 
 
Das Xine-Plugin ist dafür gedacht, mit einer LowBudget-DVB-Karte den VDR nutzen zu können. Normalerweise war mindestens eine Hardware-MPEG2-Decoderkarte nötig (also eine DXR3-Karte oder eine fullfeatured-DVB-Karte), wobei aber LowBudget-Karten als zusätzliche Karten zu einer solchen wunderbar eingesetzt werden konnten/können (z.B. um mehrere Aufnahmen gleichzeitig zu ermöglichen).
 
 
Dank des Xine-Plugins ist es nun möglich, eine reine Software-Decodierung mit reinen LowBudget-Karten zu ermöglichen; entsprechend schnelle Hardware vorausgesetzt. LowBudget-Karten haben keinen MPEG2-Decoderchip und demzufolge kein Device für einen Hardwaredecoder (Device = Zugriffspunkt im Dateisystem auf eine Hardwarekomponente). Für die regulären Medienspieler (XawTV und Co) benötigt man aber ein solches Demuxer-Device, von dem die Daten demuxed (demultiplext) werden können. Mit einer DXR3 oder fullfeatured-DVB ist das kein Problem, da diese so ein Gerät zur Verfügung stellen.
 
 
Das Xine-Plugin setzt hier an; es holt den noch nicht demultiplexten MPEG2-Datenstrom von der LowBudgetDVB-Karte und füllt die Daten in einen FIFO-Puffer, also in einen Zwischenspeicher, von dem der Xine-Medienspieler (oder andere Programme, die DVB-Daten demuxen können) die Daten wieder runternimmt und mit seinem Software-Demuxer umwandelt und als Video ausgibt.
 
 
Eine alternative ist das [[Softdevice-plugin]].
 
 
Auch eine Clientlösung ohne DVB (lokal) ist mit Hilfe des [[Streamdev-plugin]]s möglich.<br>
 
Clientlösung Skizze zum Verständnis: [http://mitglied.lycos.de/peterweber69/ Link]
 
 
==Bilder==
 
{|
 
|[[Bild:xine-plugin-00.jpg|thumb|none|''Ausgabe ueber Kaffeine'']]
 
|[[Bild:xine-plugin-01.jpg|thumb|none|''Ausgabe ueber Xine-ui'']]
 
|}
 
 
==Hardwareanforderungen==
 
Hier sind einige Beispielkonfigurationen ('''bitte ergänzen'''):
 
{| border=1 cellpadding=4 cellspacing=0 style="empty-cells:show;"
 
|- bgcolor=#efefef
 
! CPU@MHz / RAM
 
! Grafikkarte
 
! Last
 
! Sonstiges
 
|-
 
| PIII@550 / 512    || Matrox G550 mit vidix  ||      || ruckelt bei OSD oder mit Deinterlaceing
 
|-
 
| PIII@933 / 512    || nVidia GForce MX 5200  || ~ 50% || Xine-lib und Xine-Ui selber compiliert; xv; auch mit OSD immer ruckelfrei; Deinterlacing 70% Last
 
|-
 
| Athlon@800 / 512  || ATI Radeon VE          ||      || ruckelt bei hohen Auflösungen
 
|-
 
| PIII@700 / 256    || ATI Radeon 7000        || ~ 42% || Xine über Netzwerk; xv; ruckelfrei @1280x1024x24, Deinterlacing ~60% Last
 
|-
 
| P4@2800 / 512    || Matrox G550            || ~ 50% || ruckelt bei OSD, Deinterlaceing oder Fenstergröße
 
|-
 
| PII@400 / 256    || NVIDIA Geforce 4 MX 480 ||      || XvmC nahezu ruckelfrei, leider kein OSD; xv: kann man sich nicht ansehen
 
|-
 
| PII@400 / 196    || NVIDIA Geforce 4 MX 480 || ~ 60% || XvmC nahezu ruckelfrei, nur beim Ein- und Ausblenden ein kleines Stocken; Deinterlacing möglich
 
|-
 
| Athlon@1800 / 512 || NV Gf Ti 4200          || ~ 10% || xv-Ausgabe: ruckelfrei für DVB
 
|-
 
| AMD64@32bit, 1800 / 512  || NV Gf 6600 (PEG) || ~ 35% || Xv, tvtime wie in MANUAL vorgeschlagen. CPU läuft auf 1000 (Cool'n'Quiet). Nahezu perfekt
 
|-
 
| AMD Duron@1200 / 256  || SIS740 (TV-Out)    || ~ 40% || Xv, kein Ruckeln, Bild stockt kurz beim Umschalten
 
|-
 
| Athlon@1800 / 768 || NV GF4 MX 440(TV-Out)  || ~ 14% || XvMC-Ausgabe, ruckelfrei, nur kurze Aussetzer beim umschalten
 
 
==Softwareanforderungen==
 
* xine-{lib,ui}, wobei Xine-ui nicht zwingend ist, normal sollte jedes Frontend welches auf Xine-lib aufsetzt funktionieren. (die anderen Frontends werden im Moment jedoch nicht die Option '''--enable-vdr-keys''' beherschen, '''./configure --help''' weiß meistens mehr)
 
 
==Installation==
 
<pre>
 
## laden der Sourcen
 
cd $SOURCEDIR
 
wget http://home.vr-web.de/~rnissl/xine-lib-cvs-<VERSION>.tar.bz2
 
wget http://home.vr-web.de/~rnissl/xine-ui-cvs-<VERSION>.tar.bz2
 
wget http://home.vr-web.de/~rnissl/vdr-xine-<VERSION>.tgz
 
 
## entpacken der Sourcen
 
tar xvzf vdr-xine-<VERSION>.tgz -C $(pwd)/VDR/PLUGINS/src
 
tar jxvf xine-lib-cvs-<VERSION>.tar.bz2
 
tar jxvf xine-ui-cvs-<VERSION>.tar.bz2
 
 
## setzen des Symlinks
 
cd VDR/PLUGINS/src
 
ln -s xine-<VERSION> xine
 
 
## Kopieren der "loops"
 
cd xine
 
mkdir -p /etc/vdr/plugins/xine
 
find . -name *.pes -exec cp -v \{} /etc/vdr/plugins/xine \;
 
 
## link für den Player
 
ln -vs $(pwd)/xineplayer /usr/local/bin/xineplayer
 
 
## uebersetzen der xine-lib
 
cd ../../../../xine-lib
 
find $SOURCEDIR/VDR/ -name xine-lib.patch -exec patch -p1 -i \{} \;
 
./autogen.sh --prefix=/usr/local
 
make
 
make install
 
ldconfig
 
 
## uebersetzen des frontends
 
cd ../xine-ui
 
find $SOURCEDIR/VDR/ -name xine-ui.patch -exec patch -p1 -i \{} \;
 
./autogen.sh --prefix=/usr/local \
 
            --enable-vdr-keys
 
make
 
make install
 
</pre>
 
 
Für 64-bit Prozessoren z.B. AMD64 ist das Makefile zu ändern
 
 
<pre>
 
- #CXXFLAGS ?= -O2 -Wall -Woverloaded-virtual
 
+ #CXXFLAGS ?= -O2 -Wall -Woverloaded-virtual -fPIC
 
</pre>
 
 
Dannach wie gewohnt übersetzen:
 
 
<pre>
 
cd $SOURCEDIR/VDR
 
make clean
 
make <OPTIONEN> all plugins
 
</pre>
 
 
Nach dem ausführen der [[runvdr]] für X basiert:
 
 
<pre>
 
xine "vdr:/tmp/vdr-xine/stream#demux:mpeg_pes"
 
</pre>
 
 
Entgegen jeder Aussage, gehts natürlich auch "minimal" via [[Framebuffer]]:
 
 
<pre>
 
fbxine "vdr:/tmp/vdr-xine/stream#demux:mpeg_pes"
 
</pre>
 
 
==Optionen==
 
{| border=1 cellpadding=2 cellspacing=0
 
|-
 
|bgcolor=#efefef|VDR_XINE_SET_VIDEO_WINDOW=1
 
|für volle [[yaepg-plugin]] Unterstützung aktivieren
 
|}
 
 
<!-- ==Patches== -->
 
 
==Konfiguration==
 
In der aktuellen Version des Plugins befindet sich ein Player, mit welchen man andere Formate abspielen kann.
 
 
<pre>
 
cp $SOURCEDIR/VDR/PLUGINS/src/mp3/examples/mplayer.sh.example /usr/local/bin/mplayer.sh
 
</pre>
 
 
Anpassen
 
 
<pre>
 
- MPLAYER="mplayer"
 
+ MPLAYER="/usr/local/bin/xineplayer"
 
</pre>
 
 
Es sollte dazu gesagt werden, dass diese Geschichte im jetzigen Stadium nur mit [[LIRC|Lirc]] funktioniert, somit auch nur im Modus '''TRADITIONAL''' des [[mplayer-plugin]]s.
 
 
<!-- ==Einstellungen== -->
 
<!-- ==Parameter== -->
 
 
==Parameter==
 
{| border=1 cellpadding=2 cellspacing=0
 
|- bgcolor=#efefef
 
!Parameter
 
!Beschreibung
 
|-
 
| -i N || instance number to append to FIFO directory
 
|-
 
| -q  || turn off debug messages on console
 
|-
 
| -r  || turn on remote (pressing keys in xine controls VDR)
 
|-
 
| -s  || switch to curses skin, while xine is disconnected
 
|-
 
| -n  || enable network functions for remote xine-clients (only available if network-patch was aplied before)
 
|}
 
 
Die Parameter des Plugins können folgendermaßen übergeben werden.
 
 
<pre>
 
vdr <VDR Parameter> -P'xine <parameter>' <weitere VDR Parameter>
 
</pre>
 
 
Beispiel:
 
 
<pre>
 
vdr -P'xine -r'
 
</pre>
 
 
==Probleme==
 
* keine OSD-Wiedergabe bei der Verwendung der XvMC Unterstützung, d.h. Prozessormindestanforderung beachten! [wohingegen das OSD mit XxMC läuft! [wird auch von Nvidia unterstützt], leider etwas farbverzerrt]
 
 
===SuSE spezifisch===
 
Die Orginal Xine Packages von [[SuSE]] sind zu deinstallieren, da Sie für unseren Zweck vollkommen unbrauchbar sind.
 
 
<pre>
 
echo xine-ui xine-lib xine-devel|xargs rpm -e --nodeps
 
</pre>
 
 
Das dürfte im jetzigen Stadium bei jeder Distri aufs selbe hinaus laufen, da Sourcen benötigt werden.
 
 
<b>(Ab?)Mit SuSe 9.3 ist der Xine-Player bereits mit VDR ablauffähig.</b>
 
 
ABER: Bei SuSe 9.3 hohe Prozessorlast bei den fertigen RPM Packages. Auf PIII@933 war VDR nur als teilweise Lauffähig (Ruckeln bei OSD und Timeshift). Das selber kompilieren von Xine-Lib, Xine-UI und des VDR brachte eine um 40-50% niedrigere Last (xv als Videotreiber, NVidia GForce FX5200).
 
 
===Debian Sarge spezifisch===
 
Debian kommt mit einer recht alten Version von automake(1.4). Diese muss auf min 1.5 upgedated werden.
 
Ich habe 1.9 genommen.
 
Also
 
apt-get install automake1.9
 
gefolgt von
 
update-alternatives --config automake
 
Dann sollte es gehen.
 
 
==Tipps==
 
 
===Mplayer===
 
Statt des xineplayers kann auch weiterhin der mplayer benutzt werden (sogar im SLAVE-Modus).
 
Hier eine minimale mplayer.sh (fuer die Benutzung unter X11 und slave):
 
 
<pre>
 
#!/bin/sh
 
 
CMDLINE="$(which mplayer) -fs -vo xv -ao oss -cache 4096 -slave -nolirc -quiet"
 
DISPLAY=:0.0 $CMDLINE "$1" 2>&1 | logger
 
exit
 
</pre>
 
 
===Xine mit VDR starten===
 
Falls man Xine beim Start des VDR gleichzeitig mit öffnen möchte, müssen vor dem Kompilieren des Plugins noch folgende Zeilen im '''xine.c''', Quellcode eingefügt werden:
 
 
<pre>
 
bool cPluginXine::Start(void)
 
{
 
  // Start any background activities the plugin shall perform.
 
  if (!PluginXine::cXineDevice::Open())
 
  return false;
 
+ pid_t cpid;
 
+ switch (cpid = fork()){
 
+ case 0: execl("/usr/local/bin/xine","/usr/local/bin/xine","-f","vdr:/tmp/vdr-xine/stream#demux:mpeg_pes",(char *)0);
 
  return true;
 
}
 
</pre>
 
 
<!-- ==Wunschliste== -->
 
<!-- ==Snapshot== -->
 
 
==Links==
 
{|
 
| [1]
 
| http://xinehq.de
 
| Xine Projekt Homepage
 
|-
 
| [2]
 
| http://home.vr-web.de/~rnissl
 
| Homepage des Plugins
 
|-
 
| [3]
 
| http://mitglied.lycos.de/peterweber69/xine/xine.htm
 
| Xine-Plugin über Netzwerk nutzen
 
|-
 
| [4]
 
| [[Kanotix - Streaming-Server mit Xine-Plugin für Client mit Xine-Player]]
 
| Streaming-Server mit Xine-Plugin für Client mit Xine-Player
 
|}[[Kategorie:Plugins]][[en:xine-plugin]]
 

Version vom 17. Dezember 2005, 02:52 Uhr