Brauche Hilfe für Script zur OTR-Batchdekodierung

Status
Für weitere Antworten geschlossen.

toller

Benutzer
Mitglied seit
06. Feb 2014
Beiträge
172
Punkte für Reaktionen
8
Punkte
18
Nicht aufgeben!!!
Das muss lösbar sein!

Mit ist noch etwas aufgefallen. Die Variable "infolder" sollte ein Ordnerpfad sein. Dein Pfad endet aber auf "…/*.otrkey". Also einfach so ändern, dass der Pfad mit dem Quellordner und einem Backslash endet (also das "*.otrkey" entfernen).

Ich habe einfach mal das Script von mir angehangen (gezippt) / ändere nur noch die Variablen:Anhang anzeigen 16135

Du hattest recht! Nicht einfach aufgeben. Jetzt habe ich deine Hinweise geändert und es brachte nichts!!!
Dann aber habe ich dein gepostetes Script genommen und nur mit meinen Pfaden und Daten ergänzt und sonst nichts gemacht - ES FUNKTIONIERT!

Aber was war das Problem?
Beim Abspeichern merkte ich, dass deine Datei in Notepad++ als Dateityp "unix.sh"-Datei erkannt wurde, während ich meine zwar in den Einstellungen auf UNIX Zeilenenden stellte und den Dateinamen auch OTRbatchdecodieren.sh nannte. Aber ich hatte bei "Speichern unter" den Dateityp *.* eingestellt.
Das müsste es gewesen sein. Ansonsten gibt es keinen Unterschied zwischen den Inhalten.

Also danke für dein Skript geimist! Den Fehler hätte ich sonst wohl nie gefunden.
 

toller

Benutzer
Mitglied seit
06. Feb 2014
Beiträge
172
Punkte für Reaktionen
8
Punkte
18
@geimist
Danke, das Wochenende konnte ich dank deiner Hilfe genießen.

...
Hier ein kurzer Abriss:
- ipkg muss installiert sein
- mit IPKG folgendes installieren: 1.Bash / 2.Transcode (da ist das benötigte avisplit/avimerge enthalten)
- das Cut-Script otrcut.sh von HIER (ausführbar machen!)​

Aufgerufen wird das Script über:
Rich (BBCode):
/opt/bin/bash /volume1/PFAD/ZUM/SCRIPT/OTRcut.sh -a --toprated -i /volume1/PfadZumFilm.avi -o /volume1/AUSGABEORDNER

-a bedeutet: avisplit an Stelle von avidemux verwenden
--toprated: automatisch die höchst bewertete Cutlist verwenden

Das Ganze kann man natürlich noch automatisieren und mit dem Decodierscript verbinden...

Vier Fragen hätte ich dazu:

1) Wie und woher genau installiert man ipk, bash und transcode?

2) Soll ich dann noch im Script otrcut.sh aus deinem Link die Zeilen 929 - 993 mit der function time2 von Sohles Beitrag ersetzen?

3) Muss ich jeden Film einzeln aufrufen, oder kann ich auch ein *.avi angeben?

4) Ist im otrcut-Script die Batchdecodierung schon eingebaut, weil da der Pfad zum DEcoder angegeben werden muss?


Wenn ich das geschafft habe, versuche ich mich an einer Zusammenfassung des Ganzen.

Grüße
toller
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.379
Punkte
234
1) Wie und woher genau installiert man ipk, bash und transcode?
Anleitung für die Installation von IPKG gibt es HIER (manuell) oder HIER (als Paket falls verfügbar)
Wenn IPKG läuft, installierst du am Besten zusätzlich IPKGui. Mit diesem Frontend kannst du dann ganz bequem die benötigten Pakete installieren. Alternativ könntest du auch ohne IPKGui auf der Konsole arbeiten (zum Installieren von Paketen).

2) Soll ich dann noch im Script otrcut.sh aus deinem Link die Zeilen 929 - 993 mit der function time2 von Sohles Beitrag ersetzen?
Ja, dass musst du noch entsprechend anpassen

