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
 
|-
 
| 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        || ~ 30% || Sehr gute Darstellung, ohne Ruckeln @ 1024x768 (via TV-Out), beim Umschalten stockt das Bild kurz, OSD OK
 
|
 
}
 
 
==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>
 
 
==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.
 
 
==Optionen==
 
{| border=1 cellpadding=2 cellspacing=0
 
|-
 
|bgcolor=#efefef|VDR_XINE_SET_VIDEO_WINDOW=1
 
|für volle [[yaepg-plugin]] Unterstützung aktivieren
 
|}
 
 
==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>
 
 
==Tipps==
 
VDR stellt das OSD auf der ersten Karte mit Decoder dar.<br>
 
Mit dem Plugin gibt es ein weiteres Device (inc. Decoder), es ist immer das letzte.<br>
 
Deshalb ist bei dem Betrieb mit einer (oder mehreren) FF Karten, ein höheres Device zu wählen. (das letzte verfügbare im Menü)
 
AB DER VERSION 0.7.3 ist dies nicht mehr notwendig! xine-plugin schaltet automatisch um.
 
 
<pre>
 
Einstellungen / Setup
 
    DVB
 
        Primäres DVB Interface / Primary DVB interface
 
</pre>
 
 
Oder via "sed", VDR ist vorher zu beenden, einfach schauen welches wir haben (+1).
 
 
<pre>
 
#~ grep ^PrimaryDVB /etc/vdr/setup.conf
 
PrimaryDVB = 3
 
#~ sed -i "s/^PrimaryDVB.*/PrimaryDVB = 4/" /etc/vdr/setup.conf
 
</pre>
 
 
 
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/bash
 
CMDLINE="/usr/bin/mplayer -fs -vo xv -ao oss -cache 4096 -slave -nolirc -quiet"
 
DISPLAY=:0.0 $CMDLINE "$1" 2>&1 |logger
 
exit
 
</pre>
 
 
 
Falls man Xine beim Start des VDR auch gleichzeitig öffnen möchte, dann müssen vor dem Kompilieren
 
des Plugins noch folgende Zeilen im xine.c, cPluginXine::Start(void) [zwischen return false und return true]
 
Quellcode eingefügt werden:
 
<pre>
 
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);
 
}
 
</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>
 
 
===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.
 
==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]]
 

Version vom 6. November 2005, 13:40 Uhr