Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
mplayer-plugin mit DVB-FF spielt manche Dateien nicht ab
#1
Hallo,

offenbar seit dem Upgrade auf die 2.5 weigert sich der mplayer manche meiner Videodateien abzuspielen.
Nach einigem Herumprobieren stelle ich fest, dass es sich wie's scheint um solche Videos handelt, bei denen die interne Logik des mplayer-Skripts die Auflösung der Ausgabe auf "halbe Grösse" setzt. Beispielsweise bekomme ich bei einer Videodatei wenn ich mir die mplayer Commandline ins syslog schreiben lasse folgendes:
Code:
Dec 15 21:07:21 fernseh2 logger: *** INFO: Source Video has Resolution of 320 x 240 ...
Dec 15 21:07:21 fernseh2 logger: *** INFO: For Sqare Pixels we would scale to 512 x 384 ...
Dec 15 21:07:21 fernseh2 logger: /usr/bin/mplayer -vo mpegpes -ao mpegpes -vf scale=352:384,expand=352:288:-1:-1:1,lavc=5000:25  -framedrop  -cache-min 10 -slave -nolirc
Offen gestanden ist mir nicht klar, warum hier nicht gleich 704x576 gewählt wird statt 352x288, aber es wird wohl einen Grund haben und hat bisher ja auch immer funktioniert.
Kann es sein, dass mit dem Upgrade auf den vdr-2.2 so eine "zu kleine" Skalierung vom vdr/dvbsddevice-Plugin/Treiber(n) nicht mehr akzeptiert wird? Sonst habe ich jedenfalls keine Erklärung dafür, warum diese Dateien auf einmal nicht mehr abspielbar sind.
Um sicher zu gehen, dass hier nicht eine "verbastelte" Konfiguration meiner 2.5er Installation Schuld ist, habe ich den Versuch mit einer betroffenen Datei auf meiner was den mplayer betrifft auf jeden Fall "sauberen" Installation der 3.0er wiederholt, mit dem gleichen Ergebnis.
Dateien, die vom mplayer Skript auf "volle Höhe" skaliert werden, werden auf beiden Systemen einwandfrei abgespielt.

Edit (was ich vergaß): im syslog finden sich keine Fehlermeldungen, der mplayer Thread endet einfach sofort wieder. Debug auf "true" zu setzen hat ausser einer Menge harmlos aussehender Meldungen nichts gebracht, was nach Erkenntnisgewinn aussieht. Ich vermute auch deshalb, dass nicht der mplayer an sich, sondern irgendwie der vdr ein Problem hat.

Gruss

Michael
easyvdr-3.0; MB: Asus M2N-X Plus; DVB: TT-3200, Hauppauge NovaS2; Graka: Geforce GT1030
Zitieren
#2
Hallo,

habe gerade noch mal etwas gespielt, es scheint tatsächlich an der zu niedrigen Y-Auflösung zu liegen. Ich habe mal spasseshalber im mplayer Skript die Funktion "choosebesty" verändert, und zwar vom Original:
Code:
function choosebesty () {
  if test \( $ORIG_Y -eq $HALF_Y -a $ORIG_X -eq 352 \) -o \( $ORIG_Y -eq $FULL_Y -a ! $SLOW_CPU \); then
    REAL_Y=$ORIG_Y
    NEW_Y=$ORIG_Y
    NEW_X=$ORIG_X
    debugmsg "setting NEW = ORIG"
  else
    if test $ORIG_X -gt 352 -o $ORIG_Y -gt $HALF_Y; then
      REAL_Y=$FULL_Y
      debugmsg "setting REAL_Y = FULL_Y"
    else
      REAL_Y=$HALF_Y
      debugmsg "setting REAL_Y = HALF_Y"
    fi
  fi
  return;
}

die Zeile
Code:
      REAL_Y=$HALF_Y
in
Code:
      REAL_Y=$FULL_Y
, daraufhin werden die fraglichen Dateien tatsächlich abgespielt (wenn auch natürlich im falschen Seitenverhältnis).

