Powered by Invision Power Board


  
 
Reply to this topicStart new topicStart Poll

> Aufnahmen mit VDR-CheckTS auf Fehler prüfen, Ausgabe auf OSD und auch per E-Mail
globber
Geschrieben am: Donnerstag, 04.Dezember 2014, 17:42 Uhr
Quote Post


Professional
****

Gruppe: Supporter
Beiträge: 1008
Mitgliedsnummer.: 1783
Mitglied seit: 2007-03-24



Moin,

ich nutze schon seit Längerem das Progamm "vdr-checkts" um Aufnahmen auf Fehler zu prüfen. Selbstverständlich ist das nicht für jeden und jede Aufnahme nötig, aber ich wollte doch einmal der Allgemeinheit etwas zurückgeben und habe da für ein kleines Howto geschrieben, wie man das über das OSD aufrufen kann und sich das Ergebnis neben der Ausgabe auf dem Bildschirm auch per E-Mail zustellen kann.

Sicher ist das Ganze technisch verbesserungswürdig. Daher sind Vorschläge willkommen.

Folgendes ist zu tun

1. vdr-checkts installieren
2. Den Aufruf de Scriptes in das OSD zu integrieren
3. Das Script nach /_config/bin zu kopieren
4. Ggf. den MTA zu konfigurieren


1. vdr-checkts installieren falls noch nicht geschehen
Testet bitte mit
CODE
which vdr-checkts
/usr/local/bin/vdr-checkts


Falls die Ausgabe mitteilt, dass vdr-checkts nicht verfügbar ist:
CODE
git clone git://projects.vdr-developer.org/vdr-checkts.git /usr/local/bin/vdr-checkts
cd /usr/local/bin/vdr-checkts
make


Testet danach einfach mit einem Aufruf des Programms:
CODE
vdr-checkts
Usage: vdr-checkts [OPTIONS] RECORDING_DIR

 -m errors, --max-errors=ERROR Stop scanning if error count reaches ERROR
 -h,        --help             print this help and exit


2. Den Aufruf des Scriptes in das OSD integrieren

- VDR stoppen
CODE
stp vdr


- Mit folgendem Code den Aufruf in der Datei "/etc/vdr/reccmds/g2v" eintragen
CODE

echo "Aufnahme auf Fehler pruefen?  : screen -S checkts -dm /_config/bin/rec_checkts.sh" >> /etc/vdr/reccmds/g2v


- VDR wieder starten
CODE
stt vdr


3. Den Scriptcode in eine Datei "/_config/bin/rec_checkts.sh" kopieren


Bei Nutzung von msmtp ist die Variable RECIPIENT ist nach der persönlichen E-Mail Adresse anzupassen!

CODE

#!/bin/bash
#
# Teste die Aufnahme auf Fehler mit vdr-checkts und gib eine Meldung
# auf dem TV aus

# PATH von vdr-checkts
PATH_CHECKTS=/usr/local/bin/vdr-checkts
#PATH_CHECKTS=/usr/local/bin/vdr-checkts/vdr-checkts
#Aufnahmepfad
VID_DIR="${1%}"
# Nur Titel:
TITLE=$(echo $VID_DIR|rev|cut -d/ -f3|rev|sed 's/_/ /g')
SUBTITLE=$(echo $VID_DIR|rev|cut -d/ -f2|rev|sed 's/_/ /g')
# Aufnahmezeit
HOUR=$(echo $VID_DIR|rev| cut -d- -f2|rev|cut -d. -f2)
MINUTE=$(echo $VID_DIR|rev|cut -d- -f2|rev|cut -d. -f3)
YEAR=$(echo $VID_DIR|rev|cut -d/ -f1|rev|cut -d. -f1|cut -d- -f1)
MONTH=$(echo $VID_DIR|rev|cut -d/ -f1|rev|cut -d. -f1|cut -d- -f2)
DAY=$(echo $VID_DIR|rev|cut -d/ -f1|rev|cut -d. -f1|cut -d- -f3)

