synOTR synOTR - scriptsammlung für OTR-Workflow auf Synology Diskstation

mapf

Benutzer
Mitglied seit
07. Apr 2016
Beiträge
1
Punkte für Reaktionen
0
Punkte
0
Guten Abend Zusammen,

zunächst einmal finde ich es klasse, dass sich jemand die Mühe gemacht hat ein Skript zu basteln. Nur leider bekomme ich es nicht hin, es zum laufen zu bekommen :(

Hier meine Konfiguration:

##########################################################################################################
#------------------------- .otrkey's decodieren
#------------------------- & Zielordner:
##########################################################################################################
decoderactiv="on" # on => decodieren aktiv / off => decodieren inaktiv
OTRuser="XXXXXX@googlemail.com" # OTR Benutzername:
OTRpw="XXXXXX" # OTR Kennwort:
OTRkeydir="/volume1/download/" # Verzeichnis mit den OTRKEY-Dateien
#-------------------------
destdir="/volume1/video/" # generelles Ausgabeverzeichnis
OTRkeydeldir="/volume1/download/#recycle/" # Löschverzeichnis der Quelldateien ! ! ! ACHTUNG ! ! ! gleichnamige vorhandene Dateien in dem Verzeichnis werden überschrieben


##########################################################################################################
#------------------------- .avi's schneiden (Grundlage sind Schnittlisten von http://www.cutlist.at):
##########################################################################################################
OTRcutactiv="on" # on => schneiden aktiv / off => schneiden inaktiv


##########################################################################################################
#------------------------- .avi's / .mp4's umbenennen (alle betroffenen Dateien im Eingabeordner mit "TVOON" im Dateinamen werden umbenannt):
##########################################################################################################
OTRrenameactiv="off" # on => umbenennen aktiv / off => umbenennen inaktiv
OTRserieninfo="off" # on => Serieninfo aktiv / off => Serieninfo inaktiv
# Die Serieninfo ersetzt den Titel mit >>> SERIE - S01E01 EPISODENTITEL <<<

NameSyntax="§tit [§ylong-§mon-§day §hou-§min §cha] §qua autocut"

# Dauer= §dur
# Titel= $tit
# Jahr [4stellig]= §ylong
# Jahr [2stellig]= §yshort
# Monat= §mon
# Tag= §day
# Stunde= §hou
# Minute= §min
# Sender= §cha
# Qualtität / Format= §qua
# sowie freier Text und Zeichen ohne / manche Sonderzeichen könnten evtl. Fehlfunktionen hervorrufen


##########################################################################################################
#------------------------- .avi's in native MP4's (MAC OS tauglich) umwandeln:
##########################################################################################################
# ! ! ! ACHTUNG ! ! ! Alle .avi-Dateien im oben definierten Ordner >destdir< werden konvertiert.
# Bei einer großen Menge an Dateien kann das eine lange Zeit in Anspruch nehmen.
# Es wird lediglich die Audiospur konvertiert.

OTRavi2mp4active="off" # on => konvertieren aktiv / off => konvertieren inaktiv
OTRaacqal="112k" # Ziel-Bitrate der aac-Audiospur (mir reicht 112k also 112 kbit/s)


##########################################################################################################
#------------------------- DSM-Benachrichtigung (funktioniert nur, wenn synOTR vom User "root" aufgerufen wird):
##########################################################################################################
dsmtextnotify="on" # on => Benachrichtigung per Text aktiv / off => inaktiv
dsmbeepnotify="off" # on => Benachrichtigung per Beep aktiv / off => inaktiv

LOGlevel="1" # 0 => Logging inaktiv / 1 => normal / 2 => erweitert



Das ist meine Log-Datei:

Arbeitsverzeichnist ist: /volume1/homes/admin/synOTR_1.0/synOTR
Loglevel: normal
Löschverzeichnis wurde erstellt [/volume1/download/#recycle/]
Decodierverzeichnis vorhanden [/volume1/video/_decodiert]
./synOTR.sh: line 116: /volume1/homes/admin/synOTR_1.0/synOTR/app/bin/awk: cannot execute binary file: Exec format error
./synOTR.sh: line 117: /volume1/homes/admin/synOTR_1.0/synOTR/app/bin/awk: cannot execute binary file: Exec format error
./synOTR.sh: line 118: /volume1/homes/admin/synOTR_1.0/synOTR/app/bin/awk: cannot execute binary file: Exec format error
./synOTR.sh: line 119: /volume1/homes/admin/synOTR_1.0/synOTR/app/bin/awk: cannot execute binary file: Exec format error
Es ist ein Update verfügbar!
installierte Version: 1.0
neuste Version: 1.0
Die neue Version kann unter "http://geimist.eu/synOTR/" heruntergeladen werden.


==> decodieren:

Gute_Zeiten_schlechte_Zeiten_16.04.26_19-40_rtl_35_TVOON_DE.mpg.HQ.avi.otrkey
|L==> fertig


==> schneiden:
==> in MP4 konvertieren ist deaktiviert


==> OTRrename:
->Umbenennungssyntax: §tit [§ylong-§mon-§day §hou-§min §cha] §qua autocut

Was habe ich nur falsch gemacht?
Benutze eine DS215J mit DSM6.0
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
Hallo mapf,

erst einmal herzlich willkommen hier im Forum :)
Wie du schreibst, nutzt du die DS215j. Derzeit funktioniert das Script mit den mitgelieferten Programmen nur mit Intel CPU; du hast eine ARM-CPU. Sofern ich einmal den Otrdecoder unter einer ARM-CPU zum laufen bekomme, werde ich das Paket entsprechend erweitern. Das ist aber derzeit nicht absehbar.

Sorry!
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
… Benutze eine DS215J mit DSM6.0

Das hast du aber auch ein Glück :cool:
Deine Anfrage hat meinen Ehrgeiz gegrault. Auf einer DS214 mit ArmadaXP CPU läuft jetzt der Decoder ;)

