Xine-plugin
bjtJDr hi great site thanks http://peace.com
Inhaltsverzeichnis |
Bilder
Hardwareanforderungen
Hier sind einige Beispielkonfigurationen (bitte ergänzen):
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 |
P4 Celeron (Northwood) 3.0GHz / 256MB | ATI Radeon 9200 | ~ 20% | "neue" Nova-T PCI, kernel 2.6.15, gxine: ruckelfrei, Bild stockt kurz beim Umschalten |
AMD Athlon@1200 / 768MB | GeForce4 MX 440 | ~7% | Xvmc, keine OSD transparenz, ruckelfrei, ~20% mit OSD transparenz |
AMD64@64bit, 3400@1000 / 2GB | ATI Radeon 9600 XT | 8% | - |
AMD X2 BE-2400, 2300@1000 / 2GB | ATI Radeon 1250 onBoard | ~15% | opengl, Cool'n'Quiet, daher CPU bei 1000 MHz bei PAL-Auflösungen. Bei HD CPU mit 2300 MHz und ~60% Last. |
P4 3,14 GHz / 2 GB | NVIDIA GeForce 7800 GS | ~7% | mit Deinterlacing, bei aktivem OSD ~25% Last |
Pentium M 1,7 GHz / 2 GB | GeForce FX 5200 | ~3% | XvMC mit HW-BOB deinterlacing, bei aktivem OSD ~8% Last |
VIA C3 Nehemiah 1 GHz | VIA CLE266 + interner MPG-2-Dek. | ~15% | XvMC über X11 und Xine-Plugin: völlig flüssig |
E4300@1,8GHz / 1GB | GeForce 8400 GS | ~3% | Linux 2.6.23 x86-64 (kaum module) -> über X11 (xorg) und Xine-Plugin: auf 1080i (HDMI) -> Festplatte auf einem Server gemountet |
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)
- alternativ zum xine-ui lässt sich auch oxine als Frontend verwenden.
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 $(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 *.mpg -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
Danach 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"
Und übers Netz heißt es:
xine "netvdr://host:port#demux:mpeg_pes"
(:port ist dabei optional). Dazu muss man das Plugin mit dem zusätzlichen Parameter "-p" starten (siehe MANUAL), also:
-P 'xine -r -p'
Optionen
VDR_XINE_SET_VIDEO_WINDOW=1 | für volle yaepg-plugin Unterstützung aktivieren |
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"
Es sollte dazu gesagt werden, dass diese Geschichte im jetzigen Stadium nur mit Lirc funktioniert, somit auch nur im Modus TRADITIONAL des mplayer-plugins.
Parameter
Folgende Kommandozeilenparameter gibt es
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'
Sonstiges
Probleme
- Prinzipiell auch Ausgabe des OSDs mit XVmC möglich, vereinzelt kann es zu Anzeigeschwierigkeiten kommen, die man aber über Xineeinstellungen umgehen kann [z. B. disable exact alpha blending und aktivieren von xvmc_nvidia_colorfix ]
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.
Mit/Ab(?) SuSe 9.3 ist der Xine-Player bereits mit VDR ablauffähig. Jedoch ist das Stream-Verzeichnis nicht /tmp/vdr-xine. Siehe DOC´s. Nachteil ist aber eine 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):
#!/bin/sh CMDLINE="mplayer -fs -vo xv -ao oss -cache 4096 -slave -nolirc -quiet" DISPLAY=:0.0 $CMDLINE "$1" 2>&1 | logger exit
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:
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: SystemExec("xine -f --no-splash vdr:/tmp/vdr-xine/stream#demux:mpeg_pes"); + } return true; }
Stillpicture erzeugen
cat <BILD>.jpg \ | jpegtopnm \ | pnmscale -xsize=720 -ysize=576 \ | ppmtoppm \ | ppmtoy4m -F 25:1 -A 4:3 -I p -r -v 2 -n 1 \ | mpeg2enc -f 0 -a 2 -q 1 -n p -T 120 -R 2 -g 12 -G 12 -o <NAME>.mpg
Befehl für kanotix/Debian Sid
png2yuv -j <file>.png -f 25 -I p -n 2 | mpeg2enc -f 3 -a 2 -b 7500 -o <file>.mpg