Verzögerung bei Mediacenter Szenen
Verfasst: 13.03.2012, 13:02
Guten Tag!
Ich verwende PC Dimmer, um eine Art "dynamische Ausstellung" zu steuern. (Es handelt sich um einen "Ostergarten", eine Darstellung der Ostergeschichte in einer Kirche.) Ein "Reiseleiter" führt dabei eine Gruppe von Besuchern durch verschiedene Räume und betätigt mindestens am Ein- und Ausgang eines Raumes, manchmal auch noch zusätzlich, normale Lichtschalter (Taster). Diese Taster lösen über ein modifiziertes Midi Keyboard ein Note On Event aus, das vom PC Dimmer interpretiert wird. Über ein DMX4ALL DMX 512 Interface an der RS232 Schnittstelle wird ein Dimmer gesteuert, der das Licht in den Räumen ein- und ausschaltet bzw. Effekte aktiviert. Das funktioniert alles ganz prima soweit!
Parallel zum Licht sollen auch Geräuscheffekte und in einem Raum ein Video abgespielt werden. Dazu gibt es diverse PCs (6 Stück), auf denen jeweils der Mediacenter Server vom PC Dimmer läuft. Bei Bedarf aktiviert ein Taster dann eine Mediacenter Szene bzw. eine Sequenz von diesen (Load, Set Volume, Play). Genau diese Automatisierung funktioniert auch prinzipiell. D.h. alle Rechner können die Dateien laden und abspielen. Allerdings gibt es zwischen dem Start des Szene (Audiodatei abspielen) und dem Zeitpunkt, an dem das Geräusch wirklich hörbar ist, eine Verzögerung von ca 15 Sekunden. Zumindest beim ersten Abspielen. Wird dann innerhalb einer kuzen Zeit von vielleicht einer Minute erneut die "Audiodatei Abspielen" Szene aktiviert, dann startet das Abspielen sofort. Wird zwischendurch ein anderer Mediacenter Server benutzt, um z.B. dort Audiodateien zu laden, so ist das Abspielen auf dem Ersten wieder verzögert. Es scheint sporadisch auch Fälle zu geben, in denen das Abspielen fast unmittelbar erfolgt, aber in der Regel gibt es diese lange Verzögerung. Kennt jemand das Problem, einen Workaround oder eine Lösung?
Die Dateien, die abgespielt werden, sind klein, eine z.B. 48kB! Interaktiv mit dem Windows Mediaplayer werden diese Dateien "sofort" gespielt. Es sind zum Teil mp3, zum Teil WAV und zum Teil Video Dateien, das macht keinen Unterschied. Die Rechner sind schon älter nur mit recht langsamen Celeron Prozessoren ausgestattet, aber das Video spielt und lokal geht alles schnell. Sämtliche Energiesparoptionen sind deaktiviert. Die Rechner stehen nebeneinander und sind mit kurzen Kabeln über einen Switch verbunden - Netzwerkprobleme sind unwahrscheinlich und wurden beim Remote Desktopzugriff nicht beobachtet.
Ich vermute, dass die Verwendung einer "großen" Anzahl von Mediacenter Servern eher ungewöhnlich ist!? Wir verwenden einen PC pro Satz von Lautsprechern, die jeweils in die Räume eingebaut sind. Da die Geräusche nur in dem jeweiligen Raum zu hören sein sollen, schien ein PC pro Raum eine gute Lösung.
Hält der PC Dimmer die Verbindung zu den Mediaservern, oder wird die jedes Mal hergestellt? Ist das Wechseln des Servers ein Problem, weil dann die alte Verbindung runter und die neue hochgezogen wird? Kann man die Verzögerung durch geschicktes Sequenzen der Aktionen "verbergen"? Wir hatten mit dem Abspielen von "Stille" zum Vorbereiten experimentiert, aber das löste das Problem nicht, das anscheinend das Laden der nächsten (richtigen) Datei wieder eine Verzögerung bedingte. Könnten Windows Socketoptionen helfen (TCP Session timeout?). Ich habe (leider?) keine Delphi Entwicklungsumgebung und kann deshalb eher nur mit Aufwand den Quellcode ansehen. Ich bin eher so auf Java und C++
Mit freundlichen Grüßen und der Hoffnung auf sachdienliche Hinweise
Felix
Ich verwende PC Dimmer, um eine Art "dynamische Ausstellung" zu steuern. (Es handelt sich um einen "Ostergarten", eine Darstellung der Ostergeschichte in einer Kirche.) Ein "Reiseleiter" führt dabei eine Gruppe von Besuchern durch verschiedene Räume und betätigt mindestens am Ein- und Ausgang eines Raumes, manchmal auch noch zusätzlich, normale Lichtschalter (Taster). Diese Taster lösen über ein modifiziertes Midi Keyboard ein Note On Event aus, das vom PC Dimmer interpretiert wird. Über ein DMX4ALL DMX 512 Interface an der RS232 Schnittstelle wird ein Dimmer gesteuert, der das Licht in den Räumen ein- und ausschaltet bzw. Effekte aktiviert. Das funktioniert alles ganz prima soweit!
Parallel zum Licht sollen auch Geräuscheffekte und in einem Raum ein Video abgespielt werden. Dazu gibt es diverse PCs (6 Stück), auf denen jeweils der Mediacenter Server vom PC Dimmer läuft. Bei Bedarf aktiviert ein Taster dann eine Mediacenter Szene bzw. eine Sequenz von diesen (Load, Set Volume, Play). Genau diese Automatisierung funktioniert auch prinzipiell. D.h. alle Rechner können die Dateien laden und abspielen. Allerdings gibt es zwischen dem Start des Szene (Audiodatei abspielen) und dem Zeitpunkt, an dem das Geräusch wirklich hörbar ist, eine Verzögerung von ca 15 Sekunden. Zumindest beim ersten Abspielen. Wird dann innerhalb einer kuzen Zeit von vielleicht einer Minute erneut die "Audiodatei Abspielen" Szene aktiviert, dann startet das Abspielen sofort. Wird zwischendurch ein anderer Mediacenter Server benutzt, um z.B. dort Audiodateien zu laden, so ist das Abspielen auf dem Ersten wieder verzögert. Es scheint sporadisch auch Fälle zu geben, in denen das Abspielen fast unmittelbar erfolgt, aber in der Regel gibt es diese lange Verzögerung. Kennt jemand das Problem, einen Workaround oder eine Lösung?
Die Dateien, die abgespielt werden, sind klein, eine z.B. 48kB! Interaktiv mit dem Windows Mediaplayer werden diese Dateien "sofort" gespielt. Es sind zum Teil mp3, zum Teil WAV und zum Teil Video Dateien, das macht keinen Unterschied. Die Rechner sind schon älter nur mit recht langsamen Celeron Prozessoren ausgestattet, aber das Video spielt und lokal geht alles schnell. Sämtliche Energiesparoptionen sind deaktiviert. Die Rechner stehen nebeneinander und sind mit kurzen Kabeln über einen Switch verbunden - Netzwerkprobleme sind unwahrscheinlich und wurden beim Remote Desktopzugriff nicht beobachtet.
Ich vermute, dass die Verwendung einer "großen" Anzahl von Mediacenter Servern eher ungewöhnlich ist!? Wir verwenden einen PC pro Satz von Lautsprechern, die jeweils in die Räume eingebaut sind. Da die Geräusche nur in dem jeweiligen Raum zu hören sein sollen, schien ein PC pro Raum eine gute Lösung.
Hält der PC Dimmer die Verbindung zu den Mediaservern, oder wird die jedes Mal hergestellt? Ist das Wechseln des Servers ein Problem, weil dann die alte Verbindung runter und die neue hochgezogen wird? Kann man die Verzögerung durch geschicktes Sequenzen der Aktionen "verbergen"? Wir hatten mit dem Abspielen von "Stille" zum Vorbereiten experimentiert, aber das löste das Problem nicht, das anscheinend das Laden der nächsten (richtigen) Datei wieder eine Verzögerung bedingte. Könnten Windows Socketoptionen helfen (TCP Session timeout?). Ich habe (leider?) keine Delphi Entwicklungsumgebung und kann deshalb eher nur mit Aufwand den Quellcode ansehen. Ich bin eher so auf Java und C++
Mit freundlichen Grüßen und der Hoffnung auf sachdienliche Hinweise
Felix