Squeeze-VDR Teil 3 - TV-Ausgabe

Posted by Tobi Thu, 21 Oct 2010 16:00:00 GMT

Betriebsysstem, DVB-Treiber und VDR laufen und nun ist es an der Zeit, ein ordentliches Bild auf den Fernsehschirm zu bringen. In diesem Teil zeige ich, wie ich die TV-Ausgabe meines VDR mit xineliboutput eingerichtet habe.

test screen Es gibt viele Möglichkeiten, dem VDR ein Bild zu entlocken. Ohne eine Full Featured DVB-Karte, an welche der Fernseher direkt angeschlossen werden kann, bleiben nur die so genannten "Soft-Devices" übrig. Das sind VDR-Plugins, welche das DVB-Signal dekodieren und über die Grafikkarte ausgeben. Da das Dekodieren, besonders bei HDTV, sehr rechenintensiv ist, sollte diese Aufgabe auf spezielle Hardware ausgelagert werden. Das kann eine separate Dekoderkarte sein oder, wie in meinem Fall, kostengünstig eine NVIDIA-Grafikkarte. Letztere unterstützt das Dekodieren von Video-Datenströmen und bietet für Linux auch passende Bibliotheken in Form der "Video Decode and Presentation API for Unix" (VDPAU).

VDPAU wird von xine-lib - einer Video- und Audio-Bibliothek - verwendet, auf welcher wiederum die VDR-Plugins "xine" und "xineliboutput" basieren. Letzteres haben wir im vorangegangenen Teil schon installiert, um dem VDR erste Bilder zu entlocken. Ob man jetzt besser "xine" oder "xineliboutput" verwendet - ehrlich gesagt, ich habe keine Ahnung! Persönlich bevorzuge ich zunächst einmal Xineliboutput, da die Entwicklung durch Petri Hintukainen dort etwas transparenter verläuft.

Einmal X.Server ohne alles

Xineliboutput kann sein Bild sowohl via Frambuffer (Der Kernel-Schnittstelle für graphische GUI's) als auch via X-Server (einem separater Server für GUI's mit eigenen Treibern) ausgeben. Meines Wissens ist die VDPAU-Hardwarebeschleunigung derzeit aber nur via X-Server möglich.

Einen Desktop oder einen Fenstermanager brauchen wir für den VDR + xineliboutput jedoch nicht. Es reicht ein nackter X-Server ohne alles. Das ist zunächst allerdings nicht ganz so einfach, denn der X-Server wird immer zusammen mit einem Fenstermanger wie z.B. dem Gnome Display Manager (gdm) gestartet. Um einen Standalone-X-Server zu bekommen musst du ein separates Startskript schreiben. Ganz in der Tradition von Jean Pütz "Ich hab da mal was vorbereitet“, kannst du dir das Skript auch einfach herunterladen:

sudo sh -c "wget -P /etc/init.d http://e-tobi.net/blog/files/plain-xserver && chmod a+x /etc/init.d/plain-xserver"

...wobei das Skript nicht von mir stammt, sondern von Helmar Gerloni. Ich habe es lediglich noch etwas ausgebaut.

Jetzt muss dieses Skript noch aktiviert und der Gnome Desktop Manager deaktiviert werden. Das geht am einfachsten mit "rcconf", welches du zunächst installieren musst.

sudo apt-get install rcconf
sudo rcconf

gdm3 kannst du du dort mit der Leertaste deaktivieren und plain-xserver aktivieren. Nach einem Neustart sollte der Gnome-Desktop nun nicht mehr starten. Das musst du von nun an bei Bedarf manuell machen, indem du mit ALT-F1 auf Konsole 1 wechselst, dich dort anmeldest und mit sudo service gdm3 restart den Gnome Desktop aktivierst. In diesem Fall started Gnome mit einem separaten X-Server auf Konsole 7 (ALT-F7) während der Standalon-X-Server für den VDR auf Konsole 8 (ALT-F8) läuft.

VDR xineliboutput-Ausgabe aktivieren

