Kino steuern ohne On Screen Display | API zu MPC-HC, madVR, ...

  • An der Automatisierung meines Heimkinos arbeite ich weiter. Ein Ziel dabei ist, dass im Betrieb keine OnScreenDisplays (OSD) verwendet werden. Mein "Publikum" empfindet es sehr störend, wenn nach dem Start des Films erstmal durch irgendwelche Menüs geklickt werden muss, bis z.B. Tonspur, Untertitel, madVR-Profil etc. passend ausgewählt sind. Daher möchte ich keine Menüs oder Statusmeldung auf der Leinwand sehen. Im echten Kino gibt es das schließlich auch nicht.


    Dazu habe ich einen unsichtbaren Monitor in meinem Kino platziert, wo meine Hausautomation (FHEM) die Informationen anzeigt, die normalerweise im OSD stehen würden. Über eine Fernbedienung kann ich hier auch einige Dinge steuern, z.B. die Sprache der Tonspur oder ein paar Audio-Einstellungen des Receivers. Anzeige und Steuerung gehen auch über ein Tablet oder Smartphone.

    Damit das funktioniert, benötige ich für die verbauten Komponenten einen Zugriff per API, damit die Hausautomation den aktuellen Status der Komponenten auslesen und anzeigen kann und Befehle an die Komponenten senden kann.


    Bisher habe ich den in KODI integrierten Player mit madVR verwendet, und da konnte die Hausautomation über die KODI-API die aktuelle Audiospur, Audio-Sprache, Audiocodec, Untertitel-Spur etc. abrufen und einstellen. Ich bin gerade bei der Umstellung auf MPC-HC als Player, aber dort gibt es nur eine recht rudimentäre Web-API. Auslesen lassen sich zwar einige Variablen, die genannten sind aber nicht dabei.


    Ich suche einen Weg, wie ich auf den aktuell in MPC-HC ausgewählten Audio-Track, Audio-Sprache, Audio-Codec und Untertitel zugreifen kann. Dann könnte ich diese Daten auf meinem unsichtbaren Monitor darstellen und auch per API steuern.


    Interessant wäre es auch, ob madVR eine Web-API anbietet, dann könnte ein ausgewähltes Preset ebenfalls auf dem Status-Monitor angezeigt und ausgewählt werden.


    Gibt es hier evtl. jemanden, der das gleiche Ziel verfolgt?

  • Moin,

    ich halte den Weg alle möglichen Informationen über eine API abzugreifen und dann als Text dazustellen für nicht ideal.

    Ich halte das in unseren Projekten eher einfach und stelle einfach das Projektorbild auf einem separaten Bildschirm dar. Da man dort die GUI des jeweiligen Players direkt sieht, kann man dort ganz normal mittels FB alle Einstellungen nach belieben vornehmen.

    Währenddessen ist das Bild des Projektors aus.

    Das hat den Vorteil, dass Du völlig unabhängig vom benutzten Player und dessen API bist.

    Wenn dieser Vorschaumonitor auch noch im Vorraum vor dem Kino hängt, dann kann man dort schon ganz bequem alle Einstellungen vornehmen während die Gäste eintreffen und wenn man dann in´s Kino geht, sind alle Einstellungen schon vorgenommen und man kann direkt in den Film starten.

    EDIT: Sieht dann so aus:


    20210425-_DSC0595.jpg20210425-_DSC0599.jpg

  • Ich denke, den Webservice von MPC-HC kann ich leicht um die Informationen über das Tonformat erweitern. Die Stellen im Code habe ich gefunden. Das sieht recht simpel aus. Ich bekomme derzeit schon über COM die Informationen als String, die man sieht, wenn man die Tonspur auswählt (also auch Tonformat, Bittiefe und Anzahl Kanäle).


    MadVR hat zwar einen Webservice (beschrieben in \Developers\net-protocol.txt), allerdings auch sehr rudimentär. Es gibt da zwar ein GetSettings, aber das liefert anscheinend binäre Daten zurück. Keine Ahnung, welches Format die haben. Ansonsten gibt es noch eine Schnittstelle via COM, die auch MPC-HC benutzt, die ist dann allerdings noch umständlicher. Man kann da allerdings Profile aktivieren.

    Für die Anzeige ist es sicherlich am einfachsten, wenn man bei der Aktivierungsregel in madVR den Profilnamen in eine Datei schreibt, die deine Automatisierung dann ausliest. Und Profile aktivieren kannst du ja in madVR per Hotkey. Also könnte man das auch ohne API lösen.

  • Gibt es hier evtl. jemanden, der das gleiche Ziel verfolgt?

    Ich wähle den Film immer öfter direkt in "Yatse" aus. Somit hast Du den Film unsichtbar gestartet.


    Die Visualisierung der gewählten Presets in madVR könntest Du über das Feld "Kommando ausführen" in dem jeweiliegn madVr-Setting realsieren. Dort mit curl.exe oder mosquitto_client.exe usw die Nachrichten an die Homeautomatisierung schicken und entsprechend verteilen. Ich erstelle daraus eine Message an Kodi (mit Nodered) direkt.



    Zum MPC kann ich nichts beitragen, Ich nutze den DSPlayer von Kodi 17.7.

  • Da haben wir doch verschiedene Anwendungsfälle, wie ein Film abgespielt bzw gestartet wird.

    Bei mir wird der Film auch in Kodi direkt ausgewählt und gestartet. Und i.d.R. weiß ich vorher noch nicht genau, welcher es wird bzw überlasse die Entscheidung anderen.


    Da ich auch gerade dabei bin, eine Steuerung auf Basis von Node-Red aufzubauen, ist das Thema natürlich interessant.


    Für das auslesen des aktuellen Audiocodecs könnte man auch direkt an den AVR gehen. Die aktuellen Modelle bieten ja meist eine HTTP-API an.

    Alle verfügbaren Audiospuren und Untertitel könnte man weiterhin über Kodi abfragen. Die Werte ändern sich ja nicht, sobald ein Player den Film abspielt.

    Nur umschalten lässt sich dass dann halt nicht.


    Für den MPV gibt es zumindest eine REST-API Erweiterung, mit der man das direkt über den Player machen könnte: mpv-remote-node

    Aber die Entscheidung, ob MPV oder MPC ist natürlich eine andere.


    Wenn man die MPC Web-Service erweitern könnte, wäre das wohl ideal.

    "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 ist dann aber nur das auslesen, nicht das setzen, oder?!

    "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 ist dann aber nur das auslesen, nicht das setzen, oder?!

    Ja, direkt die Tonspur per Index setzen, ist leider nur per SendMessage implementiert. Aber über den Webserver kann man immerhin die Spuren vorwärts und rückwärts wechseln:


    POST an "http://localhost:13579/command.html" mit dem Befehl "wm_command=952" und "wm_command=953".

  • Ich halte das in unseren Projekten eher einfach und stelle einfach das Projektorbild auf einem separaten Bildschirm dar. Sieht dann so aus:

    Sieht toll aus. Ein schickeres Design ginge mit dem Hausautomatisierungsansatz auch, aber da hatte ich noch keinen Fokus drauf...


    Bei mir wird der Film auch in Kodi direkt ausgewählt und gestartet. Und i.d.R. weiß ich vorher noch nicht genau, welcher es wird bzw überlasse die Entscheidung anderen.

    So ist es bei uns auch. Während des Films kommt es häufiger vor, dass ...

    • ... mir auffällt, dass ein anderes madVR-Profil besser wäre und ich das unauffällig ändern möchte
    • ... die Audiospur doch auf deutsch gestellt werden soll, weil der Slang im Originalton zu anstrengend wird
    • ... dass die falschen/keine Subtitles angezeigt werden und ich sie auf forced stellen möchte

    Ich bin auch nicht der Typ, der sich das bei jedem Film vorher genau anschaut und die Settings vorbereitet. Mein Ansatz ist, dass die Automation so viel wie möglich sinnvoll auswählt und einstellt, ich aber die Möglichkeit habe, Einstellungen jederzeit unauffällig (d.h. ohne OSD) zu ändern.


    Danke FoLLgoTT und DoXer für die Idee zu madVR. Das Thema ist damit wohl recht einfach lösbar.


    Hab ich mal testweise hier lokal. Ist machbar.

    Wow, das ist super! Würde mein Problem lösen. Am liebsten auch noch der aktuelle Untertitel-Stream.


    Der in MPC-HC integrierte Webserver zur Steuerung von MPC-HC ist erstmal fein. Damit kann ich auch die Untertitel durchblättern, habe da sehr viele Funktionen gefunden.

  • Ich bin auch nicht der Typ, der sich das bei jedem Film vorher genau anschaut und die Settings vorbereitet.

    Ok, Ihr schaut auf 2 Sprachen. Aber grundsätzlich kann man die Player ja mal auf die bevorzugte Sprache einstellen, UT auf Forced.

    Das Forced Flag setzt in den meisten Fällen das Skript von @NamorNodiz richtig.


    Wenn man dann noch die Shortcuts auswendig weiß, bzw. belegt, dann gibt es links oben nur eine kurze, kleine Einblendung. Das wird wohl nicht sooo störend sein.


    Wenn man keine Custom Resolution einstellt, sondern die vollen 3840x2160px + Blanking der CS Streifen, dann sind diese Einblendungen außerhalb des Bildes, also unsichtbar.

Jetzt mitmachen!

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