Ich brauche aber mal deine Hilfe:
Was sagt die Shell zu dem Befehl:
Rich (BBCode):
uname --machine

Falls du mit der Shell nicht vertraut bist, kannst du auch den Aufgabenplaner in der Systemsteuerung verwenden:
- Erstellen ==> Geplante Aufgabe ==> Benutzerdefiniertes Skrip
- hier den Code uname --machine eingeben und das Skript einmal ausführen
- oben den Button "Aktion" ==> "Ergebnis anzeigen" und mir den Wert im unteren Kästchen mitteilen

Danke
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
6.057
Punkte für Reaktionen
1.855
Punkte
254
Eine DS215j habe ich nicht mehr, aber dafür von einem Kollegen eine DS115, die meines Wissens die gleiche Hardware hat.

Da kommt => armv7l

Nachtrag:
Lt. Website von Synology haben beide (DS115 u. DS215j) => Marvell Armada 375 88F6720, 32-bit, Dual Core 800 MHz
 
Zuletzt bearbeitet:

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
Danke für die Info. Sicher, dass das am Ende eine Eins ist - bei mir ist es ein kleines L? Ich denke aber, das passt so. Dann scheint es überall gleich zu sein, und ich kann die Zeichenfolge als Prüfkriterium heranziehen.
Eigentlich versuche ich ein Paket für beide Plattformen zu machen. Das ist aber z.T. etwas widerspenstig. Heute oder Morgen wird es bestimmt noch nicht fertig. Oft sind es dann ja die Details, wo man sich die Zähne ausbeißt …
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
Ich könnte noch etwas Hilfe gebrauchen:

Findet jemand eine armv7 kompatible Version von mp4box? [LINK]
Vielleicht kann sie ja auch jemand bauen … (möglichst als StaticBuild)

Danke
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
Version 1.2 64bit & ARMv7 BETA - [2016-04-29]

… Was habe ich nur falsch gemacht?
Benutze eine DS215J mit DSM6.0

So, hier ist mein erster ARM-Versuch [DOWNLOAD].
Es gibt nur eine Version des Pakets für Intel- und ARM-CPU. Es sollte automatisch die Umgebung erkennen und entsprechend arbeiten.
Auf der DS214 / DS716+ läuft es jetzt. Bitte testet es auf euren (ARMv7 / Intel) Modellen. Ich bin zuversichtlich, dass es funktioniert.

