JVC Steuerung per Skript - inkl MPV Anbindung

  • Hallo zusammen,


    ich würde gerne ein Tool zur Verfügung stellen, mit dem sich JVC Beamer per Netzwerk steuern lassen.


    Zum einen ein Standalone-Python-Skript, mit dem man Befehle an JVC-Beamer schicken kann. Dieses lässt sich quasi von überall aus aufrufen. Einzige Voraussetzung ist eine installierte Python3-Umgebung.

    Zum anderen gibt es ein LUA-Skript, was in MPV eingebunden werden kann und anhand von Eigenschaften eines Films entscheiden kann, welche Befehle verschickt werden müssen.

    Damit lässt sich eine automatische Steuerung erstellen, die beim Start eines Films den Beamer entsprechend einstellt. Sowie am Ende wieder alles auf "normal" zurücksetzt.


    In der angehängten ZIP-Datei sind drei Dateien enthalten.

    - eine read.me mit einer genauen Beschreibung was wie wo gemacht werden muss

    - eine LUA-Datei, die in MPV eingebunden werden kann.

    - eine Python-Datei, die die Kommunikation mit dem Beamer übernimmt.



    Die erkannten Eigenschaften eines Films sind momentan das Seitenverhältnis und SDR/HDR. Ausgelesen wird das aus dem Dateinamen (s. readme)

    Besser wäre SDR/HDR vermutlich direkt aus MPV auszulesen. Aber entweder mache ich dabei etwas falsch. Oder MPV hat an der Stelle einen Bug und gibt keine Werte für Gamma bzw Primaries zurück. Vielleicht klappt das in einer zukünftigen Version.

    Ansonsten lassen sich natürlich prinzipiell beliebige andere Eigenschaften nutzen, um den Beamer entsprechend einzustellen.


    Das Python Skript lässt sich auch ausserhalb von MPV nutzen. So ist es bspw machbar, darüber den Beamer ein- und auzuschalten. Auch der momentane Status (Standby, Lampe an, Cooling) lässt sich auslesen, was bspw. für eine Lüftersteuerung ganz praktisch ist.


    Ich hoffe zumindest alles möglichst gut erklärt zu haben. Sowohl in der readme, als auch in den Skripten selbst.

    Falls es zu Problemen/Fragen dazu kommt... nur her damit.... ich muss dann mal weg.... :zwinker2:


    Ein paar (erfolgreiche) Testläufe hat das ganze zumindest schon hinter sich, womit ich hoffe, dass es bei euch auch klappt.


    ........

    2022-01-15: Auf Version 1.1 aktualisiert.

    Dateien

    "A computer lets you make more mistakes faster than any other invention in human history, with the possible exceptions of handguns and tequila." - Mitch Ratcliffe

    2 Mal editiert, zuletzt von icebaer ()

  • In der Theorie, ja.

    Praktisch habe ich da noch nie eine Wert zurück bekommen. Weder für "video-params/gamma", noch für "video-params/primaries"


    In den Profilen der Config-Dateien geht es dagegen.

    "A computer lets you make more mistakes faster than any other invention in human history, with the possible exceptions of handguns and tequila." - Mitch Ratcliffe

  • In der Theorie, ja.

    Praktisch habe ich da noch nie eine Wert zurück bekommen. Weder für "video-params/gamma", noch für "video-params/primaries"

    Es kommt darauf an, wann man sie abruft. Im Event "file-loaded" bekomme ich nur die primaries, gamma ist dagegen nil. Im Event "pause" geht beides. Die sind beim Laden des Videos anscheinend noch nicht alle gesetzt.

  • Bei Pause hatte sie ich sie noch gar nicht abgefragt. Wenn sie dann da sind, sieht es wirklich so aus, als wäre file-loaded zu früh.

    Vielleicht würde noch playback-restart gehen, was aber auch bei einem seek passiert.

    Muss ich mir nochmal anschauen....


    Der Vollständigkeit halber sollte ich auch noch erwähnen, dass das Python-Skript auf diesem Projekt basiert und noch weiter modifiziert und etwas entschlackt wurde. Auch Atom hat einen Teil dazu beigetragen.

    Ist also nicht alles auf meinem Mist gewachsen.

    "A computer lets you make more mistakes faster than any other invention in human history, with the possible exceptions of handguns and tequila." - Mitch Ratcliffe

  • Das Thema schwarze Balken ermitteln, um das reale Seitenverhältnis zu bekommen ist leider nicht so ganz einfach.

    Ich nutze dafür den TMM, der den kompletten Film vorab analyisiert und den passenden Wert in den Dateinamen schreibt. Das finde ich auch die zuverlässigste Möglichkeit.


    Mit dem autocrop Skript würde es zwar auch gehen. Man muss dann aber den richtigen Zeitpunkt zum ermitteln abwarten, was i.d.R erst nach dem Vorspann ist. Damit würde der Beamer auch erst im Film angesteuert werden können und nicht schon direkt zu Beginn.


    Ich schaue aber mal, ob man in dem JVC Skript eine Änderung des Seitenverhältnis mitbekommt. Dann könnte man im Prinzip jedes beliebige Cropping Skript nehmen und darauf reagieren.

    "A computer lets you make more mistakes faster than any other invention in human history, with the possible exceptions of handguns and tequila." - Mitch Ratcliffe

  • Da gebe ich dir recht. Die Infos sollten vor dem Film bekannt sein. Gerade für Lensmemory möchte man nicht warten oder mehrfach ändern.
    Wie lange dauert denn die Analysze mit TMM pro Film ca? Vlt kann man diese zum Zeitpunkt noch machen, falls nicht vorhanden?

  • Ich nutze ja für das Seitenverhältnis auch Metadaten am Film, die ich manuell pflege und somit 100%ig sicher bin. Es gibt allerdings ganz selten mal gewollte Formatwechsel, für die ich gerne in Echtzeit zumindest den Zoom anpassen würde. Die letzten beiden Staffel von "The Expanse" sind so ein Beispiel. Hat das mal jemand geschafft?


    Nachtrag: im schlimmsten Fall könnte man es ggf. auch mit einer Metadatendatei lösen, indem man die Zeitmarken und Seitenverhältnisse auflistet und dann per Script anwendet. Aber dafür muss man einmal manuell durch den Stream fräsen...

  • Wie lange dauert denn die Analysze mit TMM pro Film ca? Vlt kann man diese zum Zeitpunkt noch machen, falls nicht vorhanden?

    Zu lange auf alle Fälle. Ist auch abhängig davon, ob FullHD oder UHD oder wie hoch die eingestellte Genaugkeit ist. Je höher desto zuverlässiger die Erkennung... und desto langsamer.


    Multiformat Filme sind natürlich noch mal schwieriger. Will man da eine Punktgenaue Umschaltung und das nicht manuell pflegen, bleibt wohl nur ein Skript in der Art wie autocrop, was ständig analysiert und entsprechend anpasst.

    "A computer lets you make more mistakes faster than any other invention in human history, with the possible exceptions of handguns and tequila." - Mitch Ratcliffe

  • Wäre es denn möglich ein Skript über die Filme laufen zu lassen im Batch und dann eine Datei anlegen zu lassen, in welcher die Format(wechsel) mit Zeitmarken hinterlegt werden?

  • Klar kannst Du das machen.

    ohne es ausprobiert zu haben, per ffmpeg dürfte das eigentlich nicht so schwer zu realisieren sein...


    Wobei mir das Ziel nicht ganz klar ist?:think:


    Will man wirklich im Film Maskierung/Lensmemory/Whatever ändern?


    Das mir die Maskierung beim ersten Formatwechsel wieder auf fährt ist ja auch nur eine Krücke, da ich keine externen Metadaten pflegen will.

    Einmal kann ich damit leben, aber öfter?:beated:

  • Inzwischen gibt es eine Version 1.1, in der sich das auslesen der Filmeigenschaften etwas geändert hat.

    Dabei wurde der Tip von FoLLgoTT, wie man Eigenschaften eines Films auslesen kann, die noch nicht zum Start des Film vorhanden sind, umgesetzt.


    Damit ist es jetzt möglich das Gamma und damit die Eigenschaft SDR/HDR direkt aus dem Film auszulesen, womit keine Tags im Dateinamen mehr nötig sind.

    Die Erkennung von Tags für SDR/HDR sind in dieser Version dann auch komplett entfernt worden. Falls das noch jemand braucht, einfach Bescheid geben, dann baue ich eine Weiche dafür ein, um beides machen zu können.

    Eigentlich funktioniert es per Gamma aber sehr zuverlässig. Und es klappt so auch mit Videos, deren Dateinamen man nicht beeinflussen kann, wie bspw von Youtube.


    Die neue Version ist im Eingangspost angehängt.

    "A computer lets you make more mistakes faster than any other invention in human history, with the possible exceptions of handguns and tequila." - Mitch Ratcliffe

Jetzt mitmachen!

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