0.8 Ausgabe-Frontends und xbmc
Inhaltsverzeichnis
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.
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.
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 dieasound.conf
manuell angepasst oder dieeasyvdr-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
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:
- Vor dem händischem Anpassen immer den VDR stoppen
- Die Datei liegt normalerweise im Homeverzeichnis des Users mit dem der VDR gestartet wird, z.B. ~/.xine/config
- Das Deinterlacing für SD-Kanäle ist grundsätzlich temporal_spatial und ist nicht seperat konfigurierbar.
- Das erweiterte Deinterlacing für HD-Kanäle ist in fünf Stufen einstellbar:
- bob: Basic deinterlacing, doing 50i->50p.
- half temporal: Displays first field only, doing 50i->25p.
- half temporal_spatial: Displays first field only, doing 50i->25p.
- temporal: Very good, 50i->50p.
- temporal_spatial: The best, but very GPU intensive.
- 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:
- Dieser Screenshot vom PearlHD-Skin und noch mehr sind auch der Plugin-Seite, oder bei wbreu zu finden:
- EnigmaNG-Skin in 1920x1080, mehr Bilder bei wbreu
- Black-and-Blue-Skin von tomas, mehr Bilder bei wbreu
- Anthra-Skin von tomas, mehr Bilder im Thread