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
sowas hier nehmen:
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
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
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 ...
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
???
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