0.8 Ausgabe-Frontends und xbmc

Aus easyVDR-Wiki
Zur Navigation springen Zur Suche springen
Easyvdr08.jpg

Zur Übersicht EasyVDR 0.8


Vorwort

Dieser Beitrag von leorg ist Grundlage und wurde für die Version ab 0.7.24 angepasst.

Definition/Einleitung

Was ist ein Frontend?

Zitat WIKI

Die Begriffe Frontend und Backend (deutsch „vorderes und hinteres Ende“) werden in der Informationstechnik an verschiedenen Stellen in Verbindung mit einer Schichteneinteilung verwendet. Dabei ist typischerweise das Frontend näher am Benutzer, das Backend näher am System.

Ein Backend verarbeitet die Informationen. Hier der VDR.

Ein Frontend stellt die Ausgabe des Bild- und Tonmaterials und die Eingabe bereit. Die Ausgabe erfolgt entweder über eine (Onboard-) Grafikkarte mit VDR-sxfe, Xine, XBMC oder Streamdev-Client, oder über andere Hardware wie eine Reel-HDe oder eine Full-Featured Karte (hier ist auch Streamdev möglich). Siehe auch Ausgabe-Hardware

Der VDR an sich ist ursprünglich für sogenannte Full-Featured DVB-S/C/T Karten entwickelt worden.

Dabei übernimmt ein auf der Karte verbauter Chip die Dekodierung bzw. die Ausgabe des Bildmaterials. Der Fernseher wird direkt an diese Karte angeschlossen, wobei der "beste" Weg der Bild-Signalübertragung über RGB-Scart möglich ist.

Da diese FF-Karten relativ teuer sind, haben sich findige Programmier etwas einfallen lassen, um das Bild in adäquater Qualität über die Grafikkarte auszugeben. So kann dann auch eine sogenannte Budget-Karte (eine Karte ohne Ausgabe-Hardware) mit dem VDR genutzt werden. Die beiden hier zu nennenden Plugins sind Xineliboutput-Plugin und Xine-Plugin , beide Plugins basieren auf der xine-lib von Xine-Project.

Im Zeitalter von LCD- und Plasmafernsehern liegt eigentlich der Anschluss per HDMI nahe, zudem gibt es keine HDTV-Karte mit eingebautem Ausgabe-Chip (TechnoTrend hat so etwas zwar schon lange angekündigt, bis jetzt aber nur einen Prototypen vorgestellt). Da Computer-Hardware immer günstiger wird und NVidia mittlerweile per VDPAU auch Video-Dekodierung per Grafik-Chip unter Linux möglich macht, hat sich diese Möglichkeit der Bild (-und Ton) Ausgabe gerade im Bereich HDTV als geeignete Lösung etabliert (es gibt auch noch andere, z.B. die Reel-HDe-Karte, oder VGA2Scart mit Framerate-Control: Ausgabe-Hardware).

Frontends für einen VDR auf dem gleichen Gerät

vdr-sxfe: Server + Remote-Frontend fuer Xineliboutput (Standard)

Die *-sxfe Frontends benutzen diverse Video-Erweiterungen des X-Servers, laufen also im Fenster des X-Server. Voraussetzung ist ein aktiviertes Xineliboutput-Plugin im VDR.

Das vdr-sxfe Remote Frontend läuft unabhängig vom VDR in einem Daemon. Der Daemon sorgt dafür, dass das vdr-sxfe automatisch gestartet wird, wenn sich das vdr-sxfe Remote Frontend mal unerwartet beendet.

easyvdr-config-frontend.sh/easyvdr-config-xineliboutput.sh setzen folgende Parameter in der /etc/vdr/sysconfig für das vdr-sxfe Remote Frontend mit dem Zugriff auf den Lokalen VDR mit der IP=127.0.0.1

XSERVER "XFCE4"
FRONTEND="vdr-sxfe"
RESTARTXSERVERFRONTEND "yes"
XVDR_DISPLAY="0.0"
START_VDR "yes"
WAITVDR="yes"
XBMC_ENABLED "remote"
SXFEPARAMETER="--reconnect --fullscreen --buffers=5000 xvdr://127.0.0.1:37890"

local: Server + Local-Frontend fuer Xineliboutput (bei z.B. Intel+FRC)

