Nach langem hin und her überlegen denke ich, dass wir auf das Problem nun vllt lösen konnten. Sicher bin ich mir noch nicht. Wir müssen eine Zeit lang beoabchten und werde dann noch einmal berichten, ob das Problem gefunden und gelöst ist.
Hier noch einmal die genaue Problem-Darstellung, bzw. die Kofiguration:
- Streamcontrol (Standalone) zur Überwachung der Upstreams. Dieses Programm macht nichts anderes, als die Stream-Adressen weiter zu leiten! Das heißt: Es laufen im Task mehrere Shoutcast-Server-Instanzen. Solange diese nicht befüttert werden, leitet Streamcontrol diese nicht an Winamp weiter. Kann Streamcontrol keinen Upstream erkennen, erstellt es selbstständig eine Playlist und füttert damit den Winamp.
- Winamp mit Shoutcast DSP zur Verteilung der Downstreams.
Nun kann man im Streamcontrol den Upstreams verschiedene Prioritäten zuweisen.
Die Erstellung der eigenen Playlist hat die geringste Priorität.
mAirlist hat die nächst höhere Priorität. Sobald also mAirList on Air geht, wird dieser Stream an Winamp weitergeleitet.
Die Moderatoren haben die nächste Priorität. Sobald also jemand auf Sendung geht, wird dieser Upstream an Winamp weitergeleitet, ungeachtet dessen, dass mAirList immer noch on Air ist, weil dieses ja eine niedrigere Priorität hat.
Und hier genau liegt das Problem. Die Shoutcast-Instanz, die von mAirList gefüttert wird hat in genau diesem Moment keinen Abnehmer, weswegen wahrscheinlich der Buffer voll läuft, solange jemand auf anderes auch noch auf Sendung ist. Denn Streamcontrol lässt mAirList ins Leere laufen, weil es ja die Anweisung hat, den sendenden Moderator an Winamp weiter zu leiten.
Sobald kein Modi mehr auf Sendung ist, also kein Upstream mit höherer Priorität auf Sendung ist, wird der mAirList-Stream wieder durchgeschaltet. Damit wird zwar der Buffer wieder abgebaut, aber Altbestände des Streams bleiben trotzdem im Cache. Das geht so lange gut, bis der Buffer überläuft. In diesem Momentan werden alle Shoutcast-Instanzen in Mitleidenschaft gezogen. Da Streamcontrol die Anweisung hat, jeden Stream neu zu starten, wenn er getrenn t ist, war auch die logische Schlussfolgerung: mAirList beenden und der Shoutcast-Cache ist wieder leer.
Dementsprechend werden wir nun jede Nacht den Encoder von mAirList automatisch trennen und morgens wieder connecten, sodass sich der Buffer leer räumen kann.
Ich hoffe, ich konnte es einigermaßen verständlich erklären. Wenn nicht, einfach nochmal schreiben 