Bei unserem Test im letzten Teil haben wir vdr-sxfe gestartet. Das ist ein kleines externes Programm, welches die Video- und OSD-Daten vom Xineliboutput-Plugin empfängt. Nun soll Xineliboutput aber direkt auf den X-Server zugreifen. Dazu muss noch ein "Plugin für das Plugin" installiert werden:

sudo apt-get install  libxineliboutput-sxfe

Außerdem sind noch ein paar Konfigurationseinstellungen vorzunehemen, wozu der VDR zunächst mit sudo service vdr stop beendet werden muss.

Zunächst sudo nano /etc/vdr/plugins/plugin.xineliboutput.conf.Diese Datei muss folgende Einträge haben:

--local=sxfe
--video=vdpau
--audio=alsa
--display=:1.0
--fullscreen
--primary
--remote=127.0.0.1:37890

Danach sudo nano /etc/vdr/setup.conf Hier fügst du folgende Zeilen hinzu.

xineliboutput.DisplayAspect = CenterCutOut
xineliboutput.OSD.Scaling = 1
xineliboutput.Video.Scale = 1
xineliboutput.Video.SwScale.Width = 1920
xineliboutput.Video.SwScale.Height = 1080

Damit der VDR nicht nur ein Bild sondern auch Ton ausgibt, muss du den user "vdr" noch der Gruppe "audio" zuweisen. Das geht ganz einfach mit:

sudo adduser vdr audio

Wenn du den VDR mit sudo service vdr start nun neu startest, müsstest du auf Konsole 8 ein Bild und/oder OSD sehen.

Anmerkungen

Die hier vorgestellte Variante mit separatem X-Server ist zwar recht einfach installiert hat u.U. ein paar Nachteile, die ich jetzt noch nicht abschätzen kann. So ist z.B. keine HUD-OSD (einem graphisch etwas "hochwertigerem" OSD) möglich. Wie sich das ganze bewährt, wird sich zeigen und bei Bedarf werde ich später noch auf eine Installation mit einem Window-Manager und HUD-OSD näher eingehen.

Im nächsten Teil wird es aber erstmal darum gehen, das OSD etwas aufzuhübschen und die Video-Ausgabe zu optimieren.

Posted in  | Tags , ,  | 40 comments | no trackbacks