TEMP=$($PATH_CHECKTS $VID_DIR)
ERRORS=$(echo $TEMP | cut -d':' -f2|sed 's/ //g')

/usr/bin/svdrpsend MESG "Die Aufnahme $SUBTITLE enthaelt $ERRORS Fehler"

# Mail versenden mit ssmtp --> Gen2VDR V5 default
# RECIPIENT=<USER@DOMAIN>

if [ "$TITLE" = "video" ]; then
 echo -e "Subject: VDR-CheckTS Report\n\nDie Aufnahme \"$SUBTITLE\" vom \
$DAY.$MONTH.$YEAR um $HOUR:$MINUTE Uhr hat $ERRORS Fehler" \
 |ssmtp  $RECIPIENT
else
 echo -e  "Subject: VDR-CheckTS Report\n\nDie Aufnahme \"$TITLE\" - \"$SUBTITLE\" \
vom $DAY.$MONTH.$YEAR um $HOUR:$MINUTE Uhr hat $ERRORS Fehler" \
 |ssmtp $RECIPIENT
fi

# Mail versenden mit msmtp
#if [ "$TITLE" = "video" ]; then
#  echo -e "Subject:VDR-CheckTS Report\r\n\r\nDie Aufnahme \"$SUBTITLE\" vom  \
#  DAY.$MONTH.$YEAR um $HOUR:$MINUTE Uhr hat $ERRORS Fehler" \
#  |msmtp -f $RECIPIENT -t $RECIPIENT
#else
#  echo -e "Subject:VDR-CheckTS Report\r\n\r\nDie Aufnahme \"$TITLE\" - \"$SUBTITLE\" \
# vom $DAY.$MONTH.$YEAR um $HOUR:$MINUTE Uhr hat $ERRORS Fehler" \
#  |msmtp -f $RECIPIENT -t $RECIPIENT
#fi
exit 0


4. Ggf. den MTA konfigurieren

Eine Benachrichtigung über E-Mail ist möglich. Dazu muss der integrierte MTA nur entsprechend konfiguriert werden, falls nicht schon für andere Zwecke getan.

Die V5 hat "ssmtp" als default und daher ist das Script darauf ausgerichtet. Bei der V4 war es IMHO "nullmailer" der aber nicht gut mit den meisten Providern als Relayserver funktioniert. Daher sollte man da evtl. msmtp installieren. Dann muss man im Script ssmtp auskommentieren und enstsprechend beim msmtp Bereich die Hashes entfernen. (siehe Punkt 3)

Die persönlichen Zugangsdaten sind in den Konfigdateien natürlich selbst einzutragen ;)

SSMTP:

Zwei Dateien sind zu konfigurieren. Beide liegen unter /etc/ssmtp.
Hier geschieht dies am Beispiel von GMX. Andere Provider müsst Ihr mal ergooglen.

CODE

cat /etc/ssmtp/revaliases
# sSMTP aliases
#
# Format:local_account:outgoing_address:mailhub
#
# Example: root:your_login@your.domain:mailhub.your.domain[:port]
# where [:port] is an optional port number that defaults to 25.
#
root:<USER>@gmx.de:mail.gmx.net:587
vdr:<USER>@gmx.de:mail.gmx.net:587
[/CODE)

[CODE]
cat /etc/ssmtp/ssmtp.conf
#
# /etc/ssmtp.conf -- a config file for sSMTP sendmail.
#

# The person who gets all mail for userids < MinUserId
# Make this empty to disable rewriting.
root=postmaster

# All mail delivered to userid >= MinUserId goes to user, not root.
#MinUserId=1000

# The place where the mail goes. The actual machine name is required
# no MX records are consulted. Commonly mailhosts are named mail.domain.com
# The example will fit if you are in domain.com and your mailhub is so named.
#mailhub=mail

# Example for SMTP port number 2525
# mailhub=mail.your.domain:2525
# Example for SMTP port number 25 (Standard/RFC)
# mailhub=mail.your.domain        
# Example for SSL encrypted connection
# mailhub=mail.your.domain:465

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname

