Reccmds.conf

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Beschreibung)
 
(16 dazwischenliegende Versionen von 12 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
In der reccmds.conf können Commands angelegt werden, die über das Menü im OSD des VDR erreicht und gestartet werden können. Die in der reccmds.conf definierten Befehle werden angezeigt, wenn man sich in der Liste des Aufzeichnungen im OSD des VDR befindet und sich auf einem Filmnamen positioniert hat und dann die rote Taste der Fernbedienung gedrückt hat. Nun kann man den gewünschten Befehl auswählen und starten.
+
==Beschreibung==
 +
In der '''reccmds.conf''' können Commands angelegt werden, die über das Menü im [[OSD]] des VDR erreicht und gestartet werden können. Die in der '''reccmds.conf''' definierten Befehle werden angezeigt, wenn man sich in der Liste des Aufzeichnungen im OSD des VDR befindet und sich auf einem Filmnamen positioniert hat und dann {{Button rot|Befehle}} der Fernbedienung gedrückt hat. Nun kann man den gewünschten Befehl auswählen und starten. Die Befehle sollten durch Drücken ihrer Nummer gestartet werden, drücken auf OK scheint nicht immer zu funktionieren.
 +
 
 +
Die Befehle werden mit dem Verzeihnisnamen der jeweiligen Aufnahme als Argument ausgeführt. Der Befehlsaufruf wird in die syslog Datei geschrieben (/var/log/messages), z.B.:
 +
 
 +
Dec 21 19:38:25 linux vdr: [3555] executing command '/usr/local/bin/test.sh "/video/Der_Grand_Canyon/2007-03-14.21:10.50.99.rec"'
 +
 
 +
 
 +
 
 +
Diese Datei befindet sich in '''[[Struktur|$VDRCONFIG]]'''.
 +
 
 +
==Beispiele==
 +
{{Box Datei | [[Struktur|$VDRCONFIG]]/reccmds.conf |
 +
<pre>
 +
DivX-Menue                      : echo "nothing (vdr2divx)"
 +
-Zu DivX-Liste hinzufuegen      : /usr/bin/ins.sh vdr2divx
 +
-Von DivX-Liste entfernen?      : /usr/bin/del.sh vdr2divx
 +
-DivX-Liste abarbeiten?        : printf "\n" >> /var/spool/vdrconvert/vdr2divx
 +
-DivX-Liste anzeigen            : /usr/bin/cap.sh /var/spool/vdrconvert/vdr2divx
 +
DVD-Menue                      : echo "nothing (vdr2dvd)"
 +
-Zu DVD-Liste hinzufuegen      : /usr/bin/ins.sh vdr2dvd
 +
-Von DVD-Liste entfernen?      : /usr/bin/del.sh vdr2dvd
 +
-DVD-Liste abarbeiten?          : printf "\n" >> /var/spool/vdrconvert/vdr2dvd
 +
-DVD-Liste anzeigen            : /usr/bin/cap.sh /var/spool/vdrconvert/vdr2dvd
 +
-Bild fuer DVD-Hauptmenue      : /usr/bin/grab.sh "background.pnm" vdr2dvd
 +
-Bild fuer DVD-Untermenue      : /usr/bin/grab.sh "subbackground.pnm" vdr2dvd
 +
-DVD-Link setzen (Vorschau)    : /usr/bin/preview.sh vdr2dvd
 +
SVCD-Menue                      : echo "nothing (vdr2svcd)"
 +
-Zu SVCD-Liste hinzufuegen      : /usr/bin/ins.sh vdr2svcd
 +
-Von SVCD-Liste entfernen?      : /usr/bin/del.sh vdr2svcd
 +
-SVCD-Liste abarbeiten?        : printf "\n" >> /var/spool/vdrconvert/vdr2svcd
 +
-SVCD-Liste anzeigen            : /usr/bin/cap.sh /var/spool/vdrconvert/vdr2svcd
 +
VCD-Menue                      : echo "nothing (vdr2vcd)"
 +
-Zu VCD-Liste hinzufuegen      : /usr/bin/ins.sh vdr2vcd
 +
-VCD-Liste abarbeiten?          : printf "\n" >> /var/spool/vdrconvert/vdr2vcd
 +
-Von VCD-Liste entfernen?      : /usr/bin/del.sh vdr2vcd
 +
-VCD-Liste anzeigen            : /usr/bin/cap.sh /var/spool/vdrconvert/vdr2vcd
 +
Sonstiges                      : echo "nothing"
 +
-MPEG erstellen (sync)?        : printf "%s\n" > /var/spool/vdrconvert/vdr2mpg
 +
-MP3 erstellen?                : printf "%s\n" > /var/spool/vdrconvert/vdr2mp3
 +
-AC3 erstellen?                : printf "%s\n" > /var/spool/vdrconvert/vdr2ac3
 +
</pre>
 +
}}
 +
 
 +
==Hinweis==
 +
Da der VDR auf das Ende der Ausführung des Skiptes wartet, kann die Ausführung von Skripten mit längerer Laufzeit dazu führen, das der VDR während dieser Ausführungszeit nicht bedienbar ist und der VDR über den internen Watchdogprozess neugestartet wird. Um das zu vermeiden, muß man solche länger dauernde Skripts als Hintergrund-Prozess ausführend. Und das geht so:
 +
 
 +
Man trage in der reccmds.conf also nur den Aufruf eines neuen Shellscrpts ein. Zum Beispiel
 +
 
 +
Index neu aufbauen : /usr/bin/vdrgenindex.sh
 +
 
 +
Und man erstelle danach dieses neue Skript:
 +
 
 +
{{Box Datei | /usr/bin/vdrgenindex.sh |
 +
<pre>
 +
#!/bin/bash
 +
cd $1
 +
at now <<EOF
 +
    genindex >/dev/null
 +
    /usr/share/vdr/svdrpsend.pl MESG "Index fertig: $1"
 +
EOF
 +
</pre>
 +
}}
 +
 
 +
''at now'' ruft hier ''[[genindex]]'' im Hintergrund auf. Alle Befehle zwischen den beiden ''EOF'' werden hintereinander im Hintergrund ausgeführt. Wenn genindex fertig ist, wird also mittels [[svdrpsend.pl]] eine "Ich bin fertig"-Meldung auf den Bildschirm gechickt.
 +
 
 +
Dieselbe Technik kann man auch bei [[commands.conf]] einsetzen.
 +
 
 +
[[Kategorie:Konfigurationsdateien]]

Aktuelle Version vom 21. Dezember 2008, 19:52 Uhr

[Bearbeiten] Beschreibung

In der reccmds.conf können Commands angelegt werden, die über das Menü im OSD des VDR erreicht und gestartet werden können. Die in der reccmds.conf definierten Befehle werden angezeigt, wenn man sich in der Liste des Aufzeichnungen im OSD des VDR befindet und sich auf einem Filmnamen positioniert hat und dann
Befehle
der Fernbedienung gedrückt hat. Nun kann man den gewünschten Befehl auswählen und starten. Die Befehle sollten durch Drücken ihrer Nummer gestartet werden, drücken auf OK scheint nicht immer zu funktionieren.

Die Befehle werden mit dem Verzeihnisnamen der jeweiligen Aufnahme als Argument ausgeführt. Der Befehlsaufruf wird in die syslog Datei geschrieben (/var/log/messages), z.B.:

Dec 21 19:38:25 linux vdr: [3555] executing command '/usr/local/bin/test.sh "/video/Der_Grand_Canyon/2007-03-14.21:10.50.99.rec"'


Diese Datei befindet sich in $VDRCONFIG.

[Bearbeiten] Beispiele

Datei
$VDRCONFIG/reccmds.conf
DivX-Menue                      : echo "nothing (vdr2divx)"
-Zu DivX-Liste hinzufuegen      : /usr/bin/ins.sh vdr2divx
-Von DivX-Liste entfernen?      : /usr/bin/del.sh vdr2divx
-DivX-Liste abarbeiten?         : printf "\n" >> /var/spool/vdrconvert/vdr2divx
-DivX-Liste anzeigen            : /usr/bin/cap.sh /var/spool/vdrconvert/vdr2divx
DVD-Menue                       : echo "nothing (vdr2dvd)"
-Zu DVD-Liste hinzufuegen       : /usr/bin/ins.sh vdr2dvd
-Von DVD-Liste entfernen?       : /usr/bin/del.sh vdr2dvd
-DVD-Liste abarbeiten?          : printf "\n" >> /var/spool/vdrconvert/vdr2dvd
-DVD-Liste anzeigen             : /usr/bin/cap.sh /var/spool/vdrconvert/vdr2dvd
-Bild fuer DVD-Hauptmenue       : /usr/bin/grab.sh "background.pnm" vdr2dvd
-Bild fuer DVD-Untermenue       : /usr/bin/grab.sh "subbackground.pnm" vdr2dvd
-DVD-Link setzen (Vorschau)     : /usr/bin/preview.sh vdr2dvd
SVCD-Menue                      : echo "nothing (vdr2svcd)"
-Zu SVCD-Liste hinzufuegen      : /usr/bin/ins.sh vdr2svcd
-Von SVCD-Liste entfernen?      : /usr/bin/del.sh vdr2svcd
-SVCD-Liste abarbeiten?         : printf "\n" >> /var/spool/vdrconvert/vdr2svcd
-SVCD-Liste anzeigen            : /usr/bin/cap.sh /var/spool/vdrconvert/vdr2svcd
VCD-Menue                       : echo "nothing (vdr2vcd)"
-Zu VCD-Liste hinzufuegen       : /usr/bin/ins.sh vdr2vcd
-VCD-Liste abarbeiten?          : printf "\n" >> /var/spool/vdrconvert/vdr2vcd
-Von VCD-Liste entfernen?       : /usr/bin/del.sh vdr2vcd
-VCD-Liste anzeigen             : /usr/bin/cap.sh /var/spool/vdrconvert/vdr2vcd
Sonstiges                       : echo "nothing"
-MPEG erstellen (sync)?         : printf "%s\n" > /var/spool/vdrconvert/vdr2mpg
-MP3 erstellen?                 : printf "%s\n" > /var/spool/vdrconvert/vdr2mp3
-AC3 erstellen?                 : printf "%s\n" > /var/spool/vdrconvert/vdr2ac3


[Bearbeiten] Hinweis

Da der VDR auf das Ende der Ausführung des Skiptes wartet, kann die Ausführung von Skripten mit längerer Laufzeit dazu führen, das der VDR während dieser Ausführungszeit nicht bedienbar ist und der VDR über den internen Watchdogprozess neugestartet wird. Um das zu vermeiden, muß man solche länger dauernde Skripts als Hintergrund-Prozess ausführend. Und das geht so:

Man trage in der reccmds.conf also nur den Aufruf eines neuen Shellscrpts ein. Zum Beispiel

Index neu aufbauen : /usr/bin/vdrgenindex.sh 

Und man erstelle danach dieses neue Skript:

Datei
/usr/bin/vdrgenindex.sh
#!/bin/bash
cd $1
at now <<EOF
    genindex >/dev/null
    /usr/share/vdr/svdrpsend.pl MESG "Index fertig: $1"
EOF


at now ruft hier genindex im Hintergrund auf. Alle Befehle zwischen den beiden EOF werden hintereinander im Hintergrund ausgeführt. Wenn genindex fertig ist, wird also mittels svdrpsend.pl eine "Ich bin fertig"-Meldung auf den Bildschirm gechickt.

Dieselbe Technik kann man auch bei commands.conf einsetzen.