mplayer.sh für nicht-dvb VO's erweitern ?

  • Hallo zusammen!


    Ich würde gerne das gelungene mlayer.sh Script erweitern, um es auch mit VO's, wie "sdl", "xv" oder so verwenden zu können.


    Sinn der Sache soll sein, dieses Script auch verwenden zu können, falls man über den TV-Out einer Graka auf den TV ausgibt. Dann nämlich brauchts ja keine Wandlung in mpeg bzw. andere VO's als "mpegpes" oder "dxr3" ...


    Dazu habe ich ein paar Fragen, die mir vielleicht jemand hier beantworten kann !?


    1.)
    Der lavc Aufruf dient ja v.a. der mpeg konvertierung .. die weiteren optionen (expand, scale) können ja auch mittels "-vf" genutzt werden, richtig?


    2.)
    Würde ich also z.B. "xv" als VO nehmen wollen, müßte ich statt

    Code
    -vop lavc=5000:30,expand=640:480:-1:-1:1,scale=640:432


    sowas hier nehmen:

    Code
    -vf expand=720:576:-1:-1:1,scale=720:426


    Spielt der fps Wert "30" dann bei nicht-mpeg ausgabe keine rolle?
    und reicht diese Änderung letztlich aus?


    3.)
    Ich würde dann noch gerne eine zusätzliche Variable in der mplayer.sh.conf einführen (z.B. Mpeg-Device mit true/false), um einfach feststellen zu können, ob wir lavc nehmen oder nicht ... also um nicht einzeln auf die verschiedenen VO's testen zu müssen, sondern:


    im Falle "mpegpes" und "dxr3"
    => Mpeg-Device=true
    in jedem anderen Falle
    => Mpeg-Device=false


    Nun meine Frage :)
    Die mplayer.sh prüft am Ende verschiedene Bedingungen und generiert die Befehlszeile:


    Diese hier kann ja so stehen bleiben, da nix skaliert oder gewandelt wird und demnach für Mpeg_Device true _und_ false funktioniert

    Code
    if test $MPEG_DIRECT == "true" -a \( $VIDEO_FORMAT == "0x10000001" -o $VIDEO_FORMAT == "0x10000002" \) -a \( \
                 \( $PAL  -a $NEW_FPS == "25" -a \( \( $ORIG_X == "352" -a $ORIG_Y == "288" \) -o \( $ORIG_Y == "576" -a \
                 \( $ORIG_X == "352" -o $ORIG_X == "480" -o $ORIG_X == "528" -o $ORIG_X == "544" -o $ORIG_X == "688" -o $ORIG_X == "704" -o $OR
    IG_X == "720" \) \) \) \) -o \
                 \( $NTSC -a $NEW_FPS == "30" -a \( \( $ORIG_X == "352" -a $ORIG_Y == "240" \) -o \( $ORIG_Y == "480" -a \
                 \( $ORIG_X == "352" -o $ORIG_X == "480" -o $ORIG_X == "512" -o $ORIG_X == "640" -o $ORIG_X == "704" -o $ORIG_X == "720" \) \)
    \) \) \
           \) ; then
          CMDLINE="$MPLAYER -vo $VO $AOUT $FDSTR $CACHESTR $REMOTE $USERDEF"


    Dies ist mit Konvertierung

    Code
    else
          CMDLINE="$MPLAYER -vo $VO $AOUT -vop $VOP:$NEW_FPS,expand=$NEW_X:$REAL_Y:-1:-1:1,scale=$NEW_X:${NEW_Y}${DETC} $SPEED $FDSTR $CACHEST
    R $REMOTE $SUBTITLES $USERDEF $FORCEIDX"


    und dies ohne ...

    Code
    CMDLINE="$MPLAYER -vo $VO $AOUT -vop expand=$NEW_X:$REAL_Y:-1:-1:1,scale=$NEW_X:${NEW_Y}${DETC} $SPEED $FDSTR $CACHESTR $REMOTE $SUBT
    ITLES $USERDEF $FORCEIDX"
        fi


    Wie entscheide ich jetzt in dem Script anhand von $MpegDevice=true/false, welche der beiden letzten Aufrufe genommen wird?
    Ein weiteres

    Code
    if test $MPEG_DEVICE == "true"; then
    mit Konvertierung
    else
    ohne Konvertierung
    fi


    ???
    Wäre so auch die Syntax i.O. ?


    4.)
    Gibts bei Ausgabe über nicht-mpeg Devices noch Optimierungen, welche vorgenommen werden könnten/sollten ?
    Bei Ausgabe auf einem Monitor statt TV wären das wohl deinterlacer, oder?
    Macht das Script bei Ausgabe auf dem Monitor statt auf nem TV überhaupt Sinn?


    Soweit erstmal ...


    Thx und LG
    Roman

    Wohnzimmer (Client 1): C't Vdr (Sarge), 2.6.15-sl, 1.4.0-2, TT-1.5 FF, Hermes 651, 40 GB, 2Ghz Celeron, 512MB, PSOne TFT
    Server: C't VDR (Sid), 2.6.15-1-k7, 1.4.1-1, TT-1.6 FF, XP-2000+, 500GB, 512MB
    Schlafzimmer (Client 2): MediaMVP
    MediaMVP, Bose S 100, 400er Oldischlepptopp für den Garten

  • Keiner auch nur _eine_ Antwort? ?(


    LG
    Roman

    Wohnzimmer (Client 1): C't Vdr (Sarge), 2.6.15-sl, 1.4.0-2, TT-1.5 FF, Hermes 651, 40 GB, 2Ghz Celeron, 512MB, PSOne TFT
    Server: C't VDR (Sid), 2.6.15-1-k7, 1.4.1-1, TT-1.6 FF, XP-2000+, 500GB, 512MB
    Schlafzimmer (Client 2): MediaMVP
    MediaMVP, Bose S 100, 400er Oldischlepptopp für den Garten

  • hi,.


    probier es einfach mal OHNE irgendwelche parameter (ausser den für vo und ao).
    die fps-sache ist dann egal, weil du über X oder sdl auch die 23,9fps oder andere ausgeben kannst. auch der zoom ist unnötig, einfach 'f' drücke und du bist im vollbild (oder -zoom).


    im allgemeinen funzt da alles sofort; ich sehe absolut keinen sinn für das script in einer nicht dvb-umgebung.

  • Danke schonmal für die Antwort!


    Sinn der Sache soll sein, das Script für MMSv2 benutzen zu können.
    Hier ergeben sich Ausgabemöglichkeiten über Dxr3, DVB, SDL, FB bzw XV ... mir ist dabei an einer Standardlösung gelegen.


    Kurz, ich würde gerne die Vorzüge des mplayer.sh-Scriptes für mpeg-devices mit dem Komfort verbinden, nicht 2 getrennte Lösungen konfigurieren zu müssen ... 1 Script für alle Fälle sozusagen :)


    LG
    Roman

    Wohnzimmer (Client 1): C't Vdr (Sarge), 2.6.15-sl, 1.4.0-2, TT-1.5 FF, Hermes 651, 40 GB, 2Ghz Celeron, 512MB, PSOne TFT
    Server: C't VDR (Sid), 2.6.15-1-k7, 1.4.1-1, TT-1.6 FF, XP-2000+, 500GB, 512MB
    Schlafzimmer (Client 2): MediaMVP
    MediaMVP, Bose S 100, 400er Oldischlepptopp für den Garten

  • dann solltest du überlegen ein anders script zu schreiben, das dann

    Code
    mplayer.dvb.sh
    mplayer.xv.sh
    mplayer.gl.sh

    aufruft.
    ich finde das mplayer.sh script klasse, es macht genau das, was es soll; aber darin rumbasteln mochte ich noch nie.
    von daher hallte ich so einen 'switche' doch am sinnvollsten.


    ansonsten solltest du einfach unterschiedliche codepfade in das vorhandene mplayer.sh script einbauen (wodurch es dann noch komplizierter wird).

Jetzt mitmachen!

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