EDIT:
nach diesem Teilerfolg noch mal weitergespielt und auch die Funktion "calcnewxy" testweise analog modifiziert, also im Original
Code:
function calcnewxy () {
  local -i MAX_X TEMP_ASPECT
#  TEMP_ASPECT=`echo $ORIG_ASPECT|sed 's/\.//'`
#  if test $TEMP_ASPECT -eq 0; then TEMP_ASPECT=$((4000/3)); fi

  if test $ORIG_X -gt 352 -o $ORIG_Y -gt $HALF_Y; then
    MAX_X=$(($FULL_Y*$TV_ASPECT))
  else
    MAX_X=$(($HALF_Y*$TV_ASPECT))
  fi
  debugvar MAX_X $MAX_X

  NEW_Y=$(($MAX_X*$ORIG_Y/$ORIG_X)); debugvar NEW_Y $NEW_Y
  echolog "*** INFO: For Sqare Pixels we would scale to $MAX_X x $NEW_Y ..."
  test $NEW_Y -gt $FULL_Y && NEW_Y=$FULL_Y     # force full screen/ ignore aspect ratio!

  return;
}
die Zeile
Code:
    MAX_X=$(($HALF_Y*$TV_ASPECT))
geändert nach
Code:
    MAX_X=$(($FULL_Y*$TV_ASPECT))
woraufhin die Videos abgespielt werden und auch korrekt aussehen, und das obwohl bei einem der Videos folgendes ins syslog geschrieben wird:
Code:
Dec 15 22:06:30 fernseh logger: *** INFO: Source Video has Resolution of 320 x 240 ...
Dec 15 22:06:30 fernseh logger: *** INFO: For Sqare Pixels we would scale to 853 x 639 ...
Dec 15 22:06:30 fernseh logger: *** mplayer command line: /usr/bin/mplayer -vo mpegpes -ao mpegpes -vf scale=352:480,expand=352:480:-1:-1:1,lavc=5000:30  -framedrop  -cache-min 10 -slave -nolirc  -quiet -osdlevel 0 -nolirc
was doch eigentlich irgendwie falsch aussieht. Aber dass die doch relativ komplizierte Berechnung der Skalierung nicht mit so einem billigen Hack sauber zu "verbessern" ist wundert mich natürlich auch nicht.


Gruss

Michael
easyvdr-3.0; MB: Asus M2N-X Plus; DVB: TT-3200, Hauppauge NovaS2; Graka: Geforce GT1030
Zitieren
#3
Hi,

(15.12.2015, 22:27)klappnase link schrieb: offenbar seit dem Upgrade auf die 2.5 weigert sich der mplayer manche meiner Videodateien abzuspielen.
an Plugin mplayer wurde seid easyVDR-0.9.x nichts mehr geändert. ..was bei easyVDR-2.0 hinzukam war eine Abfrage
ob nee FF-SD installiert ist um die benötigten Flies umzubenennen.
Hier läuft Plugin mplayer ob das nun FF-SD oder unter X ist, ohne probleme. Alle Webinhalte(vch-helper) und auch Videoformate
mp4 avi mkv werden abgespielt. ..die Grösse passt auch.

P.S
Häng doch die 2 Dateien mal an!

Gruss
Wolfgang

Zitieren
#4
Hallo,

vielen Dank für die schnelle Antwort! :-)

Zitat:an Plugin mplayer wurde seid easyVDR-0.9.x nichts mehr geändert. ..was bei easyVDR-2.0 hinzukam war eine Abfrage
ob nee FF-SD installiert ist um die benötigten Flies umzubenennen.

Ja, das mplayer Skript selbst ist ja auch noch identisch. ich vermute deshalb auch, dass das Problem im vdr bzw. im dvbsddevice Plugin liegt; es scheint als wird die commandline, die vom mplayer Plugin produziert wird, mitunter nicht mmehr akzeptiert.
Ich habe zwischenzeitlich auch noch etwas gespielt und muss meine obigen Thesen etwas verändern:
Wenn ich in der vdrmplayer.config.sh SLOW_CPU="true" setze, werden die Files abgespielt, offenbar weil das mplayer Skript dann ausgehend von der niedrigeren Y Auflösung andere Werte errechnet.
Wenn ich SLOW_CPU="false" lasse, reicht auch oben gezeigte Änderung der "calcnewxy" Funktion, damit die Videos abgespielt werden und sogar korrekt aussehen.
Bei einem Video z.B. bekomme ich (bei SLOW_CPU="false")  mit dem Originalskript ins syslog:
Code:
Dec 15 23:08:14 fernseh logger: *** INFO: Source Video has Resolution of 320 x 240 ...
Dec 15 23:08:14 fernseh logger: *** INFO: For Sqare Pixels we would scale to 1024 x 768 ...
Dec 15 23:08:14 fernseh logger: *** mplayer command line: /usr/bin/mplayer -vo mpegpes -ao mpegpes -vf scale=352:576,expand=352:288:-1:-1:1,lavc=5000:25  -framedrop  -cache-min 10 -slave -nolirc
Das wird nicht abgespielt.
Mit der geänderten calcnewxy" :
Code:
Dec 15 23:08:35 fernseh logger: *** INFO: Source Video has Resolution of 320 x 240 ...
Dec 15 23:08:35 fernseh logger: *** INFO: For Sqare Pixels we would scale to 512 x 384 ...
Dec 15 23:08:35 fernseh logger: *** mplayer command line: /usr/bin/mplayer -vo mpegpes -ao mpegpes -vf scale=352:384,expand=352:288:-1:-1:1,lavc=5000:25  -framedrop  -cache-min 10 -slave -nolirc
Das wird abgespielt und sieht gut aus.