# Gentoo bug #47562
# Commenting the following line will force ssmtp to figure
# out the hostname itself.

# hostname=_HOSTNAME_

# Set this to never rewrite the "From:" line (unless not given) and to
# use that address in the "from line" of the envelope.
#FromLineOverride=YES

# Use SSL/TLS to send secure messages to server.
#UseTLS=YES

# Use SSL/TLS certificate to authenticate against smtp host.
#UseTLSCert=YES

# Use this RSA certificate.
#TLSCert=/etc/ssl/certs/ssmtp.pem

# Get enhanced (*really* enhanced) debugging information in the logs
# If you want to have debugging of the config file parsing, move this option
# to the top of the config file and uncomment
#Debug=YES
#

#GMX.net

root=<USER>@gmx.de
mailhub=mail.gmx.net:587
rewriteDomain=gmx.net
hostname=gmx.net  
UseSTARTTLS=YES
#UseTLS=YES
AuthUser=<USER>@gmx.de
AuthPass=<PASS>
FromLineOverride=YES



MSMTP:

Nullmailer (oder ssmtp) deinstallieren und msmtp installieren
CODE

emerge -C mail-mta/nullmailer
emerge -av mail-mta/msmtp


Hier ist nur eine Datei zu editieren "/etc/msmtprc"

CODE

cat /etc/msmtprc
# Example for a system wide configuration file

# A system wide configuration file is optional.
# If it exists, it usually defines a default account.
# This allows msmtp to be used like /usr/sbin/sendmail.
#account default

# The SMTP smarthost.
#host mailhub.oursite.example

# Construct envelope-from addresses of the form "user@oursite.example".
#auto_from on
maildomain gmx.net
#
account gmx
host mail.gmx.net
port 587
from <USER>@gmx.de
auth on
user <USER>@gmx.de
password <PASS>

# Use TLS.
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
# oder
#tls_starttls on

# Syslog logging with facility LOG_MAIL instead of the default LOG_USER.
syslog LOG_MAIL


5. Konfigdateien (etwas) sichern

Da die Dateien das Passwort für Euren Mailaccount im Klartext enthalten, gibt es hier ein Risiko, das man etwas abmildern kann, wenn man die Dateien im Zugriff beschränkt. Sicher ist aber etwas anderes ;)

Macht hierzu:

CODE

chmod 600 /etc/msmtprc

bzw.
CODE

chmod -R 600 /etc/ssmtp


Ich hoffe es ist ein sinnvoller Tipp und einigermaßen verständlich beschrieben.

Regards
Globber

angehängte Datei ( Anzahl der Downloads: 100 )
angehängte Datei  rec_checkts
Email PosterICQ
Top
globber
Geschrieben am: Donnerstag, 04.Dezember 2014, 20:22 Uhr
Quote Post


Professional
****

Gruppe: Supporter
Beiträge: 1008
Mitgliedsnummer.: 1783
Mitglied seit: 2007-03-24



EDIT: Ich musste noch mal etwas die Art und Weise wie ich den Code hier gepostet hatte, überarbeiten.

Mein "cat > testdatei << EOF ...EOF" hat mir leider alle Variablen im Code geschrottet ;)

So ist es dann eben nur ein Cut & Paste, aber das kriegt Ihr ja locker hin ;)

Also wer auf Fehler gestoßen ist,... noch mal probieren. Jetzt sollte es so funktionieren.

Regards
Globber
Email PosterICQ
Top
bbott
Geschrieben am: Sonntag, 07.Dezember 2014, 11:46 Uhr
Quote Post


Professional
****

Gruppe: G2V3+User
Beiträge: 1034
Mitgliedsnummer.: 10935
Mitglied seit: 2009-07-24



Ich hätte ein paar Fragen:
1. Muss man den VDR wirklich beenden, um die Streams zu überprüfen??
2. Werden Korrigierte Dateien nur angelegt wenn Fehler gefunden wurden?
3. Ist die Korrektur qualitativ mit projectX vergleichbar?

Email Poster
Top
globber
Geschrieben am: Montag, 08.Dezember 2014, 07:10 Uhr
Quote Post