3) Muss ich jeden Film einzeln aufrufen, oder kann ich auch ein *.avi angeben?
Man könnte das alles in ein und dasselbe Script einbauen. Da ich aber in der Scriptmaterie auch kein Profi bin, habe ich das Ganze modular aufgebaut. Dazu habe ich mir ein Startscript erstellt, welches die anderen Scripte der Reihe nach aufruft sowie (teilweise) die entsprechenden Dateien übergibt.
Rich (BBCode):
#!/opt/bin/bash
# otrcut

echo "------------------------- Variablen:"
#Scripte:
#OTRdecode="/volume1/homes/admin/script/OTR/OTRbatchdecodieren.sh"
OTRcut="/volume1/homes/admin/script/OTR/OTRcut.sh"

#Abweichung der Dateiänderungszeit in Minuten um laufende FTP-Pushaufträge nicht zu decodieren:
timediff="2"

#OTR Benutzername:
email="@"

#OTR Kennwort:
pass=""

#Pfad zu dem Decoder:
decoder="/volume1/downloads/OTRkeys/otrdecoder_static/otrdecoder"

#Verzeichnis mit den decodierten Dateien:
uncutfolder="/volume1/downloads/OTRdecodiert/autocut/"

#Ausgabeverzeichnis geschnittene Filme:
cutoutfolder="/volume1/video"

#Verzeichnis mit den OTRKEY-Dateien:
infolder="/volume1/downloads/OTRkeys/"

#Löschverzeichnis der Quelldateien:
delfolder="/volume1/downloads/#recycle"


echo "------------------------- decodieren:"
for i in $(find "$infolder" -maxdepth 1 -name "*.otrkey" -mmin +"$timediff" -type f)
	do
         "$decoder" -q -i "$i" -o "$uncutfolder" -e "$email" -p "$pass"
         mv "$i" "$delfolder"
	done

echo "------------------------- schneiden:"
for i in $(find "$uncutfolder" -maxdepth 1 -name "*.avi" -type f)
	do
         /opt/bin/bash "$OTRcut" --force-smart -a -e --delete --toprated -i "$i" -o "$cutoutfolder"
	done

echo "------------------------- umbenennen:"
/volume1/homes/admin/script/OTR/rename.sh

echo "------------------------- in mp4 konvertieren:"
/volume1/homes/admin/script/OTR/avi2mp4.sh

echo "------------------------- Fertig"
Das ist sicherlich nicht sehr elegant, für mich aber die einfachste, schnellste und zugleich übersichtlichste Methode gewesen. So konnte ich auch am schnellsten Fehler finden.

4) Ist im otrcut-Script die Batchdecodierung schon eingebaut, weil da der Pfad zum DEcoder angegeben werden muss?
Zumindest die Einzeldecodierung ist wohl schon vorgesehen. Ich habe das aber mit dem Startscript aus Punkt 3 gelöst.

Desweiteren nutze ich noch ein Script zum automatischen Umbenennen (da gibt es sogar ein Script, welchen nach Serieninformationen sucht) und ein Script, welches mir die AVIs in MP4s konvertiert (die Audiospur muss nach AAC umgewandelt werden). Somit sind die Filme in MacOS auch in der Vorschau und mit Quicktime nativ nutzbar.


Wenn ich das geschafft habe, versuche ich mich an einer Zusammenfassung des Ganzen.

Das wäre wirklich toll!
Am Besten wäre da sicherlich ein Wiki-Eintrag. Diesen könnte am auch in Zukunft sehr einfach pflegen.
 

toller

Benutzer
Mitglied seit
06. Feb 2014
Beiträge
172
Punkte für Reaktionen
8
Punkte
18
Manomann bist du schnell.

Vielen Dank für die ausführliche Hilfe, ich werde das die nächsten Tage gleich mal versuchen.

Einen sonnigen Sonntag wünsche ich!
:)
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.379
Punkte
234
Nach dem Update auf DSM 5.0 kann ich den OTRdecoder nicht mehr verwenden!!!

