Über Kommandozeile Fenster skalieren

  • Aus einer batch-Datei wird der VLC gestartet.
    Es wird ein externes Fenster zur Ausgabe definiert.
    Und es wird eine X- Y-Startposition für des Fenster definiert.
    Hier wird die Ausgabedatei ( z.B. ein Video ) angezeigt.


    Das Video ist allerdings zu großformatig.
    Es soll skaliert werden. So das es eine definierte Breite von 500 pix bekommt.
    Die Proportionen des ausgegebenen Videos sollen erhalten bleiben.


    Hier ist das mit --scale=0.5 versucht, ohne Erfolg.


    start C:\"Program Files"\VideoLAN\VLC\vlc.exe --no-video-deco --scale=0.5 --no-
    embedded-video --video-x=300 --video-y=100 --qt-start-minimized --loop
    http://http://www.youtube.com/watch?v=vxBRxwxRwCQ

  • Hallo vlchp,


    meine Empfehlung:

    • Wenn Du mit Rincewind arbeitest, dann gehe zurück zu 2.0.8. Rincewind hat im Zusammenhang mit der Skalierung einige Bugs. Du kannst 2.0.8 (oder jede andere Version) als nicht registrierte Version auch zusätzlich benutzen.


    • Mache Dir von der Konfigurationsdatei eine Kopie, zum Beispiel als vlcrc_bat.


    • Erstelle Dir eine Batchdatei nach folgendem Muster, starte den VLC über diese Batchdatei und richte Dir die Einstellungen, also zum Beispiel die Videobreite, Position usw. so ein, wie Du es möchtest. Danach die Änderungen speichern.
    Code
    START D:\Tools\VLC\vlc-2.0.8\vlc.exe --qt-start-minimized --config="C:\Users\Name\AppData\Roaming\vlc\vlcrc_bat" http://http://www.youtube.com/watch?v=vxBRxwxRwCQ


    Da über diese Batchdatei der VLC mit einer eigenen Konfigurationsdatei gestartet wird, müsste beim nächsten Aufruf dieser Batchdatei die Wiedergabe nach Deinen Vorstellungen erfolgen. Selbstverständlich musst Du den Ort für die Konfigurationsdatei an Deine Verhältnisse anpassen, also den Usernamen richtig eintragen.


    Wie Du aus dem Aufruf des VLC ersehen kannst, verwende ich hier nicht die installierte Version des VLC, sondern eine zusätzliche Version (2.0.8), denn mit der installierten Version (Rincewind) funktioniert das leider nicht.


    Dieses Vorgehen empfiehlt sich in Deinem Fall, da der VLC nach meinen Feststellungen entgegen anders lautenden Aussagen nicht alle Parameter der Kommandozeile auswertet. Zum Beispiel werden die Parameter für die Positionierung des Videos (video-x und video-y) ausgewertet, die Parameter für die Größe des Videos (width und height) dagegen nicht. Leider habe ich bisher auch keine Dokumentation dazu gefunden, welche Parameter ausgewertet werden und welche nicht, so dass man auf Probieren angewiesen ist.


    Der (Um-)Weg über eine eigene Konfigurationsdatei scheint mir daher eine praktibale Lösung zu sein.


    In diesem Zusammenhang könnten auch diese beiden Themen für Dich von Interesse sein:


    Wie kann man für den VLC unterschiedliche Konfigurationsdateien verwenden?


    Wie kann man unterschiedliche VLC-Versionen verwenden bzw. installieren?


    Zu Deiner Aussage:


    Quote

    Das Video ist allerdings zu großformatig. Es soll skaliert werden. So das es eine definierte Breite von 500 pix bekommt. Die Proportionen des ausgegebenen Videos sollen erhalten bleiben.


    ist noch etwas zu sagen. Mit dem in Deiner Kommandozeile enthaltenen Parameter für eine Skalierung (0.5) würdest Du Dein Ziel, eine definierte Breite von 500 Pixel sicher nicht erreichen. Würde dieser Parameter funktionieren (was nicht der Fall ist), hätte Dein Video (Auflösung 640x385) eine Ausgabegröße von 320x192.


    Um für die Ausgabe bei Beibehaltung der Proportion eine Breite von 500 Pixel zu bekommen, musst Du diese Breite in den Einstellungen unter Erweitert (Alle) - Video - Videobreite explizit vorgeben. Für die Videohöhe lässt Du den Defaultwert -1.


    MfG, kodela

  • OK. Gut.
    Da man das kennt, wer der Entwickler kann sich dessen denn annehmen?


    In den Allgemeine Einstellungen, Video, gibt es die Einstellung Videoskalierungsfilter und auch Video vergrößern. Was kann da der Unterschied sein?

  • Hallo vlchp,


    Du frägst, wie sich die beiden Einstellung Videoskalierungsfilter (Skalierung) und Video vergrößern (Zoom) unterscheiden.


    Wegen Deiner Frage habe ich mich noch einmal mit diesen beiden Optionen beschäftigt und festgestellt, dass sie sich unter Rincewind anders verhalten als unter Towflower.


    Bis Rincewind kam, habe ich mich mit der Zoom-Option nie beschäftigt, da die Skalierungs-Option genau das machte, was ich wollte, nämlich bei einem Skalierungsfaktor 0.5 wurde das Video in halber Größe wiedergegeben. Das funktioniert nun unter Rincewind nicht mehr. Will man den selben Effekt erreichen, muss man den Zoom-Faktor auf 0.5 einstellen.


    Dem Quick-Info nach wirkt sich die Skalierungsoption nur aus, wenn die Automatische Videosklierung deaktiviert ist.


    Die genauen Unterschiede und vor allem das Zusammenwirken beider Optionen mit und ohne automatischer Videoskalierung. habe ich noch nicht untersucht.


    Das alles ändert aber an Deiner Situation nicht viel, denn wenn Du das Video in einer ganz bestimmten Breite ausgeben willst, dann muss Du das über die Breiteneinstellung machen. Diese Option wird aber nach meinen Feststellungen weder von Twoflower noch von Rincewind bei der Parameterübergabe berücksichtigt.


    Wenn die Breite jedoch nicht pixelgenau sein muss, dann kannst Du unter Rincewind die Option scale durch zoom ersetzen. Diese wird ausgewertet.


    MfG, kodela

  • Also der Unterschied zwischen Zoomen und Skalieren ist recht einfach zu erklären...


    beim klassischen Zoomen wird einfach die Anzahl der Pixel verdoppelt/vervierfacht/erhöht. Hat aber den unangenehmen Nebeneffekt, das das Bild Aufpixelt, also diese Treppenstrukturen entstehen.
    Beim Skalieren rechnet der Rechner oder die GPU Zwischenschritte wischen den einzelnen Pixeln aus, so das das Bild nicht aufgepixel wirkt. Aber dafür wird es ein wenig schwammig/unscharf, wenn beim skalieren ein schlechter Algorhythmus genutzt wird oder der Rechner überfordert ist.


    Der Exilant

  • Hallo


    @ vlchp,


    Du müsstest unter Rincewind Deine Befehlszeile:


    Code
    start C:\"Program Files"\VideoLAN\VLC\vlc.exe --no-video-deco --scale=0.5 --no-embedded-video --video-x=300 --video-y=100 --qt-start-minimized --loop http://http://www.youtube.com/watch?v=vxBRxwxRwCQ


    in folgender Fassung:


    Code
    START C:\"Program Files"\VideoLAN\VLC\vlc.exe --no-video-deco --zoom=0.78 --no-embedded-video --video-x=300 --video-y=100 --qt-start-minimized --loop http://http://www.youtube.com/watch?v=vxBRxwxRwCQ


    verwenden können.



    @ Exilant,


    ja, ja, da hast Du vielleicht Recht. Aber die Definition für Zoomen und Skalieren ist eine Sache, eine ganz andere ist, was der VLC darunter jeweils versteht. Allein die Tatsache, dass sich die beiden Optionen in den verschiedenen VLC-Versionen unterschiedlich verhalten, zeigt doch eigentlich, dass sich zumindest eine der Versionen nicht korrekt nach den von Dir angeführten Definitionen verhält.


    Vielleicht findest Du aber heraus, was genau die eine und die andere Option zuzüglich der Option für die automatische Videosklierung genau bewirkt und welche in ihrem Verhalten der angeführten Definitionen am nächsten kommt, oder vielleicht sogar entspricht. Ich vermute, es ist die Rincewind-Version.


    Übrigens, das was Du "klassisches Zoomen" nennst, macht der VLC mit Sicherheit überhaupt nicht. Das sieht man am Ergebnis, aber auch an dem Parameter-Wert, ein Dezimalwert mit zwei Nachkommastellen zwischen 1000,00 (und größer) und -1000,00 (und noch kleiner).


    MfG, kodeal

  • Sehr gut:
    So geht es jetzt:


    start C:\"Program Files"\VideoLAN\VLC\vlc.exe --no-video-deco --zoom=0.5 --no-embedded-video --no-video-title-show --video-x=4315 --video-y=170 --width=630 --qt-start-minimized --loop http://http://www.youtube.com/watch?v=vxBRxwxRwCQ


    Ob wohl jemand die im batch fehlende Auswertung der Skalierung sich anschauen und komplettieren wird?

  • Da gibt es ja ein beschriebenes Kommando Scale. Unter Window properties:
    --scale=<float> Video scaling factor.
    Aber das wird offensichtlich in einer batch-Datei in der Realität nicht unterstützt.

  • Hallo vlchp,


    ja, so ist es. Und da der VLC sehr dynamisch entwickelt wird, ergibt sich vermutlich oft die Situation, dass etwas umgestellt wird, das die Usergemeinde dann eher durch Zufall zur Kenntnis bekommt. So habe ich durch Probieren festgestellt (und Dir auch mitgeteilt), dass die Parameter für die Positionierung des Videos
    (video-x und video-y) ausgewertet werden, die Parameter für die Größe des
    Videos (width und height) dagegen nicht.


    Nun ist es nicht so, dass der VLC meckern würde, wenn man ihm etwas "unterjubelt", was er überhaupt nicht auswertet. Man stellt nur im Ergebnis fest, dass ein übergebener Parameter keine Wirkung hat. Du kannst zum Beispiel in Deinen Aufrufstring den Parameter "--scale=Unsinn" einbauen und Du wirst sehen, dass keine Fehlermeldung kommt.


    Irgend wann ist sicher "scale" abgefragt worden. Dann hat man sich entschlossen, die Skalierung über den Parameter "zoom" abzufragen, aber "scale" wird trotzdem weiter verwendet und zwar in den Fällen, wenn die automatische Skalierung deaktiviert ist. "autoscale" wird aber von der Kommandozeile nicht ausgewertet. Will man diesen Effekt, dann muss man wohl den von mir aufgezeigten Weg über eine eigene Konfigurationsdatei gehen.


    MfG, kodela