Professional
****

Gruppe: Supporter
Beiträge: 1008
Mitgliedsnummer.: 1783
Mitglied seit: 2007-03-24



Moin,

-Du musst den VDR nicht abschalten. Einfach per OSD aufrufen und gut.

- korigiert wird gar nichts. Es werden nur Fehler in den Aufnahmen hochgezählt und per OSD ausgegeben.

Interessant ist das insbesondere für Aufnahmen, bei denen man vor hat, die aufzubewahren oder falls es noch eine Wiederholung gibt und man daher noch mal aufnehmen kann. Dann ist man nicht gezwungen, sich die Aufnahme gleich anzusehen, sondern kann sie einfach mit dem Tool checken.

Wie kamst Du denn auf die Korrektur?

QUOTE
vdr-checkts
===========

Copyright 2011 Tobias Grimm <vdr@e-tobi.net>

vdr-checkts is released under the terms of the BSD License - see COPYRIGHT


What's this about?
------------------

vdr-checkts parses VDR recordings (only TS-recordings / vdr 1.7.x) and
records any discontinuities in the transport stream by checking the
continuity counter.

Ideally there will be no discontinuities and vdr-checkts returns with
exit code 0. If continuity errors were found it returns with exit code 1
and prints the number of errors.


How to use?
-----------

Usage: vdr-checkts [OPTIONS] RECORDING_DIR

  -m errors, --max-errors=ERROR Stop scanning if error count reaches ERROR
  -h,        --help             print this help and exit


What else?
----------

I've also include a patch for VDR 1.7.21 which will make VDR check for
continuity errors while recording.

The number of continuity errors is written to the info file in the field
tagged with 'R'.


Regards
Globber
Email PosterICQ
Top
HelAu
Geschrieben am: Montag, 08.Dezember 2014, 08:21 Uhr
Quote Post


Scheffe
****

Gruppe: Admin
Beiträge: 11285
Mitgliedsnummer.: 2
Mitglied seit: 2003-04-25



Ich werde das dann einbauen, und so abaendern dass nur beim Auftreten von Fehlern eine Mail versendet wird :)
Email PosterUsers WebsiteICQAOLYahoo
Top
globber
Geschrieben am: Montag, 08.Dezember 2014, 09:52 Uhr
Quote Post


Professional
****

Gruppe: Supporter
Beiträge: 1008
Mitgliedsnummer.: 1783
Mitglied seit: 2007-03-24



Moin Helmut,

das ist nett :)
Du willst dann IMHO wohl die Variante mit dem Patch von hier einbauen?

Ich kann aber bisher nichts zu der Systembelastung, insbesondere bei kleineren Maschinen, sagen, da ich die Hintergrundscan-Variante nie probiert habe.
Könnte eventuell bei vielen gleichzeitigen Aufnahmen ein Problem werden?

Soll ich trotzdem noch einen Feature Request aufmachen?

Regards
Globber
Email PosterICQ
Top
globber
Geschrieben am: Montag, 08.Dezember 2014, 17:59 Uhr
Quote Post


Professional
****

Gruppe: Supporter
Beiträge: 1008
Mitgliedsnummer.: 1783
Mitglied seit: 2007-03-24



Ich habe gerade mal den Patch auf den VDR angewendet (muss etwas angepasst werden bevor er durchläuft) und eine Aufnahme gestartet. Tatsächlich wird ohne weiteres Dazutun automatisch gescannt und die Fehleranzahl in der info-Datei eingetragen.

Belastung habe ich jetzt noch nicht getestet.

Das würde es vielleicht noch etwas vereinfachen, in jedem Fall aber beschleunigen, die OSD Ausgabe über die Fehler zu bekommen.

Um aber dann geschnittene Filme noch einmal überprüfen zu lassen, wäre IMHO die Ausführung, wie von mir beschrieben, in jedem Fall nocht ratsam.

Regards
Globber
Email PosterICQ
Top
bbott
Geschrieben am: Montag, 08.Dezember 2014, 23:19 Uhr
Quote Post


Professional
****

Gruppe: G2V3+User
Beiträge: 1034
Mitgliedsnummer.: 10935
Mitglied seit: 2009-07-24



Könnte man dem Ordner die Anzahl der Fehler hinzufügen oder ähnliches? Weil per Mail finde ich eher unpraktisch.
Email Poster
Top
HelAu
Geschrieben am: Montag, 08.Dezember 2014, 23:49 Uhr
Quote Post


Scheffe
****

Gruppe: Admin
Beiträge: 11285
Mitgliedsnummer.: 2
Mitglied seit: 2003-04-25



Richtig sinnvoll waere es mMn aber erst dann wenn die Fehler markiert werden. Dann kann man entscheiden ob einen die Fehler wirklich stoeren ...
Email PosterUsers WebsiteICQAOLYahoo
Top
globber
Geschrieben am: Dienstag, 09.Dezember 2014, 08:14 Uhr
Quote Post


Professional
****

Gruppe: Supporter
Beiträge: 1008
Mitgliedsnummer.: 1783
Mitglied seit: 2007-03-24



Moin,
teilweise sind die "Fehler" ja auch erst am Ende der Aufnahme bei plötzlichen Bild- oder Tonwechseln oder es handelt sich um Schnittmarken. Das hat alles mit der Art und Weise zu tun, mit der vdr-checkts arbeitet.

Grundsätzlich ist das Tool auch nur ein Indikator für korrekte oder nicht korrekte Aufnahmen. Nicht mehr und nicht weniger.

@Bbott: Da der Eintrag als "R" Eintrag im Info-File steckt (wenn man den Patch verwendet), ist das Hinzufügen eines weiteren Files im Ordner IMHO nicht nötig.

Der Befehl im Recordingmenü kann bei (etwas modifiziert) jederzeit ohne Verzögerung die Anzahl der Fehler aus dem Info-File auslesen und im OSD ausgeben.

Meiner Erfahrung nach sind geschnittene Aufnahmen mit 0-2 Fehlern im Grunde als fehlerfrei anzusehen und mit mehr als 5 Fehlern nicht mehr . Ich schaue aber meistens Sky oder Öffentlich Rechtlich und habe daher keine Werbung zwischendrin zu berücksichtigen.

Schnitte in eine Aufnahme der Privaten könnten da ggf. das Ergebnis verfälschen.

Ich verwende es mit großer Zufriedenheit bei potentiellen Kandidaten für das "Datengrab". Bei einer Fehlerzahl größer 2 sehe ich zu eine weitere Aufnahem zu ergattern, wenn es Wiederholungen gibt. Ansonsten schneide ich und checke dann erneut. Wenn dann die Fehler bei max. 2 liegen habe ich bisher noch keine Enttäuschung erlebt.

Meine Interpretationen sind die:
Für eine Aufnahme, die nach der Ansicht sowieso wieder gelöscht wird, sind für mich auch Fehlerzahlen von <10 uninteressant. Bei Fehlern, die in die Tausende gehen (bei Wetterschwankungen oder kurzen Störungen geht das RuckZuck) hat sich das Ansehen erledigt.

Regards
Globber
Email PosterICQ
Top
globber
Geschrieben am: Mittwoch, 24.Dezember 2014, 09:57 Uhr
Quote Post


Professional
****

Gruppe: Supporter
Beiträge: 1008
Mitgliedsnummer.: 1783
Mitglied seit: 2007-03-24



Moin,

und frohe Weihnachten für alle :)

Ich habe ein kleines Scriptproblem. Ich habe mein Script etwas abegändert und wollte erst einmal checken, ob in dem info-File zu der Aufnahme ein "R"-Eintrag von VDR-checkts vorhanden ist. Falls ja, soll einfach schnell dieser ausgegeben werden.

Andernfalls ist VDR-checkts (noch) nicht gelaufen und soll gestartet werden.

Zusätzlich möchte ich für die E-Mail den Titel "T" und Genre/Untertitel "S" ebenfalls aus dem info-File nehmen.

