Ideensuche zum Thema mplayer und Playlisten

  • Hallo,


    seitdem das mplayer-Plugin bzw. das mplayer-Skript mit Playlisten umgehen kann, bin ich ja eigentlich schon ganz zufrieden.


    Ein, zwei Sachen stören mich aber noch und vielleicht hat der Eine oder Andere eine Idee wie man es angehen kann.


    Wenn ich den Ablauf richtig verstanden habe, wird durch das mplayer-Skript zuerst die Datei analysiert und dann eine
    entsprechende Kommandozeile generiert. Aber nur wenn es sich um eine einzelne Videodatei handelt.


    Sobald es eine Playliste ist, werden die einzelnen enthaltenen Dateien nicht analysiert, sondern der mplayer direkt mit dem
    Parameter -playlist plus der Playliste selbst aufgerufen. Das hat zum einen zur Folge, daß die mplayer-Parameter nicht
    so ausgefeilt sind wie bei einer Einzeldatei und zum anderen, daß die zu den
    Videodateien gehörenden .conf-Dateien nicht ausgewertet werden.


    Ich hatte mir jetzt gedacht, ich könnte ein "Wrapper"-Skript schreiben, welches an die Stelle des mplayer-Skripts tritt
    und eine Unterscheidung in Einzeldatei und Playliste vornimmt. Geht es um eine einzelne Videodatei, wird das
    originale mplayer-Skript plus Dateipfad und AID aufgerufen.
    Wenn es eine PLayliste ist, geht's in eine while-Schleife, in der die Playliste zeilenweise ausgelesen und für
    jeden einzelnen Eintrag das originale mplayer-Skript aufgerufen wird. Einen ersten quick'n'dirty-Versuch habe ich
    schon mal gestartet. Allerdings sind meine Bash-Fähigkeiten beschränkt.



    Diese Beispiel funktioniert nur in der Konsole. Sobald es aus dem VDR heraus läuft, bricht die Wiedergabe nach dem ersten Video in der Playliste ab,
    da der VDR wohl das DVB-Device (bei mir eine FF) wieder an sich zieht.
    Dieses Verhalten ist für die Wiedergabe einer Einzeldatei ja auch sinnvoll.


    Zusammenfassend ist zu sagen, daß ich nach Ideen suche, wie man dem mplayer-plugin beibiegt,
    daß es für alle Dateien einer Playliste das mplayer-Skript inklusive Quellmaterial-Analyse durchläuft
    und die im Ordner vorhandenen filmXYZ.avi.conf-Dateien berücksichtigt.


    Grüße, Kleo

    VDR-Server: Core i3-6100, 8GB Ram, Gigabyte Board, Adata SSD, Ubuntu 16.04, Kodi 16.1 + PVR über VNSI

    Einmal editiert, zuletzt von Kleo ()

  • Zitat

    Original von Kleo

    Code
    *.pls)
    	while read PLSENTRY
    	    do
    		exec /usr/share/vdr-plugin-mplayer/mplayer_orig "$PLSENTRY" $AID
    	    done <"$FILE";;


    Das kann so nicht funktionieren, da "exec" die aktuelle Shell ersetzt, d.h. der Befehl lädt das angegebene Kommando an die Stelle des aktuellen anstatt eine eigene Shell dafür zu öffnen.
    Praktisch wird dadurch dein Skript nach dem exec beendet, die Schleife hat also keine Wirkung.


    Gruß
    Stefan

  • Danke für die Aufklärung.
    Über die Wirkunsgweise von exec wusste ich nicht Bescheid.


    Meinst Du der angedachte Weg über die while-Scheife wäre eine Erfolg versprechende Variante, oder sollte ich mir etwas anderes überlegen?


    Auch ohne das 'exec' bricht die Wiedergabe einer Playliste nach dem ersten Video ab. Ich denke nach wie vor, dass sich der VDR nach dem Beenden des ersten mplayer-Threads die FF-Karte wieder krallt.


    Grüße, Kleo

    VDR-Server: Core i3-6100, 8GB Ram, Gigabyte Board, Adata SSD, Ubuntu 16.04, Kodi 16.1 + PVR über VNSI

    Einmal editiert, zuletzt von Kleo ()

  • Zitat

    Original von Kleo
    Meinst Du der angedachte Weg über die while-Scheife wäre eine Erfolg versprechende Variante, oder sollte ich mir etwas anderes überlegen?


    Es scheint da doch eine Menge Hindernisse zu geben ...


    Zitat


    Auch ohne das 'exec' bricht die Wiedergabe einer Playliste nach dem ersten Video ab. Ich denke nach wie vor, dass sich der VDR nach dem Beenden des ersten mplayer-Threads die FF-Karte wieder krallt.


    VDR krallt sich das Device in genau einer Situation: wenn der Player sich beendet.
    Das ist wiederrum in genau zwei Situationen der Fall:
    1.) Der Process in dem die mplayer.sh gestartet wurde hat sich beendet
    2.) Der Benutzer beendet den Player aktiv, z.B. mit Back oder Blue.


    Wie hast du vor dem Mplayer zu signalisieren das er sich beenden soll um die nächste Datei zu starten? Blue/Back kann es ja nicht sein, weil das Plugin dann den Player beendet.


    Gruß
    Stefan

  • Moin Stefan,


    die von Dir genannten Tatsachen verkomplizieren das Vorhaben natürlich
    erheblich. Dem mplayer die Dateien einzeln mit einem mini-Skript zu überreichen, dürfte damit als Möglichkeit ausscheiden.


    Eine Variante die mir durch den Kopf gegangen ist, wäre eine Rekursion zu probieren. Sollte in der Shell doch möglich sein?
    Das heißt ich baue die mplayer(.sh) so um, daß sie bei einer übergebenen Playliste sich selbst mit dem ersten Eintrag der Playliste wieder aufruft.
    Das Ganze solange bis die Playliste durch ist. Auf diese Art und Weise würde der mplayer(.sh)-thread nicht für jeden Playlisteneintrag beendet und dann erneut ausgeführt.


    Sofern sich der VDR nicht in die Schleife "eingreift" und direkt nach Abspielen des ersten Playlisteneintrags die FF schnappt, könnte das funktionieren. Oder bin ich zu blauäugig?


    Grüße, Alex

    VDR-Server: Core i3-6100, 8GB Ram, Gigabyte Board, Adata SSD, Ubuntu 16.04, Kodi 16.1 + PVR über VNSI

  • Ich finde das hört sich alles kompliziert an. Und rückwärts kannst du dann in der Playliste auch nicht springen.


    In der Regel wird die Playliste ja aus gleichartigen Filmdateien bestehen, d.h. bezüglich Format usw.
    Wäre es da nicht besser, die mplayer.sh nur so zu verändern, das sie bei einer Playliste die Aufruf-Parameter anhand des ersten Playlisteneintrag ermittelt und dann die restliche Playlisten Steuerung wie gehabt den MPlayer machen lässt?


    Gruß
    Stefan

  • Nabend Stefan,


    danke dür deine Vorschläge. Die Idee eine Datei aus der Playliste exemplarisch zu analysieren, ist mir auch durch den Kopf gegangen.
    Wäre schon eine echte Verbesserung.
    Ich werde mal abwarten, wie weit ich komme.


    Grüße, Kleo

    VDR-Server: Core i3-6100, 8GB Ram, Gigabyte Board, Adata SSD, Ubuntu 16.04, Kodi 16.1 + PVR über VNSI

Jetzt mitmachen!

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