Kinofeeling – Wie kann man Kinotrailer vor die Bluray-Vorführung schalten?

Aufgabe:

Vor der Bluray-Vorführung sollen schon mal Trailer zu demnächst erscheinenden Kinofilmen abgespielt werden… und das komplett automatisiert.

 

zusätzliche Hardware:

  • ein Chromecast-Dongle

 

benötigte Software:

Ergänzung zur CastNow-Installation:

bei mir lies sich das Programm nach der Installation nicht starten. Es fehlte ein Link zur node-Datei.

ln -s /usr/bin/nodejs /usr/bin/node

1. Aktion mit Trigger anlegen

die Aktion heißt bei mir BD/Trailer – Beamer

MyHarmony-Aktion

in der Start- und End-sequenz sind dann die entsprechenden „Trigger“ gesetzt worden ⇒  Asterisk → Taste 01-an bzw Taste 01-aus.

MyHarmony-Aktion-Start MyHarmony-Aktion-Ende

2. /etc/lircrc anpassen

in meinem Fall wird für die entsprechenden Tasten dann das Skript harmony-trigger.pl mit den entsprechenden Parametern (01 an/aus) aufgerufen

lircrc

Lirc und irexec müssten neu gestartet werden. Bei mir unter Debian:

systemsctl restart inputlirc.services

3. harmony-trigger.pl anpassen

die entsprechenden Zeilen sehen dann wie auf dem Screenshot aus

  1. per HarmonyHubControl wird der AV-Receiver auf den Eingang des Chromecasts geschaltet
  2. per HarmonyHubControl wird die HDMI-Matrix auf den richtigen Eingang gestellt
  3. es wird das Skript kinotrailer.pl ausgeführt
  4. nach Durchlauf des Trailer-Skriptes wird per HarmonyHubControl zurück auf den BD-Player-Eingang des AV-Receivers und der HDMI-Matrix geschaltetharmony-trigger

4. kinotrailer.pl erstellen

das ist jetzt ein Quick’n’Dirty-Skript. Normalerweise sollte man die YouTube-Api für solche Abfragen heranziehen. Was macht das Skript?

  1. per Zufall wird zwischen den beiden YouTube-Kanälen KinoCheck und MoviepilotTrailer ausgewählt
  2. HTML-Quelltext wird per curl in eine Variable geladen
  3. aus dem Quelltext werden die ersten 3 Video-IDs rausgezogen
  4. mittels youtube-dl werden diese Videos dann runtergeladen
  5. es wird die Abspieldauer der Videos ermittelt. Hier hilft ffprobe.
  6. mit castnow lasse ich dann alle Videos einzeln abspielen
  7. die runtergeladenen Videos lösche ich dann zum Schluss

Kinotrailer

Probleme:

Während der Erstellung des Skriptes bin ich auf etliche unangenehme Eigenarten gestoßen. Mit Castnow könnte man auch direkt Youtube-Videos abspielen. Youtube hat aber eine sehr unangehme Next-Autoplay-Funktion. Nach Abspielung wird sofort ein nächstes Video gestartet, das man eventuell nicht sehen möchte. Abhilfe schafft hier nur das Runterladen des Videos, mittels youtube-dl. Castnow funktioniert wunderbar wenn man es direkt auf der Konsole manuell aufruft (auch aus einem php, perl und batch-Skript heraus). Es gibt aber Probleme wenn das Skript per Cron-Job oder per irexec aufgerufen wird. Castnow bleibt nach Abspielung einfach hängen. Abhilfe schafft hier nur das beim Ausführen des Befehls. Der Nachteil ist die sofortige weitere Abarbeitung des Skriptes, obwohl es noch nicht weiter abgearbeitet werden soll. Also muss das Skript mittels „sleep“ ausgebremst werden. Die variable Sleep-Zeit kann man sich mittels ffprobe plus Puffer erfragen. Nach dem Sleep wird castnow einfach gekillt.

Mit diesem „Baukasten“ an Skripten funktioniert das bei mir sehr sehr gut.

Basti

Kommentar schreiben

0 Kommentare.

Kommentar schreiben


Hinweis - Du kannst dies benutzenHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>