Auf der Kommandozeile funktioniert das alles auch wunderbar, nur aus dem OSD heraus werden die Werte aus der Abfrage der Textdatei info nicht erfolgreich übergeben.

Die Felder sind dann immer leer. :huh:

CODE
evi ~ # cat /_config/bin/rec_checkts.sh

#!/bin/bash
#
# Teste die Aufnahme auf Fehler mit vdr-checkts und gib eine Meldung
# auf dem TV aus

# PATH von vdr-checkts
PATH_CHECKTS=/usr/local/bin/vdr-checkts
#Aufnahmepfad
VID_DIR="${1%}"
# Nur Titel:
TITLE=$(grep ^T $VID_DIR"info"|sed 's/^T/ /g')
#TITLE=$(echo $VID_DIR|rev|cut -d/ -f4|rev|sed 's/_/ /g')
#SUBTITLE=$(echo $VID_DIR|rev|cut -d/ -f3|rev|sed 's/_/ /g')
SUBTITLE=$(grep ^S $VID_DIR"info"sed 's/^S/ /g')
#SUBTITLE=$(echo $VID_DIR|rev|cut -d/ -f3|rev|sed 's/_/ /g')
# Aufnahmezeit
HOUR=$(echo $VID_DIR|rev| cut -d- -f2|rev|cut -d. -f2)
MINUTE=$(echo $VID_DIR|rev|cut -d- -f2|rev|cut -d. -f3)
YEAR=$(echo $VID_DIR|rev|cut -d/ -f2|cut -d- -f4|rev)
MONTH=$(echo $VID_DIR|rev|cut -d/ -f2|cut -d. -f3|rev)
DAY=$(echo $VID_DIR|rev|cut -d/ -f2|cut -d- -f2|cut -d. -f4|rev)

# Suche nach "R" Eintrag in info File der Aufnahme
# und filtere Fehlerzahl heraus, falls Eintrag vorhanden
# oder pruefe direkt
grep ^R $VID_DIR"info"
i=$?
if [ "$i" = "1" ]; then
 echo "check"
 TEMP=$($PATH_CHECKTS $VID_DIR)
 ERRORS=$(echo $TEMP|cut -d':' -f2|sed 's/ //g')
 /usr/bin/svdrpsend MESG "Die Aufnahme $TITLE enthaelt $ERRORS Fehler"
else
 echo "info"
 sleep 5
 ERRORS=$(cat $VID_DIR"info"|grep ^R|cut -d' ' -f2)
 /usr/bin/svdrpsend MESG "Die Aufnahme $SUBTITLE enthaelt $ERRORS Fehler"
fi

# Mail versenden mit ssmtp --> Gen2VDR V5 default

RECIPIENT=<USER@gmx.de> # Empfaenger
V=                          # "-v" falls bei ssmtp verbose auf CLI gewuenscht. Ansonsten leer lassen

if [ "$TITLE" = "video" ]; then
echo -e "Subject: VDR-CheckTS Report\n\nDie Aufnahme \"$SUBTITLE\" vom \
$DAY.$MONTH.$YEAR um $HOUR:$MINUTE Uhr hat $ERRORS Fehler" \
|ssmtp $V $RECIPIENT
else
echo -e  "Subject: VDR-CheckTS Report\n\nDie Aufnahme \"$TITLE\" - \"$SUBTITLE\" \
vom $DAY.$MONTH.$YEAR um $HOUR:$MINUTE Uhr hat $ERRORS Fehler" \
|ssmtp $V $RECIPIENT
fi

# Mail versenden mit msmtp
#if [ "$TITLE" = "video" ]; then
#  echo -e "Subject:VDR-CheckTS Report\r\n\r\nDie Aufnahme \"$SUBTITLE\" vom  \
#  DAY.$MONTH.$YEAR um $HOUR:$MINUTE Uhr hat $ERRORS Fehler" \
#  |msmtp -f $RECIPIENT -t $RECIPIENT
#else
#  echo -e "Subject:VDR-CheckTS Report\r\n\r\nDie Aufnahme \"$TITLE\" - \"$SUBTITLE\" \
# vom $DAY.$MONTH.$YEAR um $HOUR:$MINUTE Uhr hat $ERRORS Fehler" \
#  |msmtp -f $RECIPIENT -t $RECIPIENT
#fi
exit 0


