Xineliboutput-plugin

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
K (Hob den Schutz von „Xineliboutput-plugin“ auf)

Version vom 5. März 2011, 12:22 Uhr

Inhaltsverzeichnis

Beschreibung

Autor: Petri Hintukainen

Einfaches Framebuffer- und/oder X11-Front-end für VDR. (zeigt OSD und Video in roh X/Xv/XvMC Fenster oder Linux framebuffer/DirectFB/vidxfb oder Dxr3 Karte).

Unterstützung für lokale und entfernte Frontends, z. B. mit vdr-sxfe oder VLC. Generiert einen http Stream auf Port 37890.

Built-in Bild- und Medienwiedergabe für die meisten bekannten Formate (avi/mp3/divx/jpeg/...) sowie Netzwerk Audio/Video Streams (http, rtsp, ...) direkt im VDR.


Bilder

kurze beschreibung

Bedienung

Bild-Betrachter

Hoch/Runter Nächstes/Voriges Bild
Links/Rechts 5 Bilder vor/zurück springen
Gelb Aktuelles Bild löschen
Zurück Zurück zur Bildübersicht
Stop/Blau Bildbetrachter verlassen
Play Diaschau starten
Pause Diaschau benden
FastFF/FastRew Diaschau starten; Diaschau schneller/langsamer ; Diaschau vorwärts/rückwärts
Ok Anzeigemodus umschalten

Medien Wiedergabe

Zurück Zurück zur Bildliste
Rot Springe zum Anfang der Datei (wenn es kein live-stream ist)
Grün Springe 1 Min. zurück
Gelb Springe 1 Min. vorwärts
Stop/Blau Wiedergabe anhalten (zurück in den Live-Modus)
User8 Springe 20 Sek. zurück
User9 Springe 20 Sek. vorwärts
1 Springe 10 Min. zurück
4 Springe 10 Min. vorwärts
3 Verschiebe Untertitel nach oben
6 Verschiebe Untertitel nach unten
Pause Pause
Play Abspielen
Umschalten zischen Wiedergabe- und Anzeige-Modus Ok

Tastaturbeispiel (remote.conf) für vdr-sxfe und vdr-fbfe

Die Tastatureingabe funktioniert auch am Client, sowohl vdr-sxfe und vdr-fbfe (Framebuffer) bei c't- (e-tobi), Kanotix-, Sidux- und Debian-VDR. /var/lib/vdr/remote.conf

XKeySym.... wird für vdr-sxfe (X11) benötigt.

KBD.... wird für vdr-fbfe (Framebuffer) benötigt.

Datei
remote.conf file
KBD.Up         00000000001B5B41
KBD.Down       00000000001B5B42
KBD.Menu       000000000000006D
KBD.Ok         000000000000000D
KBD.Back       000000000000007F
KBD.Left       00000000001B5B44
KBD.Right      00000000001B5B43
KBD.Red        000000001B5B5B41
KBD.Green      000000001B5B5B42
KBD.Yellow     000000001B5B5B43
KBD.Blue       000000001B5B5B44
KBD.0          0000000000000030
KBD.1          0000000000000031
KBD.2          0000000000000032
KBD.3          0000000000000033
KBD.4          0000000000000034
KBD.5          0000000000000035
KBD.6          0000000000000036
KBD.7          0000000000000037
KBD.8          0000000000000038
KBD.9          0000000000000039
KBD.Info       0000000000000069
KBD.FastFwd    0000001B5B31377E
KBD.FastRew    000000001B5B5B45
KBD.Power      0000000000000070
KBD.Volume+    0000001B5B32347E
KBD.Volume-    0000001B5B32337E
KBD.Mute       0000001B5B32317E
KBD.User7      0000001B5B31387E
KBD.User8      0000001B5B31397E
KBD.User9      0000001B5B32307E
XKeySym.Up         Up
XKeySym.Down       Down
XKeySym.Menu       m
XKeySym.Ok         Return
XKeySym.Back       BackSpace
XKeySym.Left       Left
XKeySym.Right      Right
XKeySym.Red        F1
XKeySym.Green      F2
XKeySym.Yellow     F3
XKeySym.Blue       F4
XKeySym.0          0
XKeySym.1          1
XKeySym.2          2
XKeySym.3          3
XKeySym.4          4
XKeySym.5          5
XKeySym.6          6
XKeySym.7          7
XKeySym.8          8
XKeySym.9          9
XKeySym.Info       i
XKeySym.Pause      space
XKeySym.FastFwd    F6
XKeySym.FastRew    F5
XKeySym.Power      p
XKeySym.Volume+    F12
XKeySym.Volume-    F11
XKeySym.Mute       F10
XKeySym.User7      F7
XKeySym.User8      F8
XKeySym.User9      F9



Hardwareanforderungen

  • Genügend CPU-Leistung und Hauptspeicher um Streams zu dekodieren (PII 400 MHz + 64 MB sollte für Xv oder DirectFB ausreichen).

Softwareanforderungen

  • vdr >= 1.3.42
  • xine-lib >= 1.1.1

Installation

  • XINE-lib
cd $SOURCEDIR
tar xvzf xine-lib-<VERSION>.tar.gz
cd xine-lib-<VERSION>
./autogen.sh --prefix=/usr/local
make
make install
ldconfig

Für Rpm-basierte Systeme empfiehlt sich diese Vorgehensweise (getestet mit OpenSuse 10.1, ARCH=x86_64 und VERSION=1.1.2):

rpmbuild -ta xine-lib-<VERSION>.tar.gz
rpm -ihv /usr/src/packages/RPMS/<ARCH>/libxine1-<VERSION>-0.<ARCH>.rpm
rpm -ihv /usr/src/packages/RPMS/<ARCH>/libxine1-devel-<VERSION>-0.<ARCH>.rpm

Die länglichen Dateinamen der Rpms kann man sich aus den letzten Zeilen der Ausgabe von rpmbuild kopieren.

  • Für lokale X oder Framebuffer frontends muss libxineliboutput-sxfe oder ...-fbfe installiert werden

Optionen

XINELIBOUTPUT_X11 = {0,1} X11 frontends erstellen ( Aus/An)
XINELIBOUTPUT_FB = {0,1} framebuffer frontends erstellen ( Aus/An)
XINELIBOUTPUT_XINEPLUGIN = {0,1} xine (input)plugin erstellen ( Aus/An)


Konfiguration

Dieses Plugin erstellt ein DVB-Interface (Menü -> Einstellungen -> DVB -> Primäres DVB-Interface). Dieses DVB-Interface muss ausgewählt sein, damit die Frontends ein Bildsignal erhalten können. Falls unter Primäres DVB-Interface ein anderes Gerät (z. B. die FF-Karte) ausgewählt wurde, erscheint im Frontend in roter Schrift "no signal".

remote client Zugriff

Damit der Remote-Zugriff eines Clients funktioniert, ist in der svdrphosts.conf die IP des Servers einzutragen.

Parameter

Folgende Kommandozeilenparameter gibt es

Parameter (kurz) Parameter (lang) Beschreibung
-l NAME --local=NAME Benutze lokales Frontend NAME
Unterstützte Frontends:
sxfe (X11)
fbfe (framebuffer)
none (nur fernbediente Frontends)
-r PORT --remote=PORT PORT für Client-Verbindungen (Voreinstellung 37890)
-A NAME --audio=NAME Benutze Audiotreiber NAME
Unterstützte Werte:
auto, alsa, oss, arts, esound, none
-V NAME --video=NAME Benutze Videotreiber NAME
Unterstützte Werte:
für sxfe: auto, x11, xshm, xv, xvmc, xxmc, vidix, XDirectFB, opengl, sdl, none
für fbfe: auto, fb, DirectFB, sdl, vidixfb, dxr3, aadxr3, none
-f --fullscreen Vollbild(schirm)-Modus (X11)
-w --width=x Fenster mit WERT
-h --height=x Fenster mit WERT
-d DISP --display=DISP Benutze X11 Anzeige DISP (or framebuffer device name)
-P POST --post=POST Benutze Xine Post Plugin POST
Format: pluginname[:arg=val[,arg=val]][,...]
Beispiel: --post=upmix;tvtime:enabled=1,cheap_mode=1
-p --primary Force xineliboutput to be primary device when there are active frontend(s)
-c --exit-on-close Exit vdr when local frontend window is closed
-L --nolocal Kein lokales Frontend, nur fernbediente Frontends
-m M --modeline=M Use modeline M for local frontend
-k --xkeyboard X11 Tastatur in Benutzung (orginal: X11 keyboard in use / Vielleicht besser X11 Tastatur benutzen)
-R --noremote Kein Fernbedienungs-Client

setup.conf Beispiel

setup.conf Beispiel für korrekt angezeigtes und transparentes OSD, bei Kanäle mit anamorphen Signal

für vdr-sxfe und vdr-fbfe Playern,

bei xine-ui, kaffeine, ... wird das nie funktionieren, da der Autor Petri diese nicht unterstützt.

Datei
setup.conf file
xineliboutput.Frontend = 
xineliboutput.OSD.AlphaCorrection = 0
xineliboutput.OSD.AlphaCorrectionAbs = 0
xineliboutput.OSD.Downscale = 1
xineliboutput.OSD.HideMainMenu = 0
xineliboutput.OSD.Prescale = 1
xineliboutput.OSD.UnscaledAlways = 0
xineliboutput.OSD.UnscaledLowRes = 0
xineliboutput.OSD.UnscaledOpaque = 0
xineliboutput.Remote.UseBroadcast = 0
xineliboutput.Remote.UsePipe = 0
xineliboutput.Remote.UseRtp = 0
xineliboutput.Remote.UseTcp = 1
xineliboutput.Remote.UseUdp = 1
xineliboutput.RemoteMode = 1


vdr-sxfe starten

vdr-sxfe --post tvtime:method=Linear,cheap_mode=1,pulldown=0,use_progressive_frame_flag=1 xvdr:tcp://ip.des.vdr.servers

Sollte eine Fehlermeldung ähnlich fe_xine_open: xine_open("xvdr:+cp://127.0.0.1#nocache;demux:mpeg_block") failed (anstelle von xvdr:tcp erscheint xvdr:+cp) erscheinen, handelt es sich um eine andere (neuere?) Verison des Plugins, für welche laut Hilfe folgende Syntax gilt:

Usage: vdr-sxfe [options] [xvdr[+udp|+tcp|+rtp]:[:port]]

Also lautet obiger Aufruf:

vdr-sxfe --post tvtime:method=Linear,cheap_mode=1,pulldown=0,use_progressive_frame_flag=1 xvdr+tcp://ip.des.vdr.servers

vdr-fbfe (Framebuffer) starten

fuser -k /dev/dsp &>/dev/null
clear
vdr-fbfe --post tvtime:method=Linear,cheap_mode=1,pulldown=0,use_progressive_frame_flag=1 xvdr:tcp://ip.des.vdr.servers &>/dev/null
reset

Sonstiges

Tipps

Audio-Aussetzer bei SMT-7020s

Bei einigen VDR-Distributionen (Zenslack und Zendeb) und Verwendung bestimmter Hardware (Samsung SMT-7020s) treten gelegentliche, sehr kurze Audio-Aussetzer bei Verwendung von UDP auf. Der Workaround besteht darin, vdr-sxfe nicht mit udp, sondern mit tcp aufzurufen.

Möglicherweise sind auch andere VDR-Distributionen auf anderer Hardware davon betroffen.

Details: http://www.vdr-portal.de/board/thread.php?threadid=87830

Sporadische Tonaussetzer

Bei sporadischen Tonaussetzern hilft es eventuell die xine-lib mit etwas größerem Buffer zu initialisieren:

--- xineliboutput-1.0.5/xine_frontend_main.c	2011-01-17 21:18:27.224412001 +0100
+++ xineliboutput-1.0.5/xine_frontend_main.c	2011-01-17 21:19:13.017412003 +0100
@@ -612,7 +612,7 @@
   }
 
   /* Initialize xine */
-  if(!fe->xine_init(fe, adrv, adev, gdrv, 250, static_post_plugins)) {
+  if(!fe->xine_init(fe, adrv, adev, gdrv, 5000, static_post_plugins)) {
     fprintf(stderr, "Error initializing xine\n");
     fe->fe_free(fe);
     list_plugins(NULL, verbose_xine_log);

Der Wert sollte aber nicht zu hoch sein, da ansonsten die Umschalten von Kanälen etwas länger dauert


CVS Snapshot

cvs -z3 -d:pserver:anonymous@xineliboutput.cvs.sourceforge.net:/cvsroot/xineliboutput co vdr-xineliboutput

Links

  1. Homepage des Plugin
  2. Alte Homepage des Plugins und Alte README
  3. Xine Projekt Homepage
  4. Xv, XvMC
In anderen Sprachen