Ich würde gerne nach dem Schneiden die ursprüngliche Aufnahme löschen, und die geschnittene ohne das % speichern. Soweit ich das verstanden habe, kann man das im VDR nicht einstellen. Alternativ könnte man ja ein Skript verwenden, dass den Aufzeichnungsordner durchsucht, und wenn er zwei Ordner findet, deren Namen gleich sind abgesehen von dem % löscht das Skript den Ordner ohne das %. Danach wird der Ordner mit %-Zeichen entsprechend umbenannt, so dass das %-Zeichen verschwindet. Hat da schon mal jemand mit rumprobiert?
Skript um Aufnahme nach Schneiden umzubenennen und ursprüngliche zu löschen
- Gerdchen03
- Geschlossen
-
-
hi,
also rein vom ablauf würde ich das anders machen.
1.) wechsle ins video-dir
2.) suche alle verzeichnisse, die mit % beginnen
3.) entferne von dem verzeichnisnamen aus (2) das % am Anfang (substring o.ä.)
4.) suche das verzeichnis, das so heißt, wie das Ergebnis aus (3)
5.) Wenn gefunden => löschen
6.) Benenne das Verzeichnis in das Ergebnis von (3) umsomit hast du danach kein % mehr am anfang und die prüfung aus (2) schlägt beim verzeichnis auch nicht mehr zu ...
liebe grüße und viel spaß beim coden
-
Zitat
3.) entferne von dem verzeichnisnamen aus (2) das % am Anfang (substring o.ä.)
4.) suche das verzeichnis, das so heißt, wie das Ergebnis aus (3)
5.) Wenn gefunden => löschen
Die beiden Verzeichnisse liegen aber im gleichen Ordner gibt es dann nicht Konflikte wegen dem Ordnernamen? -
hi, schritt 3 passiert nur im code und wird in einer variablen gespeichert; das physische löschen passiert erst in (5)
umbenannt wird in (6) - da existiert das alte verzeichnis nicht mehr -
OK, danke. Noch einen Tip mit welchem Script-typen du das lösen würdest? Ich bin noch vollkommen am Anfang mit dem Skripten und wäre schon mal froh, wenn ich wüsste in welches Script ich mich einlesen sollte. bash?
-
hi,
am einfachsten wäre wohl bash (also shell-scripting) oder perl.
je nachdem, ob du dann weitermachen willst, kannst du auch python, java oder sonst irgendeine x-beliebige scriptsprache nehmen, die dir zusagt.
ich selbst würde es mit einem shellscript lösen, weil ich selbst noch script-anfänger bin, aber schon das ein oder andere mini-script mit der bash auf die reihe bekommen habe.
vorteil ist, dass du fast jeden befehl vorher selbst im terminal ausprobieren kannst.
und dann die befehle nur noch hintereinander ins script klatschen musstLG
-
OK, ich hab mal was versucht. Kann man sicher noch schöner lösen, aber bis auf eine Tatsache funktioniert es.
Bash
Alles anzeigen#!/bin/sh cd /video pfad=`find -L -name "%*"` #Schleife, falls pfad einen Wert hat while [ -n "$pfad" ] do datei=`basename $pfad` dir=`dirname $pfad` newdatei="${datei#?}" old=`find -L -name $newdatei` #Abfrage, ob Ursprungsverzeichnis noch da if [ -n "$old" ]; then rm -r $old fi mv $pfad $dir/$newdatei pfad=`find -L -name "%*"` done
Das einzige was nicht klappt, ist die Art wie ich find verwende. Werden mehrere Verzeichnisse gefunden, dann stehen die auch alle in der Variablen pfad. Dann klappt dirname nicht, und das ganze Skript läuft endlos durch, weil der gesuchte Ordner nicht korrekt umbenannt werden kann.
Wie kann man den Fehler noch abstellen?
-
So klappt es
Bash
Alles anzeigen#!/bin/sh cd /video #Schleife, falls pfad einen Wert hat for pfad in `find -name "%*" -print 2>/dev/null` ; do datei=`basename $pfad` dir=`dirname $pfad` newdatei="${datei#?}" old=`find -L -name $newdatei` #Abfrage, ob Ursprungsverzeichnis noch da if [ -n "$old" ]; then rm -r $old fi mv $pfad $dir/$newdatei done
-
Für alle, die es interessiert ist hier ein Skript, dass die vom VDR geschnittene Videodatei ins Videoverzeichnis kopiert, und die ursprüngliche Aufnahme löscht. Bei mir liegen die Aufnahmen in /video nach Kategorien sortiert, z.B. Komödie oder Action. Der Film wird also z.B. nach /video/Komödie kopiert und nach dem Filmtitel umbenannt.
Das Skript kann man sicherlich schöner programmieren, aber es funktioniert. Vielleicht hat ja jemand mit mehr Erfahrung Lust es besser zu scripten.
Code
Alles anzeigen##!/bin/sh #Aufnamen liegen in /video, Unterverzeichnisse möglich #Nur die geschnittenen Videodateien (ohne index bzw. info) werden in /data/movies verschoben, umbenannt und die originalen dann gelöscht. #Nicht geschnittene Aufnahmen bleiben im Aufnahmeverzeichnis. cd /video for path in `find -name "%*" -print 2>/dev/null`; do cut=`basename $path` dir1=`dirname $path` uncut="${cut#?}" dir="${dir1#?}" for rec in `find /video$dir/$cut -name "*rec" -print 2>/dev/null`; do old=`find /video/ -name $uncut` if [ -n "$old" ]; then temp=`diff /video$dir/$cut /video$dir/$uncut` if [ "$?" = "0" ]; then rm -r /video$dir/$uncut cd /video$dir/$cut else cd /video$dir/$uncut oldrec=`basename $rec` rm -r $oldrec cd /video$dir/$cut fi else cd /video$dir/$cut fi cd $rec movie=`ls *.ts` mkdir /movies$dir cd /movies$dir files=`ls * | wc -l` cd $rec mv $movie /movies$dir/$uncut$files.ts cd /video$dir/$cut rm -r $rec if [ `ls -1a|wc -l` -gt 2 ]; then count=1 else rm -r /video$dir/$cut fi cd /video done done
Das Skript in /etc/init.d/ legen, mit chmod 755 /etc/init.d/skriptname die Rechte ändern, und zwei symbolische Links setzen:
ln -s /etc/init.d/skriptname /etc/rc0.d/S11skriptname
ln -s /etc/init.d/skriptname /etc/rc6.d/S11skriptnameEinen Nachteil hat das Skript bisher: Der VDR listet die Filme nicht mehr bei Aufnahmen auf, sondern bei Medien->Datei abspielen. Ich verteile meine Aufnahmen aber eh mit Twonky im Netzwerk, und mein VDR dient nur zum Aufnehmen. Da ist mir das egal. Aber man sollte es wissen.
-
Hi!
Wäre es nicht viel einfacher ein kleines Skript für das "--record"-Kommando von VDR zu erstellen?
Hier gibt es doch das EDIT-Ereignis und da könnte man dann das von dir gewünschte einbauen.
Ev. die alte Aufnahme auch nur mit svdrpsend-Kommando löschen und die die geschnittene damit umbenennen. Dann ist die Aufnahme beim versehentliche Auslösen eines Schnitts noch da und VDR bekommt alle Änderungen mit.Gruß,
Brougs78 -
Das ist keine schlechte Idee. Nur hab ich keinen Plan, wie ich das angehen könnte. Tips, wo ich dazu mehr erfahren könnte?
-
Hi!
Also das mit dem "--record"-Kommando hängt davon ab ob du eine Distri einsetzt oder alles selbst zusammengebastelt hast. Üblicherweise wird ein Skript beim VDR-Start eingebunden, das beim Start, beim Ende und beim Schneiden einer Aufnahme aufgerufen wird. Hier lassen sich auch eigene Befehle integrieren. Hier z.B. bei yavdr in /etc/vdr/recording-hooks/ bzw. günstiger wahrscheinlich über Templates.
Hier dazu mehr, wie es beim VDR-Start eingebunden wird (aus der Man-Page):
http://www.vdr-wiki.de/wiki/index.php/VDR_Optionen#record
Wie gesagt, je nach Distri brauchst du aber nur ein Skript an die richtige Stelle setzten.Bezüglich der svdrp-Schnittstelle steht hier einiges:
http://www.vdr-wiki.de/wiki/index.php/SVDRPAllerdings leider nicht vollständig bzw. aktuell. Es gibt nämlich beim aktuellen VDR auch einen Befehl zum Umbenennen von Aufzeichnungen: RENR
Kannst du aber auch bei svdrpsend.pl nachlsen:
z.B. "svdrpsend.pl help RENR"Beim Skripten bin ich leider selber nicht so fit, kann dir da also auch nichts schnell zusammenbasteln.
Gruß,
Brougs78 -
Ich hab alles selbst zusammengebaut. Aber ich les mich mal ein. Danke!
-
-
Hi!
Was mir an so einer Lösung nicht gefällt ist halt die Endgültigkeit.
IMHO kann es und wird es passieren dass man eine Aufnahme falsch schneidet oder einen Schnitt versehentlich auslöst und dann ist die originale Aufnahme schon futsch.Muss natürlich jeder selber wissen ob das ein Problem ist.
Gruß,
Brougs78
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!