Regards
Globber
Email PosterICQ
Top
bbott
Geschrieben am: Mittwoch, 24.Dezember 2014, 11:20 Uhr
Quote Post


Professional
****

Gruppe: G2V3+User
Beiträge: 1034
Mitgliedsnummer.: 10935
Mitglied seit: 2009-07-24



@globber

Ich glaube du hast mich falsch verstanden. Ich meinte das man auch fehlerhaft Aufnahmen erkennt ohne ins OSD zu schauen, indem z. B. fehlerhafte Aufnahmen in ein extra Verzeichnis verschoben werden. Sozusagen eine Vorsortierung welche Aufnahmen fehlerhaft sein könnte, es kann ja sein das z. B. ganz viele Fehler während einer Werbepause auftreten.
Email Poster
Top
globber
Geschrieben am: Mittwoch, 24.Dezember 2014, 13:59 Uhr
Quote Post


Professional
****

Gruppe: Supporter
Beiträge: 1008
Mitgliedsnummer.: 1783
Mitglied seit: 2007-03-24



Moin,

das ließe sich ja mit einer Erweiterung des Scripts erschlagen. Aufnahmen mit einem fest definierten Fehlerwert (bspw. >10) werden in ein entsprechendes Verzeichnis verschoben.

Oder verstehe ich es immer noch falsch?

Regards
Globber
Email PosterICQ
Top
globber
Geschrieben am: Donnerstag, 25.Dezember 2014, 14:05 Uhr
Quote Post


Professional
****

Gruppe: Supporter
Beiträge: 1008
Mitgliedsnummer.: 1783
Mitglied seit: 2007-03-24



Moin,

hier ist (Dank an Helmut :) ) ein verbessertes Script. Ich habe (bei mir im System) lediglich den Titel/Untertitel in der OSD Ausgabe entfernt, da dann bei langen Titeln der wesentliche Teil mit den Fehlern nicht mehr angezeigt werden kann.

CODE


#!/bin/bash
#
# Teste die Aufnahme auf Fehler mit vdr-checkts und gib eine Meldung
# auf dem TV aus

