Beiträge von FoLLgoTT

    Ich suche für meinen MovieStarter nach Anforderungen, die etwas spezieller sind. Daher möchte ich euch fragen, wie ihr mit verschiedenen Seitenverhältnissen umgeht und diese ansteuert. Beispiel:


    • Leinwand: 2,4:1
    • Maskierung stufenlos bis 16/9 mit Arduino über LAN
    • Anamorphot mit Verzerrungsfaktor 1,31. Immer im Lichtweg.
    • Zoom: rein digital
    • bei <1,78:1 schwarze Balken links/rechts
    • bei >2,4:1 Bild nach oben verschieben
    • Multiformatfilme werden immer im breiteren Seitenverhältnis gezeigt


    Interessant sind vor allem Seitenverhältnisse, die irgendwo dazwischen oder größer/kleiner als die Leinwand/Maskierungsmöglichkeiten sind. Schneidet ihr ab? Lasst ihr schwarze Balken? Verschiebt ihr das Bild?


    Input würde mich freuen. :)

    Eine Abweichung um 15 cm ist in der Regel nicht wirklich relevant. Mein erstes DBA hatte einen Treiber auch um ca. 15 cm versetzt angeordnet und es hat sich sehr gut gemessen. Man muss ja auch schauen, welche Mode das überhaupt betrifft. Ein etwas nach oben versetzter Treiber beeinflusst nur die Vertikalmoden. Und die liegen im Frequenzbereich sowieso höher und fallen weniger auf. Die Moden, die häufig am meisten stören, sind die Längsmoden und die bleibt davon unbeeinträchtigt.

    Mit Laserkanonen, Klingonen dem Weltall und dem Tannhauser Gate hatte es jedenfalls nur wenig zu tun- insofern ist mein Fazit ähnlich dem von Mofi, jedoch aus anderen Beweggründen. :zwinker2:

    Science-Fiction ist ja auch deutlich mehr als das. Manchmal reicht ein kleiner Teil der Vorgeschichte, um Faszination auszuüben. Und die ist im Fall von "Event Horizon" der neuartige Antrieb und die Spekulationen, wo das Schiff eigentlich gewesen ist. Was ja zum Glück auch nicht wirklich aufgeklärt wird.

    Oder Alien(s), Life, Pitch Black, ...und auch die "erdigen" Thing, Predator, Sphere, ...

    "Life" war für mich eine große Überraschung. Ultraspannend und gut gemacht. Definitiv eine Empfehlung wert, wenn man auf Horror und Science-Fiction steht!

    Event Horizon


    Film: 5

    Der ist ja inzwischen schon etwas älter, aber für mich immer noch einer der besten Horror-Science-Fictions überhaupt. Den sollte man unbedingt nachts alleine schauen! :waaaht:


    Schade, dass die ursprüngliche Fassung mit mehr Splatterszenen wohl nie veröffentlich werden wird, weil das Filmmaterial verloren gegangen ist.

    RTFS

    Danke. Das klingt für mich so, als wenn die beiden Versionen auf gleiche Weise doppelt pixelshiften und hier nur die Eingangsauflösung bzw. die Software vermarktet wird. Das würde ja bedeuten, dass am Ende immer auf die volle Breite hochskaliert wird und die 16/9-Variante intern auch 5120 horizontal nutzt. 3840 passen da ansonsten überhaupt nicht rein, bzw. es müsste nur ein Ausschnitt des Chips benutzt werden, was aber wiederum nicht zum 1,33 mal höheren Lichtstrom passt. Wie auch immer, exakt wissen wir es nicht und so wichtig ist das wahrscheinlich für das Endergebnis auch nicht. Wäre nur mal ganz interessant zu wissen. :)


    5.120x2.160 ist der 5K UHD und 10.240x4.320 ist der 10K UHD Standard der HDMI 2.1 Spezifikationen, und beide haben exakt das 2.37:1 Bildseitenverhältnis: https://www.murideo.com/data-rate-chart.html

    Tja, das ist ähnlich bescheuert, wie damals 16/9 statt 1,85:1 als Standard zu machen. Ich habe mal alle meine Filme ausgewertet und der Großteil der Scope-Filme liegt in ca. 2,4:1 vor. 1,85:1 (und Derivate) kommt übrigens auch häufiger vor als 16/9. Also sind die echten 4096-Panels für uns Filmfreaks eigentlich sinnvoller als die mit 3840. Aber gut, die Unterschiede sind marginal.

    Erstmal danke für den Bericht.

    Wohlgemerkt im Cinemascope Format. Umgerechnet auf einen 16/9 Projektor wären das 7500 Lumen.

    Was mich etwas wundert: die CS-Version nutzt ja anscheinend denselben DMD wie die 16/9-Version und hat dadurch 1,33 mal weniger Lichtstrom, weil unten und oben einfach etwas ungenutzt bleibt. Warum ist die horizontale Auflösung dann nicht identisch? Die nutzen doch beide SSP (oder Pixel Shift), richtig? Genaue Informationen konnte ich leider nicht finden.

    Ich habe bei mir einen ähnlichen Ansatz implementiert und beschreibe den hier mal. Vielleicht ergeben sich daraus sinnvolle Anforderungen für dich.

    Danke für die detaillierte Beschreibung! Das ähnelt meinem Beispiel weiter oben ja sehr stark. Nur stellst du sogar noch die Lautstärke anhand der Kanalanzahl ein. An sowas hatte ich bisher nicht gedacht. Wäre aber prinzipiell auch kein Problem. :)

    Pause/Player wird bei mir übrigens beim MPC-HC über EventGhost gemacht, der mit dem Player verbunden ist und dann ein Event bekommt. Bei MPV habe ich das im LUA-Script realisiert. Solche Player-Ereignisse sind auch das Einzige, was der MovieStarter nicht abdecken würde. Dafür braucht man also eine andere Lösung.


    Ich bin inzwischen ein bisschen weiter und habe mal eine Bedingung und neue Variablen implementiert. Das sieht dann z.B. so aus:



    Hier sende ich z.B. das Seitenverhältnis an EventGhost, wenn es ungleich dem konfigurierten Standard ist. Und ändere die Auflösung/Refreshrate, wenn sie ungleich dem Standard ist. Für letzteres sind getrennte Aufrufe für den Start und das Ende des Films konfiguriert.


    Bisher gibt es folgende Metadaten, auf die man prüfen kann:

    • Seitenverhältnis
    • Bildrate
    • EOTF
    • Auflösung

    Dann gibt es folgende Operatoren: =, !=, <, <=, > und >=.


    Und weiterhin kann man mit festen Werten oder mit einigen konfigurierten Werten vergleichen. Die Variablen für die Leinwand könnte ich noch hinzufügen.


    Grundsätzlich könnte ich mehrere Bedingungen unterstützen, die dann mit UND/ODER verknüpft werden. Das ist natürlich etwas Aufwand. Und die Frage ist, ob das notwendig ist, denn mit EventGhost, FHEM oder OpenHAB kann man beliebig komplexe Szenarien implementieren, wenn man sich in einem Rutsch alle Metadaten schicken lässt. Also möchte ich hier auch nicht mehr Arbeit reinstecken als notwendig.

    Und wie lange dauert das Scannen aller Informationen vor dem Film?

    Das dauert ca. 7 - 20 s. Je nach Format (UHD/HD/SD) und Anzahl der Stichproben. Beim nächsten Mal, wenn die Metadaten abgelegt sind, ist das quasi verzögerungsfrei.

    Wahrscheinlich legst Du die "Zusatzdaten" je Film ab?

    Ja genau. Wobei ich mein eigenes Format habe und andere hier im Forum es im Dateinamen verstecken.

    ich finde das extrem beachtlich und gut was Du da „mal eben so“ nebenbei programmierst.

    Danke! :sbier:

    Das Projekt lebt ja schon seit Jahren. Ich habe nur mal wieder die Muße gefunden, mich darum zu kümmern.


    Es funktioniert so, dass die Datei zunächst ausgewertet wird?! Beispiel AR. Das Programm schaut in die Datei und analysiert das Seitenverhältnis und gibt entsprechende Befehle aus. Korrekt? Wenn ja, was passiert wenn sich was ändert? Insbesondere denke ich an Multiformatfilme. Angenommen zu Anfang habe ich Scope Format und später wechselt es auf 16:9. Dann wird auf scope maskiert. Was passiert, wenn der Film auf 16:9 springt? Genau so auch umgekehrt.

    Genau, der Film wird vor dem Start mit dem AspectRatio-Detector von All-Ex analysiert. Der analysiert den Film mit einer konfigurierbaren Anzahl an Stichproben und gibt dann das Seitenverhältnis zurück. Bei Multiformatfilmen kann man z.B. einstellen, dass das breitere zurückgeliefert wird. Dann ist man sicher. Man kann die gültigen Seitenverhältnisse konfigurieren, auf die dann gerundet wird. Ganz exakt sind die wenigsten Filme abgelegt.


    Ich hatte mal mein gesamtes Archiv analysieren lassen und es gab nur einen Fehler, der sich durch die Erhöhung der Stichprobenanzahl sicherlich umgehen lässt. Das ganze ist also sehr zuverlässig. Und vor allem sitzt alles schon vor dem Film und z.B. nicht erst, wenn man nach dem schwarzen Intro die Balken erkennen kann. :)

    Ich bin gerade dabei, Bedingungen zu implementieren. Ich denke, das ist der richtige Weg.


    Hier noch mal ein umfangreiches Beispiel, was der MovieStarter machen könnte.




    Jetzt denkt man erstmal: das kann meine Scriptumgebung zum Großteil auch.

    Ja, aber eben nur zum Großteil. Denn der MovieStarter analysiert ja auch das Seitenverhältnis und somit werden sogar Multiformatfilme immer korrekt angesteuert. Und zum anderen stellen die Metadaten eine sogenannte "Single Source of Truth". Das ist ein Begriff aus der Softwaretechnik, der besagt, dass die Wahrheit genau nur an einer Stelle definiert und somit nicht redundant vorhanden ist. Es ist daher egal, aus welchem Frontend der Film gestartet und (sofern unterstützt), welcher Player benutzt wird. Man muss die Metadaten auch nicht mehr pflegen, weil das beim Start automatisch passiert (und ggf. für einen schnelleren Zugriff abgelegt wird). Und ganz wichtig: alles ist playergetrieben. Es braucht keine externe Steuerung, die nicht weiß, wann der Player gestartet wird. Der Vorgang des Filmstarts erledigt alles und setzt es dann wieder zurück. Ich denke, das Konzept kann man daher als 100%-Lösung bezeichnen. Ziel ist, es immer richtig zu machen.


    Mit dem MovieStarter kann man auch die Konfiguration im Nachhinein relativ einfach ändern, wenn man mal die Leinwand, Projektor oder den Anamorphoten tauscht usw. Und man muss sich letztendlich nicht mehr um kryptische Zoom-Parameter oder fummelige Skripte kümmern.


    Soweit die Vision. Der Großteil funktioniert bereits. Wie gesagt, spezielle Anforderungen sind willkommen. :)

    So, der _ARxxx-Tag im Dateinamen des AspectRatio-Detectors wird jetzt auch berücksichtigt. :)


    Habt ihr Anwendungsfälle, bestimmte Dinge nur beim Start oder nur beim Beenden auszuführen?


    Ich vermute, es wird für einige notwendig sein, dass man Bedingungen formulieren können muss, z.B.

    • wenn Seitenverhältnis > 1,78 dann führe Regel aus

    Damit könnte man feste Befehle zu bestimmten Bedingungen ausführen. Also Lens Memory ansteuern, Lampenmodus bei HDR wechseln oder auch sowas wie der lange Code von wobix.

    So, OpenHAB ist per REST-API kein Problem. Man kann einem String-Item (oder direkt Number) den Wert des Seitenverhältnisses schicken lassen. Per Rule kann man den dann auswerten und an die individuelle Maskierung anpassen. Ich denke, damit ist man flexibel genug. :)




    Die Frage hatte ich übersehen:

    D.h. Du nutzt den Player, um das Bild vorzuverzerren? Ist die Bildqualität dadurch besser, als wenn der Projektor dieses vorverzerrt?

    Ja, genau. Der Player (z.B. MPC-HC) übergibt die Bildposition und die Zoomfaktoren an madVR und der wendet sie dann an. Das heißt, die Qualität der Skalierung hängt von dem in madVR eingestellten Algorithmus ab. Bei MPV natürlich genauso. Also ja, im Zweifelsfall lasse ich lieber den Renderer/Player skalieren als den Projektor. Und vor allem ist es viel einfacher anzusteuern, da man beim Start nur diese Dezimalwerte übergibt und das war's. Und das eben komplett stufenlos. Alle Zwischenwerte sind möglich.


    Dazu kommt ja noch, dass die Player bei mir noch die Entzerrung der gekrümmten Leinwand vornehmen. Auch das passiert per Shader in der Grafikkarte.

    FoLLgoTT mein Interesse hast du, Nils. Ich verwende derzeit die Kombination MPC-BE mit TinyMedia an einem CIH Setup wie du weißt.

    Wie schaltest du dann den Zoom um?



    Wow, schickes Werkzeug! Leider habe ich das meiste schon auf anderen Wegen gelöst (ARD hat schon alle Infos abgelegt, Aktoren werden per OpenHAB angesteuert).

    Wie wertest du das aus und wer steuert ObenHAB an?


    OpenHab habe ich übrigens auch im Einsatz. Ist ja per REST-API leicht anzusteuern und wäre wohl problemlos für den MovieStarter machbar. :)



    Sehr cooles Tool hast du da gebaut, wie funktioniert die Einbindung anhand der Dateiendung? Anstatt des Players wird dann das Tool gestartet, führt alle möglichen Sachen aus und das Tool startet dann den Player?

    Genau. Der MovieStarter bekommt derzeit als Parameter die Filmdatei übergeben, analysiert, fährt die Maskierung an usw. und startet dann den konfigurierten Player. Nach dem Beenden setzt er wieder alles zurück.


    Dementsprechend fände ich eine Ansteuerung über einen HTTP Request interessant, dann könnte das Tool dem Lightmanager direkt darüber mitteilen, was er dem Beamer sagen soll.

    So sähe ein typischer HTTP Request für Infrarot aus, den ich im Moment über meine Smart Home Steuerung an den Lightmanager schicken kann, der hier z.B. um bei meinem AVR die Quelle auf PC zu wechseln.

    Das sollte auch machbar sein. Derzeit ist allerdings nur vorgesehen, dass das Seitenverhältnis per HTTP gesendet wird. Also z.B. die Zeichenkette "2.4:1". Was derzeit fehlt, ist, dass man die Befehle pro Seitenverhältnis vordefiniert und der MovieStarter dann den richtigen Aufruf macht. Dein Befehl enthält das Seitenverhältnis als Zahl ja gar nicht. Ich denke, das wäre für dich genau das Richtige.


    Alternativ kann der MovieStarter jetzt schon ein Event in EventGhost auslösen. Das Event sieht dann z.B. so aus:


    "HTTP.MovieManager.AR_2.40"


    Darauf kann man reagieren und im Prinzip alles machen. EventGhost unterstützt Python-Scripts, die auch HTTP, TCP oder UDP senden können. Man kann den String parsen und für verschiedene Seitenverhältnisse verschiedene Dinge auslösen. Da wäre man komplett frei. Das habe ich auch jahrelang so betrieben. :)

    Ich habe die Logik in meinen MovieManager so gekapselt, dass ich sie problemlos aus einem anderen Kontext heraus nutzen kann. Ich habe einen Prototypen entwickelt, der direkt einen Film samt Analyse und Auswertung von Metadaten starten kann. Den Prototypen könnte man also beliebig irgendwo einbinden oder ihn direkt aus dem Explorer starten, wenn er mit den Dateiendungen der Filme verknüpft ist.


    Das sind die Features bisher:

    • Analyse von Seitenverhältnis (AspectRatio-Detector), Bildrate usw. vor dem Filmstart
      • Ablegen dieser Informationen am Film für schnelleren Start in der Zukunft
    • Senden der Pan&Scan-Parameter für eine konstante Bildhöhe (CIH). Unter Berücksichtigung von:
      • Seitenverhältnis des Panels
      • Anamorphot
      • Seitenverhältnis der Leinwand
      • Verschieben, wenn das Seitenverhältnis des Films größer als das der Leinwand ist
    • Ansteuerung von Aktoren, wie z.B. einer Maskierung oder Lens Memory
    • Ändern der Refreshrate (und Auflösung) vor dem Filmstart und danach (inklusive Wartezeit für HDMI-Synchronisation des Projektors)
    • Alles über Dialog konfigurierbar, so dass bisher nur der Film als einziger Parameter notwendig ist



    Nun meine Frage: gibt es generell Interesse an sowas oder braucht das außer mir keiner? Und wenn ja, welche Anforderungen hättet ihr?

    "Ich seh, Ich seh" (2014) - Ein eher ruhiger, österreichischer Psychohorror der seichteren Sorte. Der Film lebt von seinen schönen Bildern, der kindlichen Perspektive und erzeugt eine interessante Atmosphäre, die mich gut gepackt hat. Der Film hängt jedenfalls noch ein wenig nach. Was ich von dem 08/15-Hollywoodkrempel nicht behaupten kann...

    Native 16:9-Filme mit UHD-Auflösung werden mit 3.840 x 2.160 Pixel vom Bragi CS via XPR-Shift projiziert.

    Da echte (anamorphe) Cinemascope-Filme (in 35 mm) breiter sind als 16:9 (oder Spielfilme in 1,85:1) bei identischer Bildhöhe, ist die höhere horizontale Auflösung mit 5.120 x 2.160 Pixel genau richtig - und vor allem konsequent von Barco bemessen.

    Eigentlich wäre 5184x2160 sinnvoller gewesen, denn 2,35:1 wurde im Laufe der Jahre von 2,4:1 abgelöst. Praktisch alle neuen Cinemascope-Filme nutzen 2,4:1.


    Kann der Bragi eigentlich die Balken erkennen und skaliert dann korrekt oder muss man per Hand umschalten?

    Für eine konstante Höhe braucht ja für alle Seitenverhältnisse zwischen 16 / 9 und 2,4:1 einen anderen Zoomfaktor.