Die *-sxfe Frontends benutzen diverse Video-Erweiterungen des X-Servers, laufen als im Fenster des X-Server.

Voraussetzung ist ein aktiviertes Xineliboutput-Plugin im VDR.

Das vdr-sxfe Local Frontend wird zusammen mit dem VDR über sein Startskript gestartet. Wird der VDR beendet, beendet sich der vdr-sxfe auch.

easyvdr-config-frontend.sh/easyvdr-config-xineliboutput.sh setzen folgende Parameter in der /etc/vdr/sysconfig für das vdr-sxfe lokale Frontend mit dem Zugriff auf den Lokalen VDR

FRONTEND="local"
START_VDR "yes"
WAITVDR="yes"
XBMC_ENABLED "local" oder "no"

xine: Server + Remote-Frontend fuer Xine

Das XINE-UI stellt ein Frontend das VDR Plugin Xine dar.

Voraussetzung ist ein aktiviertes Xine-Plugin im lokalen VDR.

Xine-ui Frontend läuft unabhängig vom VDR in einem Daemon. Der Daemon sorgt dafür, dass Xine automatisch gestartet wird, wenn das xine-ui Frontend sich mal unerwartet beendet.

easyvdr-config-frontend.sh setzt folgende Parameter in der /etc/vdr/sysconfig für das xine-ui lokal Frontend mit dem Zugriff auf den Lokalen VDR mit der IP=127.0.0.1

FRONTEND="xine"
START_VDR "yes"
WAITVDR="yes"
XVDR_DISPLAY="0.0"
XBMC_ENABLED "local" oder "no"
XINEPARAMETER="-f -A alsa --post vdr --post vdr_video --post vdr_audio --post autocrop:enable_autodetect=0,enable_subs_detect=1,soft_start=1,stabilize=1 --aspect-ratio=anamorphic --verbose=2 --no-logo --no-splash vdr:/tmp/vdr-xine/stream#demux:mpeg_pes"

Frontends für einen VDR auf einem entfernten Gerät

strsxfe: Streaming Client mit Remote-Frontend Xineliboutput

Die *-sxfe Frontends benutzen diverse Video-Erweiterungen des X-Servers, laufen als im Fenster des X-Server. Voraussetzung ist ein aktiviertes Xineliboutput-Plugin auf dem Remote VDR.

Das vdr-sxfe Remote Frontend läuft in einem Daemon dafür sorgt, dass das Frontend automatisch neu gestartet wird, wenn es sich mal unerwartet beendet.

Alle zusätzlichen Serveranwendungen z.B. EasyVDR-Portal, FTP. etc. stehen nicht zur Verfügung. Auch VDR wird nicht gestartet.

easyvdr-config-frontend.sh/easyvdr-config-xineliboutput.sh setzen folgende Parameter in der /etc/vdr/sysconfig für das vdr-sxfe Remote Frontend mit dem Zugriff auf einen entfernten VDR mit der gewählten IP z.B. 192.168.10.200

XSERVER "XFCE4"
FRONTEND="vdr-sxfe"
RESTARTXSERVERFRONTEND "yes"
XVDR_DISPLAY="0.0"
START_VDR "no"
WAITVDR="no"
XBMC_ENABLED "remote"
START_FTPD "no"
START_XXV "no"
START_VDRADMIN "no"
START_SAMBA "no"
START_HTTPD "no"
SXFEPARAMETER="--reconnect --fullscreen --buffers=5000 --post tvtime:method=Linear,cheap_mode=1,pulldown=0,use_progressive_frame_flag=1 xvdr://192.168.10.200:37890"

strxine: XINE-UI Frontend für das Plugin Xine

Das XINE-UI stellt ein Frontend für das VDR Plugin Xine dar. Voraussetzung ist ein aktiviertes Xine-Plugin auf dem entfernten VDR.

Xine-ui Frontend läuft unabhängig in einem Daemon. Der Daemon sorgt dafür, dass Xine automatisch gestartet wird, wenn das xine-ui Frontend sich mal unerwartet beendet.

Alle zusätzliche Serveranwendungen z.B. EasyVDR-Portal, FTP. etc. stehen nicht zur Verfügung. Auch VDR wird nicht gestartet.

easyvdr-config-frontend.sh setzt folgende Parameter das xine-ui Frontend mit dem Zugriff auf einen entfernten VDR mit der gewählten IP z.B. 192.168.10.200

