Unterstützt Xine den Hardware-Decoder vom Raspberry Pi?

  • Unterstützt Xine den Hardware-Decoder vom Raspberry Pi?


    Ich habe jetzt zwei gegensätzliche Aussagen gefunden:

    xine/xineliboutput does not support the Raspberry Pi's hardware-decoder

    Das erste Zitat interpretiere ich als "ja" und das Zweite als "nein". Beide Quellen sind von diesem Jahr, also recht aktuell.

    Nun bin ich etwas verwirrt und hoffe, mich kann jemand aufklären.


    Meine Idee war, auf RPI-Basis, einen "dummen" Wiedergabe-Client für meinen VDR zu bauen.

    Also nur Xine auf dem RPI, als Frontend für das Xineliboutput-Plugin auf dem VDR.
    Ohne Decoder-Support kann man das Vorhaben aber wohl vergessen, denke ich.

    Gruss
    SHF


  • Wie es aussieht muss ich meinen Post vom Februar revidieren - es gibt seit 2014 ein Ausgabeplugin für mmal (https://sourceforge.net/p/xine…ideo_out/video_out_mmal.c) aber das scheint in Distributionen wie Rasbian oder Arch Linux ARM nicht mitgeliefert zu werden. Man muss die xine-lib-1.2 mit --enable-mmal konfigurieren, damit das gebaut wird wird.


    Mit xineliboutput und vdr-fbfe -V mmal -A alsa (ggf. noch -E um CEC zu deaktivieren) bekommt man dann Bild und Ton über eine USB-Soundkarte (wie man Ton vom Hardware-Decoder über HDMI oder den eingebauten analogen Anschluss bekommen kann, habe ich noch nicht herausgefunden, vermutlich wurde das nicht implementiert). Hardwarebeschleunigtes Deinterlacing scheint auch nicht möglich zu sein.


    Bei der Konfiguration für xine musste ich einige Anpassungen vornehmen, damit die Fehlermeldungen über zu kleine Werte für die Buffer und Frames verschwinden:

    Code
    # grep -v "^#\|^$" ~/.xine/config_xineliboutput
    .version:2
    audio.a52.surround_downmix:1
    audio.device.alsa_front_device:default
    audio.synchronization.av_sync_method:resample
    video.processing.ffmpeg_thread_count:4
    engine.buffers.audio_num_buffers:500
    engine.buffers.video_num_buffers:250
    engine.buffers.video_num_frames:50
    engine.performance.memcpy_method:libc

    Das Abspielen von Videos über den "Medien" Eintrag scheint nicht sauber zu funktionieren, die Videos ruckeln z.T. spürbar (ich habe mit dvbcut erstellte MPEG2 Dateien und eine mkv mit BluRay-Video ausprobiert) und spätestens beim Stoppen der Wiedergabe crasht der VDR 2.4.0 ((das Problem habe ich mit aktuellen Versionen von xineliboutput auch mit VDPAU).


    Mein erster Eindruck ist, dass das deutlich instabiler als die Kombination aus rpihddevice und KODI ist und mehr Beschränkungen hat.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ist doch im Grunde genommen dann auch fast das selbe oder?

    Nein.

    Das eine ist eine ist ein eigener VDR als Client und das "nur" eine Ausgabemöglichkeit über das Netzwerk.

    Ich suche halt letzteres, da ich so Zugriff auf das OSD habe, als ob ich direkt am VDR sitze.


    Ausserdem ist es super simpel, da man auf dem Ausgaberechner nichts installieren oder konfigurieren muss, wenn man Xine direkt verwendet.

    Code
    xine xvdr://VDR_IP:37890#nonache



    @seahawk1986:

    Danke fürs testen und die Aufklärung!
    Das Fazit klingt ja recht ermutigend.


    Der Mediaplayer ist mir nicht so wichtig.

    Ich hatte sowieso überlegt, das direkt auf dem Client über Xine (oder notfalls einen anderen Player) zu erledigen.


    Die Hardwarebeschleunigung sollte auch unter X laufen, oder setzt das die Ausgabe über MMAL auf der Konsole vorraus?


    (wie man Ton vom Hardware-Decoder über HDMI oder den eingebauten analogen Anschluss bekommen kann, habe ich noch nicht herausgefunden, vermutlich wurde das nicht implementiert)

    Einen Alsa-Treiber für den HDMI-Ausgang gibt es und da du Ton über die Soundkarte bekommst, sollte es eigentlich irgendwie gehen.


    Der PI scheint aber wählerisch zu sein, was die EDID des Monitors angeht.

    Wenn man nach kein Ton am HDMI-Ausgang sucht findet man einiges:

    Audio configuration

    Gruss
    SHF


  • Ausserdem ist es super simpel, da man auf dem Ausgaberechner nichts installieren oder konfigurieren muss, wenn man Xine direkt verwendet.

    Abgesehen von einer selbst gebauten libxine-1.2, die das mmal-Ausgabeplugin behinhaltet, xorg usw. ...


    Die Hardwarebeschleunigung sollte auch unter X laufen, oder setzt das die Ausgabe über MMAL auf der Konsole vorraus?

    Wie gut das mit einem laufenden X-Server harmoniert, habe ich nicht ausprobiert. Bis gestern hatte ich nicht mal alsa(-utils) installiert, weil es für rpihddevice und KODI nicht benötigt wird.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Abgesehen von einer selbst gebauten libxine-1.2, die das mmal-Ausgabeplugin behinhaltet, xorg usw. ...

    Auf meinem "normalen" Computern ging es mit Debian "out of the box". (normale Desktop-Installation + Xine)


    Das das mmal-Ausgabeplugin auf dem RPI nicht aktiviert ist, würde ich als Bug einstufen, weil es noch recht neu ist.


    Wie gut das mit einem laufenden X-Server harmoniert, habe ich nicht ausprobiert.

    I've never tried mmal with X11, it probably doesn't even work with X11. X11 drivers for RPi are too slow for any video playback.

    Anscheinend arbeitet man am RPI nicht wie üblich mit X.

    Da muss ich mich dann wohl erst mal einlesen, wie die grafische Oberfläche realisieren.


    Wird aber irgendwie zu machen sein.

    Notfalls mit Lirc und einem Script, mit dem man zwischen den Anwendungen umschaltet.

    Gruss
    SHF


  • Also zum einen solltet Ihr schon korrekterweise vdr-plugin-xineliboutput schreiben, weil vdr-plugin-xine ist ein ganz anderes Plugin von rnissl, seit Jahren nicht mehr weiterentwickelt.


    Zum anderen gibt es m.E. zwei Ausgabefrontends bei xineliboutput, sxfe für die X11 Ausgabe und fbfe für die Ausgabe ohne X11 ... ? Denkbar dass das letztere für mmal nutzbar ist?


    Regards

    fnu


    PS.: Oder einfach LibreELEC auf dem RPi nutzen und mit dem VDR per vdr-plugin-vnsiserver verbinden ...

    HowTo: APT pinning

    2 Mal editiert, zuletzt von fnu ()

  • Also zum einen solltet Ihr schon korrekterweise vdr-plugin-xineliboutput schreiben, weil vdr-plugin-xine ist ein ganz anderes Plugin von rnissl, seit Jahren nicht mehr weiterentwickelt.

    Wo es ums (VDR-)Plugin ging, steht immer Xineliboutput-Plugin.

    Bei der Fragestellung ist das Plugin aber unerheblich, da das auf die Hardwareunterstützung der Xinelib keinen Einfluss hat.


    Meine Frage bezog sich auf Xine, also xinelib und die darauf basierenden Player xine, gxine, fbxine, vdr-sxfe, vdr-sxfe... , in wieweit die den Hardware-Decoder vom RPI unterstützen.

    Zum anderen gibt es m.E. zwei Ausgabefrontends bei xineliboutput, sxfe für die X11 Ausgabe und fbfe für die Ausgabe ohne X11 ... ?

    Der zur Xinelib gehörende Player /usr/bin/xine(Debian-Paket: "xine-ui") geht auch, wenn man die MRL wie folgt aufruft: xine xvdr://VDR_IP:37890#nonache

    Die Unterstützung kommt bei Debian aus dem Paket "libxine2-xvdr" (Quellpaket: "vdr-plugin-xineliboutput").

    Prinzipiell sollte da jeder auf der Xinelib basierende Player wie fbxine gehen.
    Wenn man auf das OSD verzichten kann gehen alle Player, die einen entsprechenden rtp oder http Stream wiedergeben können.


    Dann gibt es noch das Paket "libxine2-vdr" das stammt aus den Quellen der Xinelib und ist für das alte vdr-plugin-xine.

    In wie weit die beiden kompatibel sind hab ich noch nicht probiert.


    Das vdr-plugin-xvdr ist, hat trotz Namensgleicheit mit dem Protokoll, nichts mit Xine zu tun.

    Es war der Vorläufer des vdr-plugin-vnsiserver zur Anbindung an XBMC (jetzt Kodi). Aktuell noch verwendet bei "robotv" für Android.

    Ob das Protokoll identisch ist oder nicht, konnte ich nicht in Erfahrung bringen.

    Denkbar dass das letztere für mmal nutzbar ist?

    Es ist nutzbar, siehe Post #3.

    Nochmal danke an Seahawk für's probieren!


    Inzwischen habe ich gelesen, dass auch ffmpeg die mmal-Decoder unterstützen soll.

    Da Xine auch ffmpeg als Decoder verwenden kann, könnte es auch über den Umweg gehen.


    PS.: Oder einfach LibreELEC auf dem RPi nutzen und mit dem VDR per vdr-plugin-vnsiserver verbinden ...

    Über Kodi hab ich aber doch kein OSD vom VDR?

    Gruss
    SHF


  • Über Kodi hab ich aber doch kein OSD vom VDR?

    Ja, aber Du bedienst die VDR Grundfunktionen aus LibreELEC (Kodi) heraus. Also Timer setzen, ändern, löschen, Aufnahmen gucken, löschen ... was nicht geht ist, Aufnahmen schneiden.


    Der "Quell-VDR" muss mit vdr-plugin-vnsiserver laufen und in LibreELEC (Kodi) als VDR Backend definiert sein. EPG wird vom VDR Backend übernommen ...


    Und, ein wenig versteckt hat man Zugriff auf das OSD des definierten VDR, Clientspezifische Einstellungen, sowas wie RemoteOSD, auch ohne Videoausgabe.


    Regards

    fnu

    HowTo: APT pinning

    Einmal editiert, zuletzt von fnu ()

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!