video data stream broken - mit Shell-Skript aufzeichnende Karte ermitteln

  • In letzter Zeit erhalte ich bei Aufzeichnungen ziemlich oft die Meldung "ERROR: video data stream broken". Auf meinem Server läuft VDR 2.2.0 unter Debian stretch, an der Hardware habe ich lange nichts geändert. Da das Problem bei allen möglichen Sendern auftritt, würde ich gerne überprüfen, welche der DVB-C Karten zur Aufzeichnung benutzt wird. Vielleicht gibt eine den Geist auf. Ich habe bereits einen Recording Hook eingerichtet, der bei Beginn einer Aufzeichnung eine Benachrichtigung verschickt. Gib es eine elegante Methode, in diesem Bash-Skript zu ermitteln, welche Karte zur Aufzeichnung benutzt wird? Oder bleibt mir nur die mühsame Analyse von Log-Einträgen?

  • Bei mir passiert das gleiche gerade über SAT (habe ein eigenes Thema dafür aufgemacht). Das kann aber nicht sein, dass sich da was bei den Sendern geändert hat und jetzt alle VDRs ausfallen, oder? ... ;)

  • Gib es eine elegante Methode, in diesem Bash-Skript zu ermitteln, welche Karte zur Aufzeichnung benutzt wird? Oder bleibt mir nur die mühsame Analyse von Log-Einträgen?

    Man könnte z.B. das vdr-plugin-devstatus fragen: svdrpsend PLUG devstatus DEVSTAT - die Sourcen mit dem Stand für den VDR 2.2.0 könntest du dir z.B. aus https://launchpad.net/~yavdr/+…37/+listing-archive-extra holen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Man könnte z.B. das vdr-plugin-devstatus fragen: svdrpsend PLUG devstatus DEVSTAT - die Sourcen mit dem Stand für den VDR 2.2.0 könntest du dir z.B. aus https://launchpad.net/~yavdr/+…37/+listing-archive-extra holen.

    Ja danke, gute Idee! Das Plugin läuft auf dem Server sogar schon. Das Gerät und die Anzahl der Aufzeichnungen auf dem Gerät ermittle ich jetzt mit

    Code
    device=$(svdrpsend PLUG devstatus DEVSTAT | awk '/--- [[:alpha:]]+ [[:digit:]]+ ---/ { gsub(/.+-  --- | ---:\r$/, ""); dev=$0 }; /'"$folder"'/ { print dev }')
    number=$(svdrpsend PLUG devstatus RECNUMBER | awk '/'"$device"'/ { sub(/\r/, ""); print $NF }')

    folder ist das Verzeichnis der Aufzeichnung. Verbesserungsvorschläge sind natürlich willkommen. Der Wert von device ist dann z.B. "Gerät 1"


    Der nächste Schritt sollte sein herauszufinden, welche DVB-Karte "Gerät 1" ist. Wie kann ich das bewerkstelligen? Und ist die Nummerierung der Geräte in VDR stabil, d.h. ist "Gerät 1" nach jedem Neustart des Rechners wieder "Gerät 1"?

  • Zur Behandlung von Zeichen im Namen des Verzeichnisses, die den regulären Ausdruck verfälschen:

    Code
    device=$(svdrpsend PLUG devstatus DEVSTAT |
             awk 'BEGIN { pat = "'"$folder"'"; gsub(/[\\.^$(){}\[\]|*+?]/, "\\\\&", pat) };
                  /--- [[:alpha:]]+ [[:digit:]]+ ---/ { gsub(/.+-  --- | ---:\r$/, ""); dev = $0 };
                  $0 ~ pat { print dev }')

Jetzt mitmachen!

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