Beim übergeben einer Filmdatei an den Decoder kommt die Meldung:
Rich (BBCode):
otrdecoder: ../sysdeps/unix/sysv/linux/getpagesize.c:32: __getpagesize: Assertion `_rtld_global_ro._dl_pagesize != 0' failed.
Aborted (core dumped)
/volume1/downloads/Person_of_Interest_14.03.11_23-10_rtl_50_TVOON_DE.mpg.HQ.avi.otrkey

Der Decoder lässt sich aber nach wie vor ansprechen und per -h die möglichen Parameter ausgeben.
Woran kann das liegen?
 

Sohle

Benutzer
Mitglied seit
16. Okt 2013
Beiträge
23
Punkte für Reaktionen
1
Punkte
1
Moin @geimist,

ich habe die Version zum "Glück" noch nicht drauf, deswegen kann ich hierzu nicht viel helfen.

Habe aber im OTR Forum folgenden Thread gefunden, der zumindest dieselbe Fehlermeldung behandelt. Acker dich mal durch und gib mal bitte eine Rückmeldung. Ansonsten kann ich erstmal nicht weiterhelfen, da ich noch kein Update gemacht habe.

Viel Erfolg und viele Grüße,
Sohle
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.379
Punkte
234
Zuletzt bearbeitet:

toller

Benutzer
Mitglied seit
06. Feb 2014
Beiträge
172
Punkte für Reaktionen
8
Punkte
18

toller

Benutzer
Mitglied seit
06. Feb 2014
Beiträge
172
Punkte für Reaktionen
8
Punkte
18
Bei mir will das einfach nicht klappen.

bash und transcode sind installiert. nach Aufruf von otrcut.sh spuckt die Script.log das aus:


------------------------- Variablen:
------------------------- decodieren:
------------------------- schneiden:
Keine Config-Datei gefunden, benutze Standardwerte.

ACHTUNG!!!
Das Script wird alle Dateien in /tmp/otrcut/otrcut löschen!
Sie haben 5 Sekunden um das Script über STRG+C abzubrechen
5 4 3 2 1



ACHTUNG!!!
Die Eingabedateien müssen entweder ohne führende Verzeichnise
(z.B. datei.avi, nur wenn Datei im aktuellen Verzeichnis!) oder
mit dem KOMPLETTEN Pfad (z.B. /home/user/datei.avi) angegeben werden!



Überprüfe ob avisplit installiert ist --> false
Installieren Sie transcode!
Keine Config-Datei gefunden, benutze Standardwerte.

ACHTUNG!!!
Das Script wird alle Dateien in /tmp/otrcut/otrcut löschen!
Sie haben 5 Sekunden um das Script über STRG+C abzubrechen
5 4 3 2 1



ACHTUNG!!!
Die Eingabedateien müssen entweder ohne führende Verzeichnise
(z.B. datei.avi, nur wenn Datei im aktuellen Verzeichnis!) oder
mit dem KOMPLETTEN Pfad (z.B. /home/user/datei.avi) angegeben werden!



Überprüfe ob avisplit installiert ist --> false
Installieren Sie transcode!
Keine Config-Datei gefunden, benutze Standardwerte.

ACHTUNG!!!
Das Script wird alle Dateien in /tmp/otrcut/otrcut löschen!
Sie haben 5 Sekunden um das Script über STRG+C abzubrechen
5 4 3 2 1



ACHTUNG!!!
Die Eingabedateien müssen entweder ohne führende Verzeichnise
(z.B. datei.avi, nur wenn Datei im aktuellen Verzeichnis!) oder
mit dem KOMPLETTEN Pfad (z.B. /home/user/datei.avi) angegeben werden!



Überprüfe ob avisplit installiert ist --> false
Installieren Sie transcode!



Im Transcode müsste doch Avisplit o.a. drin sein!?

EDIT:
So, jetzt kann ich ein bisschen genauer erklären. Vorhin musste ich schnell und überraschend weg.
Also:
Dekodieren funktioniert wunderbar mit dem Startscript.
Nur klappt das mit dem otrcut nicht, obwohl transcode installiert ist. Gibt es avidemux auch extra als ipk?

Hier der (vermutlich problematische) Teil des Scripts von Geimist, das ich im Startscript eingebaut habe.

Oder gibt es eine Möglichkeit Transcode zu überprüfen? Mit "IPKG upgrade" erscheint das auf jeden Fall als aktuell!

Grüße
toller
 
Zuletzt bearbeitet:

toller

Benutzer
Mitglied seit
06. Feb 2014
Beiträge
172
Punkte für Reaktionen
8
Punkte
18
Inzwischen funktioniert es zwar noch nicht, aber bash und transcode werden erkannt - wieso weiß ich selber nicht. Aber erstmal egal. Das kann später eruiert werden.

Das derzeitige Problem ist die Fehlermeldung nach ungültigem Datum:

DiskStation> /opt/bin/bash otrcut.sh -a -w *.avi
Keine Config-Datei gefunden, benutze Standardwerte.

ACHTUNG!!!
Die Eingabedateien müssen entweder ohne führende Verzeichnise
(z.B. datei.avi, nur wenn Datei im aktuellen Verzeichnis!) oder
mit dem KOMPLETTEN Pfad (z.B. /home/user/datei.avi) angegeben werden!



Überprüfe ob avisplit installiert ist --> okay
Überprüfe ob avimerge installiert ist --> okay
Überprüfe welche Methode zum Umrechnen der Zeit benutzt wird --> date: invalid date '@120'
intern

Die passende Stelle im otrcut Script:

#Hier wird überprüft ob date zum umrechnen der Zeit benutzt werden kann
echo -n "Überprüfe welche Methode zum Umrechnen der Zeit benutzt wird --> "
date_var=$(date -u -d @120 +%T)
if [ "$date_var" == "00:02:00" ]; then
echo -e "${blau}date${normal}"
date_okay=yes
else
echo -e "${gelb}intern${normal}"
date_okay=no
fi

Der Film liegt im selben Verzeichnis wie otrcut.sh und ist nach dem Dekodieren nicht umbenannt worden.

Was bedeutet diese Datumsüberprüfung?

Weiß hierzu jemand etwas?


EDIT:

Och menno!
Jetzt kommt wieder die Meldung, dass kein Transcode installiert sei und erkennt den befehl "bash" nicht mehr.
Erst wenn ich die "syno-i686-bootstrap_1.2-7_i686.xsh" erneut starte, läuft das wieder!??! Ich blicke nicht mehr durch. Alles nach Anleitung erledigt (zumindest denke ich das).

Könnte sich denn niemand erbarmen?
 
Zuletzt bearbeitet:

toller

Benutzer
Mitglied seit
06. Feb 2014
Beiträge
172
Punkte für Reaktionen
8
Punkte
18
push!
 

toller

Benutzer
Mitglied seit
06. Feb 2014
Beiträge
172
Punkte für Reaktionen
8
Punkte
18
Mittlerweile startet das Skript, wenn ich vorher bootstrap.sh starte und ipkg, bash und transcode immer mal wieder neu installiere. Wieso das immer wieder weg ist - keine Ahnung.

Wenn ich das aber getan habe, startet (über die Konsole) auch otrcut.sh und gibt allerdings folgenden Fehler zurück.


DiskStation> sh /volume1/homes/juergen/otr/decoder/start.sh
------------------------- Variablen:
------------------------- decodieren:
------------------------- schneiden:
Keine Config-Datei gefunden, benutze Standardwerte.

ACHTUNG!!!
Das Script wird alle Dateien in /tmp/otrcut/otrcut löschen!
Sie haben 5 Sekunden um das Script über STRG+C abzubrechen
5 4 3 2 1



ACHTUNG!!!
Die Eingabedateien müssen entweder ohne führende Verzeichnise
(z.B. datei.avi, nur wenn Datei im aktuellen Verzeichnis!) oder
mit dem KOMPLETTEN Pfad (z.B. /home/user/datei.avi) angegeben werden!



Ãberprüfe ob avisplit installiert ist --> okay
Ãberprüfe ob avimerge installiert ist --> okay
Ãberprüfe welche Methode zum Umrechnen der Zeit benutzt wird --> date: invalid date '@120'
intern
Verwende /volume1/video/1_neue_unsortiert als Ausgabeordner.
Lösche temporäre Dateien
Lösche OtrKey
Ãberprüfe um welches Aufnahmeformat es sich handelt --> HQ
Bearbeite folgende Datei: /volume2/Downloadstation/Die_Bruecke_II_Transit_in_den_Tod_2_14.03.23_22-00_zdf_110_TVOON_DE.mpg.HQ.avi
Führe Suchanfrage bei "cutlist.at" durch ---> okay
Cutlist/s gefunden.

Es wurden folgende Cutlists gefunden:

Lade die Cutlist mit der besten User-Bewertung herunter.
Die beste Bewertung ist: 5
Lade Die_Bruecke_II_Transit_in_den_Tod_2_14.03.23_22-00_zdf_110_TVOON_DE.mpg.HQ.avi.cutlist -->okay
Ãberprüfe um welches Format es sich handelt --> Zeit
Ermittles Bildrate --> 50
#####Auflistung der Cuts#####
Es müssen 1 Cuts umgerechnet werden
Startcut= 0:5:55
Endcut= 1:57:50
#####ENDE#####
Ãbergebe die Cuts an avisplit/avimerge
/volume1/homes/juergen/otr/decoder/otrcut.sh: line 1004: nice: command not found
Avisplit oder avimerge muss einen Fehler verursacht haben
.

Hätte vielleicht dazu jemand eine Idee?

Hier vielleicht noch der besagte Abschnitt aus otrcut.sh:


#Hier wird nun, falls aviplit/avimerge gewählt wurde, avisplit und avimerge gestartet
function split ()
{
echo "Übergebe die Cuts an avisplit/avimerge"

if [ $decoded == "yes" ]; then
nice -n 15 avisplit -i "$output/$film" -o "$outputfile" -t $time -c #Hier wird avisplit gestartet, avimerge wird on-the-fly über den Parameter -c gestartet
else
nice -n 15 avisplit -i "$film" -o "$outputfile" -t $time -c #Hier wird avisplit gestartet, avimerge wird on-the-fly über den Parameter -c gestartet
fi
if [ -f "$outputfile" ]; then
echo -e "${gruen}$outputfile wurde erstellt${normal}"
if [ "$delete" == "yes" ]; then
echo "Lösche Quellvideo."
if [ $decoded == "yes" ]; then
nice -n 15 rm -rf "$output/$film"
else
nice -n 15 rm -rf "$film"
fi
fi
else
echo -e "${rot}Avisplit oder avimerge muss einen Fehler verursacht haben.${normal}"
if [ "$HaltByErrors" == "yes" ]; then
exit 1
else
continue=1
fi
fi
}​

Ich bin ratlos!
 
Zuletzt bearbeitet:

webjogi73

Benutzer
Mitglied seit
12. Mai 2010
Beiträge
84
Punkte für Reaktionen
0
Punkte
6
Hallo webjogi73,

zunächst muss natürlich der Dekoder zu deiner DS passen!
Hast du eine Atom-DS?

Ob der Dekoder funktioniert, kannst du via ssh so testen:
Rich (BBCode):
/Pfad/zum/decoder -h

Wenn jetzt nachstehende Informationen erscheinen, so ist das gut und wir schauen weiter. Welche Meldung kommt bei dir?
Rich (BBCode):
DS> /volume1/downloads/OTRkeys/otrdecoder_static/otrdecoder -h
Decoder for otrkey files.
Usage: /volume1/downloads/OTRkeys/otrdecoder_static/otrdecoder [-h] [-v] [-i FILE|URL -e EMAIL -p PASSWORD] [-S STARTTIME] [-E ENDTIME] [-C CUTLIST] [-o DIRECTORY] [-c DIRECTORY] [-b BUFFERSIZE] [-f] [-q]
  -h            prints this screen
  -v            prints version
  -i FILE       use FILE as input file
  -e EMAIL      use EMAIL to fetch the key directly from otr
  -p PASSWORD   use PASSWORD to fetch the key directly from otr
  -o DIRECTORY  use DIRECTORY as output directory (default: .)
  -b BUFFERSIZE use BUFFERSIZE*blocksize as size for the IO buffer.
                0 disables IO buffering. (default: 1024)
  -q            don't verify input file before processing.
                If this is turned off, it is possible to decode partially downloaded
                otrkeys in the new format
  -f            force overwriting of output file

Additional parameters supported by new format:
  -i URL        use URL to fetch input from
  -S STARTTIME  decode file from STARTTIME on
  -E ENDTIME    decode file until ENDTIME
  -C CUTLIST    decode and cut file corresponding to the information in CUTLIST
  -c DIRECTORY  use DIRECTORY as cache directory for http downloads (default: .)

DS>



Hallo,

ich melde mich mal wieder, nachdem ich in der Zwischenzeit auf eine DS 214play gewechselt bin und jetzt gerne die batch-Konvertierung zum Laufen bekommen möchte :) Ich hoffe, dass ich in diesem Thread noch Support bekommen.

Also, ich stehe genau da, wo ich vor fast einem Jahr schon mal war, als ich die oben zitierte Antwort erhielt. Ich habe als Decoder die Links-Version von otrfiles runtergezogen und in meinen Ordner " Z_TV_Aufnahmen/batch" abgelegt. Dort liegt auch die entsprechend angepasste sh Datei.

Wenn ich mich aber nun als admin an der Dissertation via Terminal vom Mac aus anmelde und dann den Befehl

/volume1/Z_TV_Aufnahmen/batch -h

eingebe erhalte ich die Fehlermeldung
-sh: /volume1/Z_TV_Aufnahmen/batch: Permission denied
, also keine Berechtigung.

Der admin hat aber auf den Ordner volle Berechtigung. Wo liegt der Fehler ? Sorry von ssh/TelNet habe ich leider auch keine Ahnung :)

Vielen DANK
 

Sohle

Benutzer
Mitglied seit
16. Okt 2013
Beiträge
23
Punkte für Reaktionen
1
Punkte
1
Wenn du es über das Terminal (bzw. ssh) machst, solltest du dich nicht als "admin", sondern mal als "root" anmelden. Versuch mal. Ich bin aber auch keine Leuchte bei dem Thema ssh.
 

webjogi73

Benutzer
Mitglied seit
12. Mai 2010
Beiträge
84
Punkte für Reaktionen
0
Punkte
6
danke, aber leider kein anderes Ergebnis....
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.379
Punkte
234
…Ich habe als Decoder die Links-Version von otrfiles runtergezogen und in meinen Ordner " Z_TV_Aufnahmen/batch" abgelegt.


Ich weiß jetzt nicht genau was du mit der Links-Version von otrfiles meinst …
Du brauchst den dynamisch gelinkten Dekoder (Dynamisch gelinkt (Ubuntu Gutsy))


Zu deinem Aufruf:
Du musst den kompletten Pfad inkl. Decoder angeben, oder hast du den in "batch" umbenannt…
Rich (BBCode):
/volume1/Z_TV_Aufnahmen/batch/otrdecoder -h
Deine Fehlermeldung verwundert mich bei Root-Login dennoch.
 

Sohle

Benutzer
Mitglied seit
16. Okt 2013
Beiträge
23
Punkte für Reaktionen
1
Punkte
1
Um Missverstände zu vermeiden: Rufst du den Ordner "batch" auf oder die im Ordner befindliche .sh-Datei? Ok, Stephan war schneller...
 

webjogi73

Benutzer
Mitglied seit
12. Mai 2010
Beiträge
84
Punkte für Reaktionen
0
Punkte
6
DANKE - jetzt geht es. Also ich habe den Linux-Decoder gemeint, hatte aber den statisch verlinkten genommen. Zusätzlich habe ich den oben genannten Pfad um den Dateinamen otrdecoder ergänzt und schon erhalte ich die SSH_meldung die Du auch vor 10 Monaten gepostet hattest. Jetzt muss ich mal weiterlesen, was ansteht....
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.379
Punkte
234
Ich habe jetzt mal das Ganze in ein Paket gepackt (dekodieren, scheiden, umbenennen, in MP4 konvertieren).

Hier geht es zum Beitrag
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat