Xineliboutput-plugin
Olerin (Diskussion | Beiträge) |
Hulk (Diskussion | Beiträge) 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
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.
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.
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