Version 1.2 64bit & ARMv7 BETA - [2016-04-29]
  • weitere Umbenennungsparameter (fps, Realdauer, Seitenverhältnis, Bildhöhe, Bildbreite, Scantype [i oder p], Audiocodec, Videocodec) weitere Anpassung an der Sqlite-DB (Stringkorrektur ect.) - bei ARMv7 noch eingeschränkt.
  • kleinere Korrekturen bei der Separierung der Umbenennungsfragmente
  • Korrektur für Ordner mit Leerzeichen
  • Support für ARMv7-CPU (DS214, DS215j, ect.)
    BEACHTE: Die ARMv7-Version kann noch nicht automatisch in native MP4-Videodateien umwandeln, da mir das benötigte Programm "mp4box" für ARMv7 fehlt.
    Automatisch schneiden funktioniert mit ARMv7-Modellen nur, sofern du via iPKG/oPKG das Paket "Transcode" installierst. Mit den Paketen EBI und iPKGui von QTip geht das mit wenigen Klicks.
    Ich musste aufgrund der Einbindung der ARM-Plattform das Script an vielen Ecken ändern. Hier ist noch etwas Feinschliff nötig. Bitte meldet mir Fehler aber auch alle funktionierenden DS-Modelle.


Bitte gebt Rückmeldung, ob die Version auch mit DSM 5.2
sowie den 32bit Modellen DS214play und DS415play funktioniert.
Danke.
 
Zuletzt bearbeitet:

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
Und hier kommt schon die 2. ARM taugliche Version [DOWNLOAD].