Comments

  1. hoschi said 5 days later:

    Jetzt muss dieses Skript noch aktiviert und der Gnome Desktop Manager deaktiviert werden

  2. hoschi said 5 days later:

    Ich glaub die comment-Funktion is kaputt, mein Roman ist gar nicht da :(

    Neuer Versuch: gdm erst gar nicht installieren spart ihn zu deaktivieren = schlankeres System :)

  3. e-tobi said 5 days later:

    Die Anleitung richtet sich an Einsteiger, daher habe ich die Gnome-Desktop-Umgebung mit Absicht installiert. Das macht den Einstieg leichter, denke ich (siehe Teil 2). Und ob schlank oder nicht ist mir bei einer 40GB-Systemplatte erstmal egal :-)

    Falls ich nochmal auf das Thema HUD-OSD zurück komme, werde ich aber wohl eher auf einen schlankeren (bezogen auf CPU/RAM-Resourcen) Window-Manager ausweichen.

  4. Karabik said 11 days later:

    Erstmal Danke für die tolle Anleitung!!! 1.Ich benutze einen Atric-Einschalter zum Einschalten des PC. Wenn ich jetzt über den Menüpunkt Befehle "System herunterfahren" benutze schält mein PC ganz aus und der Atric ist ohne Strom.Über den Gnome-Desktop konnte ich den PC/System in den "Ruhezustand" runterfahren der die Versorgung des Atric über einen internen USB ermöglicht.Wie ist das softwaremäßig jetzt noch möglich?

    2.Wie bekommt man das Grub-Bootlogo ausgeblendet?

    3.Wie bekommt mann das Nvidia-Logo weg?

  5. Tobi said 11 days later:

    @Karabik: Den VDR in den S3-Suspend-Modus zu schicken ist nicht schwer, nur das Aufwachen ist etwas fummelig, da die DVB-Treiber neu geladen werden müssen. Ich werd' dazu mal einen kleinen Artikel verfassen.

    Was meinst du mit dem "Grub-Bootlogo"? Das Grub-Menü?

    Ein NVidia-Logo sehe ich bei mir garnicht. Falls bei dir eines erscheint, dann trage in /etc/X11/xorg.conf im Abschnitt "Device" mal folgendes ein:

    Option    "NoLogo"    "True"
    
  6. Karabik said 12 days later:

    Danke für den Tipp! Nvidia-Logo ist weg.Aber das Grub-Menü ist noch zu sehen bevor er weiter lädt.

  7. e-tobi said 12 days later:

    Es gibt einen Weg, Grub beizubringen, beim Booten nur einen Countdown zu zeigen und nur wenn man ESC drückt wird dann das Boot-Menu angezeigt. Leider scheint update-grub das aber nicht so zu machen, wie es soll. Ich schau mir das nochmal näher an, wenn ich den Artikel zum Aufhübschen des Boot-Vorgangs schreibe.

    Bis dahin kannst du den Timeout des Menüs auf 1 Sekunde setzen. Dazu in /etc/default/grub einfach GRUB_TIMEOUT=1setzen und sudo update-grubaufrufen.

  8. Michael said 13 days later:

    Hallo ! Ich weiß mir echt keinen Rat mehr. Hatte vdr nach dieser Anleitung mit X11 ausgabe an laufen. Habe das System neu aufegesetzt und es geht nur noch mit vdr-sxfe. K8 bleibt dunkel.

    Es Kommt: service vdr start Starting Linux Video Disk Recorder: vdr Searching for plugins (VDR 1.7.16/1.7.16) (cache hit): xine weather femon xineliboutput.

    Und das kann mehrmals mit dem gleichen Ergebis machen . Es Startet einfach nicht. Die Config ist da ich keine nvida habe so --local=sxfe --video=x11 --audio=alsa --display=:1.0 --fullscreen --primary --remote=127.0.0.1:37890

    Gruß Michael

  9. e-tobi said 13 days later:

    X-Server läuft wie oben beschrieben?

    # ps -A | grep -i Xorg
    1137 tty8     00:00:02 Xorg
    

    Und libxineliboutput-sxfe ist installiert?

    # dpkg -l | grep libxineliboutput
    ii  libxineliboutput-sxfe                      1.0.6+cvs20101019.1826-1             Local X-Server frontend for the xineliboutput plugin
    

    Ggf. mal VDR stoppen und in der setup.conf alle xineliboutput-Einträge zurücksetzen.

  10. Michael said 13 days later:

    $ ps -A | grep -i Xorg 1167 tty7 00:01:08 Xorg 2761 tty8 00:00:00 Xorg

    $ dpkg -l | grep libxineliboutput ii libxineliboutput-sxfe 1.0.6+cvs20101019.1826-1 Local X-Server frontend for the xineliboutput plugin

    Das sind meine Ausgaben. Starte den Plain-xserver von tty1. tty8 bleibt dunkel. Kommen aber auch keine Fehlermeldungen ? Versuche es so,weil wenn ich es wie beschrieben mache kann ich nicht mal mehr zurück auf eine andere Konsole, um es rückgängig zu machen. Habe jetzt schon zum 3. mal neu installiert. Verstehe das nicht, da es beim ersten mal problemlos ging ? Habe es nur deshalb neu gemacht um viele Partitionen zu zwei zu machen. Ist aber eine Woche her die erste Install. Hat sich vielleicht bei den Paketen etwas geändert ?

    Gruß Michael

  11. Michael said 13 days later:

    Hier noch die Ausgabe aus syslog.

    Gruß Michael

    EDIT: Log-Auszug gelöscht

  12. e-tobi said 13 days later:

    Leute! Man kann doch keinen 116-Zeilen Log-Auszug in einen Kommentar stopfen. Bitte verwendet für sowas services wie http://pastie.org

    http://pastie.org/1270960

    sxfe_display_open: failed to connect to X server (:1.0)
    

    Ist der VDR in der Gruppe "video"? (groups vdr).

    Was sagt ps -AF | grep -i /usr/bin/X?

    Lass auch mal das --video=x11 ganz weg.

  13. Michael said 13 days later:

    ps -AF | grep -i /usr/bin/X root 1208 1189 4 5955 16052 0 01:24 tty7 00:00:08 /usr/bin/Xorg :0 -br -verbose -audit 0 -novtswitch -auth /var/run/gdm3/auth-for-Debian-gdm-NXtCRG/database -nolisten tcp vt7 root 2251 1 1 3250 6432 0 01:27 tty8 00:00:00 /usr/bin/X :1.0 vt8 -br -nolisten tcp 1000 2262 2186 0 829 808 0 01:28 pts/0 00:00:00 grep -i /usr/bin/X

    x11 weglassen hilft auch nicht

    Gruß Michael

  14. e-tobi said 14 days later:

    Wenn du den VDR mit service vdr restart neu startest tut sich auch nichts?

    Du könntest noch versuchen, in /etc/init.d/plain-xserver ein kleine Änderung zu machen und den X-Server mit "-ac" zu starten:

    ... /usr/bin/X -- $DISPLAY $TERMINAL -br -ac ....
    
  15. Michael said 14 days later:

    Nein das hat auch nicht geholfen. Habe mal versuchsweise lenny mit dieser Anleitung eingerichtet. Da konnte ich mit --primary --remote=127.0.0.1:37890 --local=sxfe --display=:0.0 sudo /etc/init.d/vdr start problemlos ein Fenster mit vdr öffnen. Was schon unter squeeze scheitert. plain-xserver habe ich auch in betrieb bekommen.Wollte aber lieber squeeze benutzen, das es meine HW besser unterstützt. Was kann das denn nur sein, zumal ich es schon mal unter SQ am laufen hatte. Gruß Michael

  16. e-tobi said 15 days later:

    Ich bin erstmal am Ende mit meinem Latein. Könnte dir höchstens noch anbieten, am WE mal selber per SSH reinzuschauen.

  17. moonwalker said 18 days later:

    Hallo, Irgendwo hab ich Mist gebaut und habe jetzt ein Problem mit den Mitlauten ÄÖÜ und ß.

    Könnte bitte jemand im Terminal mit: dpkg-reconfigure locales

    nachschauen was da alles aktiviert sein muss?

  18. Marcus Klein said 18 days later:

    Ich persönlich benutze lieber die Variante mit einem zusätzlich gestarteten vdr-sxfe, dass sich über Netzwerk mit dem VDR xineliboutput-plugin verbindet. Die Ausgabe von HDTV über VDPAU und je nach Videomaterial ist schonmal nicht ganz stabil und schmiert ab. Benutzt man für die Ausgabe vdr-sxfe, so schmiert nur vdr-sxfe ab und nicht gleich der ganze VDR mit. Das ist besonders hilfreich, wenn gerade eine Aufnahme im Hintergrund läuft.

  19. e-tobi said 18 days later:

    @moonwalker:

    # locale
    LANG=de_DE.UTF-8
    LC_CTYPE="de_DE.UTF-8"
    LC_NUMERIC="de_DE.UTF-8"
    LC_TIME="de_DE.UTF-8"
    LC_COLLATE="de_DE.UTF-8"
    LC_MONETARY="de_DE.UTF-8"
    LC_MESSAGES="de_DE.UTF-8"
    LC_PAPER="de_DE.UTF-8"
    LC_NAME="de_DE.UTF-8"
    LC_ADDRESS="de_DE.UTF-8"
    LC_TELEPHONE="de_DE.UTF-8"
    LC_MEASUREMENT="de_DE.UTF-8"
    LC_IDENTIFICATION="de_DE.UTF-8"
    LC_ALL=
    

    @Marcus:

    Bis jetzt hab ich keine Abstürze gehabt. Allerdings hab ich auch noch nicht viel HDTV geguckt. Dafür ist das Angebot zu dürftig. Trotzdem ein guter Hinweis! vVelleicht mach ich nochmal einen Artikel zu vdr-sxfe als Ausgabeclient.

  20. moonwalker said 19 days later:

    @e-tobi Danke!Jetzt liest es sich wieder viel besser.:) Zu Testzwecken hab ich die Kiste schon stundenlang auf HD laufen lassen ohne jegliche Aussetzer.Könnte man nicht vdpautest "debianisieren" und in dein Repo aufnehmen?

  21. Michael said 19 days later:

    Hallo ! Habe es jetzt auch zum laufen bekommen. mit --video=auto ging es dann, aber nicht besonders gut. Habe dann versucht unter lenny & squeeze die orginalen Treiber von ATI zu Installieren. Was unter lenny auch nur sehr dürftig lief.Unter squeeze geht es gar nicht, da die treiber von ati für die Radeon 9600 nur bis xorg 7.4 gehen.Bin dann auf die libgl1-mesa-swx11 gestoßen und habe sie installiert. Danach lief es endlich im akzeptablen Ramen. Fazit ist: Diese Anleitung hier ist gut, nur nie wieder eine Karte von ati. Gruß Michael

  22. e-tobi said 19 days later:

    Das mit ATI kann ich so unterschreiben. Hab in meinem Notebook ne ATI drin, Aber bei den OSS-Treibern fehlt die Stromspar-Unterstützung und die proprietären Treiber hinken oft hinterher.

  23. Michael said 20 days later:

    Den VDR sollo laufen lassen ist nicht schlecht. Aber einen Nachteil habe doch schon festgestellt.Unter gnome werden meine USB-Platten komfortabel mit label von allein gemountet.Starte ich nur plain-xserver, kann ich nicht darauf zugeifen. Oder gibt es eine Lösung den gnome-volume-manager mit starten zu lassen ?

  24. zaubi4u said 23 days later:

    Hi Tobias,

    hier hat alles soweit funktioniert, nur zum Schluss bekomm ich im vdr-Fenster (Konsole 8) eine Fehlermeldung: dvb-ttpci_Failed to load firmware "av7110/bootcode.bin"

    Nun ja, werd die FF wohl jetzt aus dem System entfernen :)

    In der Setup.conf habe ich für die Auflösung erst einmal die meines Monis angegeben, weil HD-TV ist noch nicht vorhanden, sollte doch genau so gehen, oder?

    Gruß Micha

  25. e-tobi said 23 days later:

    Verwendest du dvb-s2api-liplianin?

    Das mit der Auflösung sollte klappen. Aupassen musst du nur, wenn du andere Skins installierst, nicht alle funktionieren auf jeder Auflösung.

  26. zaubi4u said 25 days later:

    Nein, lipian-Treiber verwende ich nicht, weil noch keine DVB-S2 Karte im System ist, nur eine DVB-S und eine DVB-T für erste Tests....

  27. e-tobi said 25 days later:

    Kannst es trotzdem mal mit den Liplianin-Treibern versuchen. Das Problem mit der "av7110/bootcode.bin" sollte da eigentlich nicht auftreten. Ich müsste aber meinen alten VDR mit der FF erstmal wieder reaktivieren um das zu testen.

  28. cyres said about 1 month later:

    Moin moin, kann es sein daß das externalplayer-plugin es nicht mehr schafft das device freizugeben weil der vdr jetzt solo läuft?

  29. cyres said about 1 month later:

    Hallo, das Gleiche versuche ich auch gerade mit externalplayer und mms.Gehe ich auf den Gnome-Desktop und starte dort im terminal geht es anstandslos.Nur über den externalplayer will mms nicht.Der vdr verschwindet kurz, Bild und Ton gehen kurz weg, dann läuft der Vdr im Vordergrund weiter.

  30. moonwalker said about 1 month later:

    Jupp.Scheint ein Fall für cheffe zu sein :) Externalplayer umd mmsv2

  31. Karabik said about 1 month later:

    WARNUNG vor Update über Gnome-Desktop! Habe eben ein Update über den Gnome-Desktop gemacht.Anschließend startet der VDR nicht mehr und hinterlässt folgende Meldung in temp: http://pastie.org/1335528 Das ist nur mit: sudo apt-get install nvidia-kernel-dkms nvidia-xconfig und sudo nvidia-xconfig und reboot zu beheben.

  32. zaubi4u said about 1 month later:

    Hi Karibik,

    hab es bei mir über ein apt-get dist-upgrade wieder zum Laufen bekommen.... Im Log hab ich gesehen, dass die Versionen vom nvidiatreiber und dem im Kernel nicht die gleichen waren.

  33. jackfritt said about 1 month later:

    Nur zur Info. Es gab bei mir einen segfault wenn ich nicht zu --local=sxfe auch ein --video=auto in plugin.xineliboutput.conf angegeben habe.

    Dec 16 18:31:13 vdr kernel: [71573.659864] vdrdevel[11942]: segfault at 968 ip 0 0007fcc8b3e5179 sp 00007ffff3f342a0 error 4 in libX11.so.6.3.0[7fcc8b3b1000+1380 00]

    sources.list deb http://e-tobi.net/vdrdevel-experimental lenny base vdr-multipatch deb-src http://e-tobi.net/vdr-experimental lenny base backports addons vdr-multipatch

  34. heinz57 said about 1 month later:

    nach einem stop des vdr mit "sudo service vdr stop" läßt sich der vdr mit "sudo service vdr start" nicht wieder starten. Erst ein reboot macht alles klar.

    Probleme mit Audio: Ich habe mainboard-audio, eine Soundkarte und eine usb-audio mit einer Webcam im Rechner. Zuerst hat sich vdr immer die Soundkarte ausgesucht dann plötzlich mainboard-audio. Nach Installation der angebotenen Updates war´s wieder die Soundkarte, bis nach einigen Neustarts wirkten wieder die Selbstheilungskräfte und ich konnte die Lautstärke wieder über das mainboard-audio steuern. Daraus ergeben sich zwei Fragen: Wo kann ich vdr an eine bestimmte "Sound-Karte" binden? Sollte ich angebotene Squeeze-Updates installieren?

  35. heinz57 said 2 months later:

    Der Sound wechselt immer wieder die Zuordnung (s.o.). Vermutlich müsste ich mal die Datei /etc/modprobe.d/alsa-base.conf gründlich überarbeiten. Aber wie am praktischsten?

  36. Andi said 3 months later:

    Hallo @ all.

    Ich habe ein kleines VIA Epia-M10000 Mainboard das hat eine onboard MPEG2 Chip drauf:
    Chipsatz: * Northbridge: Via CLE266, Southbridge VT8235

    Grafik: * VIA CastleRock(AGP)mit MPEG2 Dekoder * Via VT1622 TV Out

    Ist es möglich bei den xineliboutput.conf einstellungen statt --video=vdpau zb. --video=CLE266 einzutragen und würde es dann funktionieren? Ich weiss es ist keine HD ausgabe aber die normale reicht mir eigentlich für einen Client. MFG ANDI

  37. e-tobi said 3 months later:

    Wenn du xine-ui installierst und "xine --help" aufrufst, dann werden die dort die verfügbaren Video-Treiber angezeigt. Wenn cle266 dabei ist, sollte das funktionieren.

    Allerdings denke ich nicht, dass CLE266 direkt von Xine unterstützt wird. Falls es klappt, dann wahrscheinlich nur mit dem XvMC wrapper.

  38. ANDI said 3 months later:

    Okay Danke für den hinweis. Ich werde in den nächsten Tagen mal schauen. MFG

  39. moonwalker said 4 months later:

    @e-tobi Frage an den Meister: Wie schaffe ich es ein installiertes Fluxbox mit dem Plain-Xserver zu starten? Wenn ich Fluxbox später aufrufe kommt ein :Can't connect X-Server. Muß ich das Startscript zerpflücken?

  40. e-tobi said 4 months later:

    Hab das mit Fluxbox noch nicht probiert. Schau mal hier:

    http://wiki.debian.org/FluxBox

    ...das sollte weiterhelfen.

Trackbacks

Comments are disabled

 

Categories

Tags

.NET debian dkb mono Notebook squeeze squeezevdr survey vdr visa