Hallo,
ich hab auf meinem VDR einen DLNA (UPNP) Server eingerichtet. Jetzt möchte ich verhindern, dass wenn von diesem Server gestreamt wird, der VDR runter fährt.
Was müßte ich denn in der lifeguard.conf eintragen?
danke und Gruß
Thomas
Hallo,
ich hab auf meinem VDR einen DLNA (UPNP) Server eingerichtet. Jetzt möchte ich verhindern, dass wenn von diesem Server gestreamt wird, der VDR runter fährt.
Was müßte ich denn in der lifeguard.conf eintragen?
danke und Gruß
Thomas
Das kommt darauf an :].
Du sagst nicht, welchen DLNA Server Du installiert hast. Generell sind es zwei Schritte: Zunächst musst Du eine eindeutige Veränderung am Zustand des Systems finden, welche der Server während des Streamens bewirkt, z.B. eine Netzwerkverbindung über einen bestimmten Port oder ein zusätzlich gestartetes Programm. Dann kannst Du versuchen, mit einem der Muster in der Konfigurationsdatei diesen Zustand zu detektieren, z.B. mit 'tcp 4711' für eine TCP Verbindung über Port 4711.
Für eine Antwort auf Deine Fragen müsstest Du also wohl ein paar zusätzliche Informationen liefern: Entweder die Server Software nennen (und hoffen, dass Dir jemand die von ihr verursachte Zustandsänderung nennen kann) oder die Zustandsänderung ermitteln. Für letztere Aufgabe eignen sich gut die Programme, die lifeguard selbst in /usr/share/vdr/shutdown-hooks/S*.lifeguard benutzt, z.B. netstat.
Gruß, maf
Nunja, ich setzte den Twonky server ein. Ich hab angenommen, dass es standardisiert wäre, wie ein Stream bei DLNA läuft, und dass das hier schon sicher jemand gemacht hat.
mit netstat geschaut, scheint der Local Address Port 9000 die Konstante zu sein, die für mich wichtig wäre.
Ich hatte zuerst immer auf den Foreign Address Port geschaut, aber der ist nicht eindeutig und eigentlich macht der lokale für mich mehr Sinn ...
Danke fürs drauf stoßen
Tom
Nunja, ich setzte den Twonky server ein. Ich hab angenommen, dass es standardisiert wäre, wie ein Stream bei DLNA läuft, und dass das hier schon sicher jemand gemacht hat.
Verstehe, das kann durchaus sein. Leider habe ich mangels DLNA Server keine Erfahrungen oder Testmöglichkeiten.
Was streamst Du denn wohin und wie gut funktioniert das?
mit netstat geschaut, scheint der Local Address Port 9000 die Konstante zu sein, die für mich wichtig wäre.
Ich hatte zuerst immer auf den Foreign Address Port geschaut, aber der ist nicht eindeutig und eigentlich macht der lokale für mich mehr Sinn ...
Danke fürs drauf stoßen
Das heißt, bei Dir funktioniert ein 'tcp 9000'?
Was streamst Du denn wohin und wie gut funktioniert das?
Ich streame meine mp3 Sammlung vom VDR-Rechner, der unterm Dach steht auf meinen AV-Receiver (ein Onkyo TX-NR 609)
Das läuft in dieser Konstellation ganz gut. Ich hatte zuvor den kostenfreien Mediatomb als DLNA Server probiert, nur bei dem bekomme ich keine Artist-Information an den Receiver übermittelt. Ich kann nicht sagen ob es ein Problem des Receivers ist, oder an Mediatomb liegt (hab sonst niemanden mit diesem Problem gefunden). Mit dem Twonky Server läuft das jedenfalls, und der ist auch sonst etwas komfortabler.
Ein Problem hat noch der Receiver, wo ich allerdings hoffe, dass Onkyo das mit einer neuen Firmware hin bekommen könnte, nämlich passiert es ab und an, dass beim auswählen von einem Track plötzlich nichts mehr funktioniert. Auf dem Receiver-display steht dann initilizing und nix passiert mehr. Das hat aber nix mit dem Streamen zu tun, das passiert auch über USB.
Den Receiver hab ich noch nicht lange, vorher hab ich mp3 nur mittels dem muggle-Plugin gehört. Das benutze ich immer noch, da ich über den Receiver nicht spontan Playlisten anlegen kann, das ist bei muggle schöner. Mit einem Pad oder einem Smartphone müßte das auch so gehen, aber sowas hab ich nicht
Das heißt, bei Dir funktioniert ein 'tcp 9000'?
ich hab es jedenfalls eingetragen, konnte es aber bisher noch nicht überprüfen, da entweder eine Aufnahme lief, oder sonst was los war ... ich werde den (Miss-)Erfolg posten.
Also ich kenn das Lifeguard nicht genau, aber wenn man einen Serverport prüfen kann, dann solltet ihr auf udp://239.255.255.250:1900 prüfen. Dort läuft der UPnP-Listener für Clients. Aber dort bekommt man nicht heraus, ob auch tatsächlich gestreamt wird oder ob einfach nur Mediatomb oder Twonky aktiv ist. Da UPnP keine Regeln festlegt, was auf welchem Port gestreamt werden soll, ist die Regel recht schwer fest zu machen.
Ja, einfach nach port 9000 zu filtern hat's nicht gebracht.
netstat -t brachte heute ständig einen eine localhost:9000 Verbindung. Dadurch ist er heute den ganzen Tag an geblieben.
Das komische ist, dass wenn ich jetzt manuell mittels netstat schaue, der localhost:9000 nicht ständig auftaucht. Komischerweise hatte lifeguard heute aber jedes mal das "Glück".
Ich versuch mal die localhost Verbindungen von der Prüfung auszuschließen.
Ich versuch mal die localhost Verbindungen von der Prüfung auszuschließen.
ja, okay, dann müßte ich den Skript anfassen, für mich paßt das solange, bis ein upgrade wieder die Standardvariante des lifeguard skripts einspielt.
Also, in meinem shutdown-hook von lifeguard
/usr/share/vdr/shutdown-hooks/S91.lifeguard
habe ich folgende Zeile wie folgt geändert (Doppelpunkt entfernt):
Original:
if [ $(netstat -t | grep -e "^tcp" | grep -ve "CLOSE_WAIT[ \t]*$" | sed -re "s/ +/ /g" | cut -d " " -f 4 | grep -cE ":$PATTERN\b") -gt 0 ]; then
Fälschung:
if [ $(netstat -t | grep -e "^tcp" | grep -ve "CLOSE_WAIT[ \t]*$" | sed -re "s/ +/ /g" | cut -d " " -f 4 | grep -cE "$PATTERN\b") -gt 0 ]; then
Daraufhin hab ich in der lifeguard.conf (/etc/vdr/) folgenden Eintrag für den DLNA Server Eingetragen:
und bei allen anderen tcp Einträgen hab ich den Doppelpunkt eingefügt:
mal schauen, ob's hilft.
Das ist komisch, netstat zeigt mir Verbindungen mit Rechnern an, die ausgeschaltet sind. Selbst bei "state" steht "verbunden".
Versteh ich nicht, ist das normal?
Ich hab jetzt einen separaten Shutdown Skript erstellt, der den Twonky Server direkt befragt, ob er etwas streamt.
Streams=0`wget localhost:9000/rpc/stream_active -O- -q|cut -d":" -f2`
if [ $Streams -gt 0 ] ; then
# Twonky is still streaming, so we should defer.
# the shutdown for 5 minutes
..
echo "ABORT_MESSAGE=\"TwonkyServer sendet noch Daten\""
echo "TRY_AGAIN=5"
fi
exit 0
Alles anzeigen
Damit "if" nicht einen Fehler auslöst, wenn der Server überhaupt nicht läuft, füge ich eine "0" vor die Anzahl aktiver Streams.
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!