Version 1.3 64bit & ARMv7 BETA - [2016-05-01]
  • ARM-Version von mp4box und Transcode integriert ==> Autocut und MP4-Konvertierung mit ARM-CPU's jetzt möglich
    BEACHTE: Ich musste aufgrund der Einbindung der ARM-Plattform das Script an vielen Ecken ändern. Hier ist noch etwas Feinschliff nötig.
    Mediainfo liefert mir unter ARM keine Framerate und kein Seitenverhältnis :(


Bitte gebt Rückmeldung, ob die Version auch mit DSM 5.2
sowie den 32bit Modellen DS214play und DS415play funktioniert.
Danke.
 

MaverickVG

Benutzer
Mitglied seit
12. Apr 2016
Beiträge
9
Punkte für Reaktionen
0
Punkte
1
Auf meiner 2014play klappt 1.3 leider nicht so dolle...

==> decodieren:



Schneewittchen_16.05.01_01-00_zdf_95_TVOON_DE.mpg.HQ.avi.otrkey
OTRdecoder LOG:
L==> Datei im Zielverzeichnis nicht gefunden …


==> schneiden ist deaktiviert


==> in MP4 konvertieren ist deaktiviert


==> OTRrename [Umbenennungssyntax: §tit [§ylong-§mon-§day §hou-§min §cha §height§scty §redurmin] autocut2]:


==> OTRopenrename via SQLite [Umbenennungssyntax: §tit [§ylong-§mon-§day §hou-§min §cha §height§scty §redurmin] autocut2]:

undefinierte Serien suchen:

Mich verwirrt das hier steht schneiden ist deaktiviert, es steht aber in der Konfiguration definitiv auf "on"!
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
Hallo MaverickVG,

ja, dass konnte nicht gehen. Es fehlte die CPU-Abfrage für Evensport-CPU (i686) der DS214play und DS415play - hatte ich auch gerade entdeckt.
Bitte Probiere es mit der Version 1.4 und gib nochmal Bescheid.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
6.057
Punkte für Reaktionen
1.855
Punkte
254
Bei mir läuft noch die 1.1. und ich nutze nur die Decodierung, was gut funktioniert.

Gibt es in den neueren Versionen eine Möglichkeit die Quelldateien direkt nach dem Decodieren zu löschen?

Im Moment habe ich es noch so gelöst, dass sie durch das Script in ein Unterverzeichnis gelegt werden, welches 1x pro Woche über den Aufgabenplaner geleert wird.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
Aber dafür gibt es in der Konfiguration.txt den Parameter "OTRkeydeldir". Hier habe ich für mich den Systempapierkorb des Downloadshares genommen (OTRkeydeldir="/volume1/downloads/#recycle/"). Wird der Systempapierkorb geleert, werden auch die abgearbeiteten otrkey's gelöscht.
Sofern du nur decodierst, profitierst du nicht von den anderen Verbesserungen. Allerdings wirst du wahrscheinlich von der Updatebenachrichtigung genervt … :rolleyes:
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
6.057
Punkte für Reaktionen
1.855
Punkte
254
Aber dafür gibt es in der Konfiguration.txt den Parameter "OTRkeydeldir". Hier habe ich für mich den Systempapierkorb des Downloadshares genommen (OTRkeydeldir="/volume1/downloads/#recycle/"). Wird der Systempapierkorb geleert, werden auch die abgearbeiteten otrkey's gelöscht.
Ich habe für diesen gemeinsamen Ordner keinen Papierkorb aktiviert. Daher habe ich ein Unterverzeichnis genommen (/volume1/otr/muell/), dort mittels OTRkeydeldir die Dateien abgelegt und per Aufgabenplaner (rm -r /volume1/otr/muell/*) einmal pro Woche leeren lassen. Im Endeffekt (fast) das Gleiche.

wirst du wahrscheinlich von der Updatebenachrichtigung genervt … :rolleyes:
Ja, heute morgen wieder zwei Stück davon. :/ Kann ich das wenigstens irgendwo im Script abstellen?

Ich nehme an, dass es das hier ist. Was muss ich ändern?

Rich (BBCode):
#Diese Funktion sucht nach einer neuen Version von synOTR
update ()
{
	ONLINEVERSION=$(wget -q -O - http://geimist.eu/synOTR/VERSION2 | /usr/bin/tr -d "\r")
	ONLINEVERSION=`echo "$ONLINEVERSION" | grep "64bitBeta" | awk -F" " '{print $1}'`

	MAJOR_ONLINEVERSION=`echo $ONLINEVERSION | awk -F. '{print $1}'`
	MINOR_ONLINEVERSION=`echo $ONLINEVERSION | awk -F. '{print $2}'`
	MAJOR_CLIENTVERSION=`echo $CLIENTVERSION | awk -F. '{print $1}'`
	MINOR_CLIENTVERSION=`echo $CLIENTVERSION | awk -F. '{print $2}'`

#	message="Es ist eine neue Version von synOTR verfügbar. <br>installierte Version: $CLIENTVERSION <br>neuste Version: $ONLINEVERSION <br><br>Die neue Version kann unter \"<a href=\"http://geimist.eu/synOTR/\">http://geimist.eu/synOTR</a>\" heruntergeladen werden. <a href=\"https://geimist.eu/synOTR/changelog/\">(ChangeLOG)</a><br>"
	message="Es ist eine neue Version von synOTR verfügbar. Installierte Version: $CLIENTVERSION - Neuste Version: $ONLINEVERSION - Die neue Version kann unter \"http://geimist.eu/synOTR/\" heruntergeladen werden. (ChangeLOG: \"https://geimist.eu/synOTR/changelog/\")"

	if [ ${MAJOR_ONLINEVERSION} -gt ${MAJOR_CLIENTVERSION}  ]; then
		echo -e "Es ist ein Update verfügbar!"
		echo -e "installierte Version: $CLIENTVERSION"
		echo -e "neuste Version: $ONLINEVERSION"
		echo "Die neue Version kann unter \"http://geimist.eu/synOTR/\" heruntergeladen werden."
		synodsmnotify @administrators "synOTR" "$message"
	elif [ ${MAJOR_ONLINEVERSION} -ge ${MAJOR_CLIENTVERSION}  ]; then
		if [ ${MINOR_ONLINEVERSION} -gt ${MINOR_CLIENTVERSION} ]; then
			echo -e "Es ist ein Update verfügbar!"
			echo -e "installierte Version: $CLIENTVERSION"
			echo -e "neuste Version: $ONLINEVERSION"
			echo "Die neue Version kann unter \"http://geimist.eu/synOTR/\" heruntergeladen werden."
			synodsmnotify @administrators "synOTR" "$message"
		else
			echo -e "Update ==> Du nutzt bereits die neuste synOTR-Version [$CLIENTVERSION]"
		fi	
	else
		echo -e "Update ==> Du nutzt bereits die neuste synOTR-Version [$CLIENTVERSION]"
	fi
}
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
Löschverzeichnis:
Du musst nicht den Papierkorb des Downloadshares verwenden. Wenn du in einem anderen Share den Papierkorb aktiviert hast (z.B. homes), kannst du auch den nehmen - vorausgesetzt, der synOTR aufrufende User hat Schreibrechte dorthin (z.B. admin).
Du kannst auch das Script synOTR.sh direkt anpassen, um otrkey's sofort zu löschen (Zeile 361 in Version 1.1):
Rich (BBCode):
mv "$i" "$OTRkeydeldir"
zu
Rich (BBCode):
rm "$i"
Ich habe mich aber bewusst dagegen entschieden. Einige Decoderfehlermeldungen habe ich zwar abgefangen (z.B. "Server nicht erreichbar"), aber man kann halt schwer alles abdecken. Letztendlich soll vermieden werden, dass die *.otrkey-Datei gelöscht wird, obwohl sie aus irgendeinem Grund nicht decodiert werden konnte.

Update:
Die einfachste Möglichkeit:
Öffne die Konfiguration.txt und füge die Zeile ein:
Rich (BBCode):
CLIENTVERSION="1.4"
Solange hier mindestens die gleich große Version wie die Beta auf dem Server ist, bekommst du keinen Updatehinweis.

Ich würde dir dennoch empfehlen, die Releaseversion (wenn fertig) zu installieren. Bisher sind Korrekturen für Ordner mit Leerzeichen eingepflegt und es wird geprüft, ob eine zu decodierende Datei auch als Zieldatei vorhanden ist, und erst dann gelöscht (das wäre gerade für dich interessant).
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
6.057
Punkte für Reaktionen
1.855
Punkte
254
Löschverzeichnis:
Letztendlich soll vermieden werden, dass die *.otrkey-Datei gelöscht wird, obwohl sie aus irgendeinem Grund nicht decodiert werden konnte.
Das hatte ich nicht bedacht. Ich werde es daher so lassen wie es ist. Jeden Sonntag gehen die *otrkey-Dateien ins Nirwana. So viele sind es ja nicht.

Update:
Solange hier mindestens die gleich große Version wie die Beta auf dem Server ist, bekommst du keinen Updatehinweis.
Super Idee.
Ich habe das direkt in der synOTR.sh auf 9.9 angepasst. ;)

Ich würde dir dennoch empfehlen, die Releaseversion (wenn fertig) zu installieren.
Ja, das werde ich machen. Solange kann für das Decodieren die Beta 1.1 erst mal weiterlaufen. Ist schon sehr angenehm die decodierten Dateien auf dem NAS vorzufinden.

Danke für deine Arbeit.
 

MaverickVG

Benutzer
Mitglied seit
12. Apr 2016
Beiträge
9
Punkte für Reaktionen
0
Punkte
1
Kurze Rückmeldung: die 1.4 funktioniert auf der DS214 play, es kommen zwar gelegentlich auch Fehlermeldungen im Log (ohne zu wissen was genau) aber am Schluss sind einige Filme dekodiert und geschnitten! Vermutlich liegen für die anderen einfach keine Cutfiles vor.
 

RSchmid30

Benutzer
Mitglied seit
27. Jul 2013
Beiträge
55
Punkte für Reaktionen
0
Punkte
6
Hallo habe seit neuesten das Problem dass Bild und Ton asyncron laufen.
Kann es sein dass es an diesem Script liegt?
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
Gib mir doch bitte ein paar Eckpunkte:

1. synOTR Version
2. DSM-Version
3. DiskStation Typ
4. Welche Schritte lässt du vom Skript durchführen?
5. wie groß ist geschätzt der Bild-Ton-Versatz?
 


 

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