Leider ist für meine bescheidenen Fähigkeiten die Berechnung der Auflösung im mplayer Skript viel zu kompliziert um zu verstehen was da genau warum geschieht, mehr als einen trashigen Workaround für ein paar bestimmte Files bekomme ich da nicht hin. :-(

Zitat:Häng doch die 2 Dateien mal an!

Sorry, steh grad auf dem Schlauch, welche zwei Dateien meinst du? Etwa Videos? Da hab ich viel mehr als zwei die Standardmässig nicht mehr laufen (wilde Sammlung von meist alten Musikvideos). Ich hab mal eins hochgeladen nach www.franken-ist-cool.de/klappnase/test.zip (ich hoffe, die Künstlerin nimmt's mir nicht übel! :-)

Gruss

Michael
easyvdr-3.0; MB: Asus M2N-X Plus; DVB: TT-3200, Hauppauge NovaS2; Graka: Geforce GT1030
Zitieren
#5
Achja, hab ich noch vergessen:

Zitat:Hier läuft Plugin mplayer ob das nun FF-SD oder unter X ist, ohne probleme. Alle Webinhalte(vch-helper) und auch Videoformate
mp4 avi mkv werden abgespielt. ..die Grösse passt auch.

Video- oder Containerformat scheint mir keine Rolle zu spielen, es hängt wie's scheint nur an der Auflösung. Probleme machen nach meiner Beobachtung nur (manche oder alle?) Dateien mit X-AUflösung < 352 px, die werden vom Plugin dann anders skaliert.
Aber irgend etwas geschieht ja noch tiefer in den Eingeweiden des VDR, wenn z.B. die Datei wie im obigen Beispiel auf 352x288 skaliert wird, bekomme ich auf dem Schirm ja kein winziges Video mit dicken schwarzen Balken aussenrum, sondern ein Vollbild. Irgeneins der Binaries mplayerplugin/dvbsddevice/vdr scheint hier noch eine "automatische Vergrösserung" vorzunehmen, und diese klappt jetzt mitunter offenbar nicht mehr, je nach angeforderter Skalierung. Wo in der Kette es da genau hakt habe ich natürlich überhaupt keine Idee...
easyvdr-3.0; MB: Asus M2N-X Plus; DVB: TT-3200, Hauppauge NovaS2; Graka: Geforce GT1030
Zitieren
#6
(16.12.2015, 00:23)klappnase link schrieb: Sorry, steh grad auf dem Schlauch, welche zwei Dateien meinst du? Etwa Videos?
meinte die 2 Dateien die Plugin mplayer benötigt
/etc/vdr/plugins/vdrmplayer.sh.conf
/usr/share/vdr-plugin-mplayer/mplayer

Hab mir das Video mal gezogen, testen werde ich erst Morgen.

Gruss
Wolfgang

Zitieren
#7
Zitat:meinte die 2 Dateien die Plugin mplayer benötigt
Ah, ok, ich hänge die beiden mal an so wie sie jetzt gerade aussehen, in der mplayer sind jetzt glaube ich die Edits drin wie oben beschrieben, so funktionieren meine Testvideos.
Wie gesagt, mit den Standard-Dateien aus der 3.0 funktionierte es ebenso nicht richtig, ich bin mir auch ziemlich sicher, dass ich an den beiden Dateien in der 2.5 nichts verändert hatte, was diese Fehlfunktion erklären könnte.
Zitat:Hab mir das Video mal gezogen, testen werde ich erst Morgen.
Danke, dann kann ich's ja wieder entfernen, bevor mich die Urheberrechtspolizei nach Guantanamo verschleppt ;-)
Ich wünsch dir erstmal noch eine gute Nacht!

Gruss

Michael
easyvdr-3.0; MB: Asus M2N-X Plus; DVB: TT-3200, Hauppauge NovaS2; Graka: Geforce GT1030
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: