Xine-plugin

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Installation)
Zeile 66: Zeile 66:
 
## uebersetzen des frontends
 
## uebersetzen des frontends
 
cd ../xine-ui
 
cd ../xine-ui
 +
find $SOURCEDIR/VDR -name xine-ui.patch -exec patch -p1 -i \{} \;
 
./autogen.sh --prefix=/usr/local \
 
./autogen.sh --prefix=/usr/local \
 
             --enable-vdr-keys
 
             --enable-vdr-keys

Version vom 12. April 2005, 09:23 Uhr

Inhaltsverzeichnis

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.

Auch eine Clientlösung ohne DVB (lokal) ist mit Hilfe des streamdev-plugins möglich.
Clientlösung Skizze zum Verständnis: Link

Bilder

Ausgabe ueber Kaffeine
Ausgabe ueber Xine-ui

Hardwareanforderungen

Hier sind einige Beispielkonfigurationen (bitte ergänzen):

  • PIII 550 MHz / 512 MB / Matrox G550 mit vidix; ruckelt bei OSD oder mit Deinterlaceing
  • Athlon 800 MHz / 512 MB / ATI Radeon VE ruckelt bei hohen Auflösungen.
  • P4 2.8 GHz HT / 512 MB / Matrox G550 mit xshm; HDTV: ruckelt bei OSD, Deinterlaceing oder Fenstergröße > 50 %
  • PII 400MhZ / 256 MB / NVIDIA Geforce 4 MX 480; mit XvMC [ohne OSD]: nahezu ruckelfrei, leider kein OSD | xv: kann man sich nicht ansehen
  • PII 400MhZ / 196 MB / NVIDIA Geforce 4 MX 480; mit XxMC [mit OSD]: nahezu ruckelfrei, nur beim Ein- und Ausblenden ein kleines Stocken; Systemauslastung bei ca 60%; Deinterlacing möglich =)
  • Athlon 1800 / 512 MB / NV Gf Ti 4200, xv-Ausgabe: ruckelfrei für DVB, Systemlast stets < 10%

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

## 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 $SOURCEDIR/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

Für 64-bit Prozessoren z.B. AMD64 ist das Makefile zu ändern

- #CXXFLAGS ?= -O2 -Wall -Woverloaded-virtual
+ #CXXFLAGS ?= -O2 -Wall -Woverloaded-virtual -fPIC

Dannach wie gewohnt übersetzen:

cd $SOURCEDIR/VDR
make clean
make <OPTIONEN> all plugins

Nach dem ausführen der runvdr für X basiert:

xine "vdr:/tmp/vdr-xine/stream#demux:mpeg_pes"

Entgegen jeder Aussage, gehts natürlich auch "minimal" via Framebuffer:

fbxine "vdr:/tmp/vdr-xine/stream#demux:mpeg_pes"

Konfiguration

In der aktuellen Version des Plugins befindet sich ein Player, mit welchen man andere Formate abspielen kann.

cp $SOURCEDIR/VDR/PLUGINS/src/mp3/examples/mplayer.sh.example /usr/local/bin/mplayer.sh

Anpassen

- MPLAYER="mplayer"
+ MPLAYER="/usr/local/bin/xineplayer"

Sollte dazu gesagt werden, das diese Geschichte im jetziegen Stadium nur mit Lirc funktioniert, somit auch nur im Modus TRADITIONAL des mplayer-plugins.

Optionen

VDR_XINE_SET_VIDEO_WINDOW=1 für volle yaepg-plugin Unterstützung aktivieren

Parameter

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

Die Parameter des Plugins können folgendermaßen übergeben werden.

vdr <VDR Parameter> -P'xine <parameter>' <weitere VDR Parameter>

Beispiel:

vdr -P'xine -r'

Tipps

VDR stellt das OSD auf der ersten Karte mit Decoder dar.
Mit dem Plugin gibt es ein weiteres Device (inc. Decoder), es ist immer das letzte.
Deshalb ist bei dem Betrieb mit einer (oder mehreren) FF Karten, ein höheres Device zu wählen. (das letzte verfügbare im Menü)

Einstellungen / Setup
    DVB
        Primäres DVB Interface / Primary DVB interface

Oder via "sed", VDR ist vorher zu beenden, einfach schauen welches wir haben (+1).

#~ grep ^PrimaryDVB /etc/vdr/setup.conf
PrimaryDVB = 3
#~ sed -i "s/^PrimaryDVB.*/PrimaryDVB = 4/" /etc/vdr/setup.conf


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):

#!/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

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.

echo xine-ui xine-lib xine-devel|xargs rpm -e --nodeps

Das dürfte im jetzigen Stadium bei jeder Distri aufs selbe hinaus laufen, da Sourcen benötigt werden.

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