FRONTEND="xine"
WAITVDR "no"
START_VDR "no"
START_FTPD "no"
START_XXV "no"
START_VDRADMIN "no"
START_SAMBA "no"
START_HTTPD "no"
XBMC_ENABLED "no"
XINEPARAMETER="-f -A alsa --post vdr --post vdr_video --post vdr_audio --post autocrop:enable_autodetect=0,enable_subs_detect=1,soft_start=1,stabilize=1 --aspect-ratio=anamorphic --verbose=2 --no-logo --no-splash vdr:/192.168.10.200#demux:mpeg_pes"


server: VDR Server ohne Frontend

Diese Auswahl konfiguriert den VDR als reine Serveranwendung, also ohne lokale Anzeige.

Alle zusätzliche Serveranwendungen z.B. EasyPortal, FTP. etc. stehen auch zur Verfügung. Das Frontend muss dann auf einem anderem Gerät konfiguriert werden. Auf dem Server wird das Xineliboutput-Plugin aktiviert, mit dem sich dann ein Client / Frontend verbinden kann.

easyvdr-config-frontend.sh/easyvdr-config-xineliboutput.sh setzen folgende Parameter in der /etc/vdr/sysconfig

START_X "no"
FRONTEND "server"
START_VDR "yes" 
WAITVDR="yes"
START_FTPD "yes"
START_XXV "yes"
START_VDRADMIN "yes"
START_SAMBA "yes"
START_HTTPD "yes";
XBMC_ENABLED "no"
SXFEPARAMETER="--reconnect --fullscreen --buffers=5000 xvdr://127.0.0.1:37890"

Weitere Frontends

Weitere Frontends die hier vorerst nicht weiter beschrieben sind:

'vdr-fbfe' VDR-FBFE Remote Frondend fuer Plugin Xineliboutput

Wird durch andere Hardware Scripts abgedeckt.

'vdr' VDR für DVB FF Karten

Die ursprüngliche Form der Bildausgabe über eine Full-Featured Karte kann durch easyvdr-config-ff.sh konfiguriert werden.
Enigmang screenshot ff.jpg

Wechseln des Frontends

Um das Frontend zu wechseln muss der VDR zunächst beendet werden:

stopvdr
stopx
stopvdr
stopvdr

(stopvdr muss mehrfach aufgerufen werden, damit alle Module entladen werden)

Da das Wechselscript easyvdr-config-frontend.sh alleine nicht alle möglichen Parameter aller Wechselkombinationen richtig ein- bzw. zurückstellt, wählt man das Frontend zusammen mit der Ausgabe-Hardware aus, mit:

easyvdr-config-video_out.sh

und eventuell den Rechner neu starten

reboot

XBMC

XBMC ist eine sehr schicke Medien-Center Software.

Xbmc confluence.jpg

Es wird eifrig daran gearbeitet den VDR als Backend für XBMC einzusetzen, so dass man damit auch Live-TV und Aufnahmen anschauen kann. Die aktuelle Entwicklung geht in Richtung VNSI-Server-Plugin, an dem Pingpong fleißig arbeitet, siehe auch hier im VDR-Portal. Die Lösung funktioniert zwar schon, ist jedoch noch im alpha-Stadium.

Nichtsdestotrotz kann man XBMC für alles andere sehr gut einsetzen. Dazu wird eine Verknüpfung im Hauptmenü des VDR vom Installationsscript (easyvdr-config-frontend.sh) angelegt, wenn ein Remote Frontend, oder nach einer Abfrage auch ein Lokales Frontend (s.o.), ausgewählt wurde.

Hinweise:

  • Für die Verwendung von XBMC wird ein remote Frontend empfohlen. Wenn XBMC zusammen mit einem lokalen Frontend verwendet werden soll, wird das Installationsscript (easyvdr-config-frontend.sh) eine andere Sounddatei (asound.conf) verwenden. Diese Sounddatei ist mit den meisten Systemen kompatibel. Sollte trotzdem nach der Installation und Neustart der Ton nicht funktionieren, muss die asound.conf manuell angepasst oder die easyvdr-config-vo.sh erneut ausgeführt werden.
  • Um XBMC mit der Fernbedienung steuern zu können wird die Datei /root/.xbmc/userdata/Lircmap.xml benötigt. Siehe hier.

Benötigte Plugins

xineliboutput-Plugin

Allgemeines

Das Xineliboutput-Plugin ist die Standardausgabemethode für die 0.8, wenn es um HD-Systeme mit VDPau/NVidia-Systeme geht. Die verwendete Version für das Plugin ist 1.0.90-cvs

VDR-Wiki

Konfiguration

Viele Einstellungen können über das OSD vorgenommen werden. Die Anzahl der sichtbaren Einstellungen wird aber durch eine Einstellung in der config-Datei begrenzt (siehe Config-Datei).
Die Einstellungen für das OSD findet man unter

Menü => System => Einstellungen => Grundeinstellungen Systemstart => Plugins aktivieren und konfigurieren => Plugins Setup

config-Datei

Die meisten Einstellungen für das Xineliboutput-Plugin werden unter /etc/vdr/plugins/xineliboutput/config gespeichert. Unter ~/.xine/config_xineliboutput sollte automatisch ein Symlink auf die echte Config-Datei erstellt worden sein.
Einige wichtige Parameter aus der config:

# number of video buffers
# numeric, default: 500
engine.buffers.video_num_buffers:5000

Bei Problemen mit HD-Sendern sollte hier u.U. 8000 als Wert probiert werden.

# default number of video frames
# numeric, default: 15
engine.buffers.video_num_frames:42

Bei langen Umschaltzeiten sollte dieser Wert verkleinert werden. Als Minimum sollte 22 eingestellt werden. Bei kleinen Werten vergrößert sich jedoch die Wahrscheinlichkeit für Abstürze beim Zappen.

Sysconfig

In der sysconfig steht der Aufrufparameter für das Xineliboutput-Plugin. Der Default-Wert für ein Xineliboutput-Remote-System mit VDPau ist

SXFEPARAMETER="--reconnect --video=vdpau --fullscreen --buffers=5000 xvdr://127.0.0.1:37890"

setup.conf

In der /etc/vdr/setup.conf werden die Einstellungen, die über das OSD gemacht werden, gespeichert. Alle Werte fangen mit "xineliboutput." an

Tuning

Hier fehlt noch etwas...

xine-Plugin

Das Xine-Plugin basiert wie das Xineliboutput-Plugin ebenfalls auf der xine-lib und stellt eine weitere Möglichkeit dar das Videobild über die Grafikkarte auszugeben.

config-Datei

Grundsätzliche Tips von wbreu:

  1. Vor dem händischem Anpassen immer den VDR stoppen
  2. Die Datei liegt normalerweise im Homeverzeichnis des Users mit dem der VDR gestartet wird, z.B. ~/.xine/config
  3. Das Deinterlacing für SD-Kanäle ist grundsätzlich temporal_spatial und ist nicht seperat konfigurierbar.
  4. Das erweiterte Deinterlacing für HD-Kanäle ist in fünf Stufen einstellbar:
    1. bob: Basic deinterlacing, doing 50i->50p.
    2. half temporal: Displays first field only, doing 50i->25p.
    3. half temporal_spatial: Displays first field only, doing 50i->25p.
    4. temporal: Very good, 50i->50p.
    5. temporal_spatial: The best, but very GPU intensive.
  5. Die Datei kann durch Löschen und anschliesendem Neustart des VDR's wieder im default-Zustand hergestelt werden.

Hier die xineplugin_config von wbreu.

Screenshots

Im Vergleich zu einer FullFeatured-Karte (nur 2MB Grafikspeicher, oder maximal 4MB mit einem Hardwaremod), hat man bei der Ausgabe über die Grafikkarte die Möglichkeit, deutlich schönere OSDs darzustellen.

Hier mal vier Beispiele:

  1. Dieser Screenshot vom PearlHD-Skin und noch mehr sind auch der Plugin-Seite, oder bei wbreu zu finden:
    PearlHD screenshot timer.jpg
  2. EnigmaNG-Skin in 1920x1080, mehr Bilder bei wbreu
    Skinenigmangmenue.jpg
  3. Black-and-Blue-Skin von tomas, mehr Bilder bei wbreu
    Wbreu blackandblue.jpg
  4. Anthra-Skin von tomas, mehr Bilder im Thread
    Anthra fsdark.jpg