logger -s "$@"
# PATH von vdr-checkts
PATH_CHECKTS=/usr/local/bin/vdr-checkts
#Aufnahmepfad
VID_DIR="${1%/}"
# Nur Titel:
TITLE=$(grep "^T" "${VID_DIR}/info" | sed -e "s/^T/ /g")
SUBTITLE=$(grep "^S" "${VID_DIR}/info" | sed -e "s/^S/ /g")
# Aufnahmezeit
START_TIME=${VID_DIR##*/}
HOUR=${START_TIME:11:2}
MINUTE=${START_TIME:14:2}
YEAR=${START_TIME:0:4}
MONTH=${START_TIME:5:2}
DAY=${START_TIME:8:2}

# Suche nach "R" Eintrag in info File der Aufnahme
# und filtere Fehlerzahl heraus, falls Eintrag vorhanden
# oder pruefe direkt
ERRORS=$(grep "^R" "${VID_DIR}/info" | cut -d" " -f2)
if [ "$ERRORS" == "" ]; then
  echo "check"
  ERRORS="$($PATH_CHECKTS "$VID_DIR" | cut -d':' -f2 | sed 's/ //g')"
  echo "R $ERRORS" >> "${VID_DIR}/info"
else
  echo "info"
  sleep 5
fi
/usr/bin/svdrpsend MESG "Die Aufnahme $SUBTITLE enthaelt $ERRORS Fehler"

# Mail versenden mit ssmtp --> Gen2VDR V5 default

RECIPIENT="<USER@gmx.de>" # Empfaenger
V=""                     # "-v" falls bei ssmtp verbose auf CLI gewuenscht. Ansonsten leer lassen

if [ "$TITLE" = "video" ]; then
  MT="$SUBTITLE"
else
  MT="$TITLE - $SUBTITLE"
fi
echo -e "Subject: VDR-CheckTS Report\n\nDie Aufnahme \"$MT\" vom \
$DAY.$MONTH.$YEAR um $HOUR:$MINUTE Uhr hat $ERRORS Fehler" \
|ssmtp $V "$RECIPIENT"

# Mail versenden mit msmtp
#if [ "$TITLE" = "video" ]; then
#  echo -e "Subject:VDR-CheckTS Report\r\n\r\nDie Aufnahme \"$SUBTITLE\" vom  \
#  DAY.$MONTH.$YEAR um $HOUR:$MINUTE Uhr hat $ERRORS Fehler" \
#  |msmtp -f $RECIPIENT -t $RECIPIENT
#else
#  echo -e "Subject:VDR-CheckTS Report\r\n\r\nDie Aufnahme \"$TITLE\" - \"$SUBTITLE\" \
# vom $DAY.$MONTH.$YEAR um $HOUR:$MINUTE Uhr hat $ERRORS Fehler" \
#  |msmtp -f $RECIPIENT -t $RECIPIENT
#fi
exit 0


So scheint es mir aber perfekt für den allgemeinen Gebrauch zu sein.

Ggf. kann man noch die von bbot angeregte Ergänzung einpflegen, dass die Aufnahme bei zu vielen Fehlern verschoben wird.

Der "R" Eintrag ist natürlich nur mit dem VDR-Patch und bei danach erfolgten Aufnahmen in Aufnahmen in der info-Datei enthalten.

Regards
Globber
Email PosterICQ
Top
globber
Geschrieben am: Samstag, 27.Dezember 2014, 20:32 Uhr
Quote Post


Professional
****

Gruppe: Supporter
Beiträge: 1008
Mitgliedsnummer.: 1783
Mitglied seit: 2007-03-24



Moin,

ich habe mir gedacht, dass es noch ganz hilfreich wäre im OSD-Menü die Möglichkeit zu haben, einen bereits vorhandenen "R"-Eintrag zu löschen.

Mit diesem Script unter /_config/bin/ und einem entsprechenden Eintrag in der /etc/VDR/reccmds/g2v
ist das auch erledigt.

CODE

#!/bin/sh

#Aufnahmepfad
VID_DIR="${1%/}"
# "R" Eintrag löschen
sed -i '/^R/d' ${VID_DIR}/info


/etc/vdr/reccmds/g2v:
CODE

"R"-Eintrag der Aufnahme loeschen: /_config/bin/rec_delete_R-Eintrag.sh


Zudem habe ich noch eine Zeile in dem Script einen Beitrag höher eingepflegt, die das Ergebnis des Checks als "R"-Eintrag am Ende des info-Files anhängt, falls es noch keinen solchen gab.

Regards
Globber
Email PosterICQ
Top
bbott
Geschrieben am: Sonntag, 28.Dezember 2014, 14:34 Uhr
Quote Post


Professional
****

Gruppe: G2V3+User
Beiträge: 1034
Mitgliedsnummer.: 10935
Mitglied seit: 2009-07-24



QUOTE (globber @ Mittwoch, 24.Dezember 2014, 14:59 Uhr)
Moin,

das ließe sich ja mit einer Erweiterung des Scripts erschlagen. Aufnahmen mit einem fest definierten Fehlerwert (bspw. >10) werden in ein entsprechendes Verzeichnis verschoben.

Oder verstehe ich es immer noch falsch?

Regards
Globber

Ja, so meinte ich das. Ich nutze den VDR z. Z. eher als Recorder + Streaming, also komplett ohne OSD etc., deswegen wäre so etwas wie in einen anderen Ordner verschieben hilfreich.

Vllt. habt Ihr ja eine bessere Idee.
Email Poster
Top
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 Anonyme Benutzer)
0 Mitglieder:

Topic Options Reply to this topicStart new topicStart Poll