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

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.371
Punkte für Reaktionen
1.188
Punkte
234
Hallo zusammen.

Bei mir sieht es so aus (also Matthieu: du bist fleißiger :cool:)

Bildschirmfoto 2018-10-26 um 16.14.17 Kopie.png

… Ich würden gern Code beisteuern, wenn du aber schon was gemacht hast würde ich es lassen. Kollidiert ja sonst möglicherweise. Und überhaupt steht die Frage im Raum ob dir das Recht ist.

Klar ist mir das Recht :) Du hast eine PN
 

Kleeblatt

Benutzer
Mitglied seit
30. Okt 2018
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Hallo miteinander,
hallo Stephan,

ich bin der Neue ;)

Ich bin schon seit ewigen Zeiten bei OTR. Download läuft - auch schon seit langem - über FTP-Push vom Datenkeller, Bisher auf einen Stick an meiner FritzBox. Dekodiert und geschnitten habe ich über OTR-Verwaltung++ auf meinem Ubuntu-Rechner. Output waren jeweils mkv's.

Tjaaaa - und seit einer Woche habe ich nun eine DS218+, mit gleich auf 12 GB aufgerüstetem RAM :p

Erste Suchen führten mich zu zwei Docker-Images. Ein erster blauäugiger Versuch, das ohne große Einarbeitung hinzubekommen schlug fehl. Bevor ich mich tiefer reinkniete fand ich heute diesen Fred.

Was soll ich sagen? Anhand deiner Newbie-sicheren Anleitung vorgegangen und es funzt sofort. *freu*

Der RAM hat nicht groß gezuckt beim Schneiden erster Serien, dafür hatte der Prozessor mit bis zu 95% Last schon gut zu tun.

Erst mal ein ganz, ganz großes Dankeschön für deine tolle Arbeit! Ein Kasten Bier ist schon auf dem Weg zu dir, Stephan.

Nur eine erste Frage habe ich als Beginner im Moment noch:

Soweit ich das hier gelesen habe, dient die Umwandlung in mp4 dazu, (Audio-Versatz-)Probleme beim Schneiden zu verhindern. Allerdings findet Plex diese nicht / nimmt sie nicht in seine Bibliothek auf, was einigermaßen schade ist, da mein TV unmittelbar über die Plex-App verfügt. Die bisherigen mkv und die (von synOTR dekodierten, ungeschnittenen avi) zeigt Plex an.

Hast du / habt ihr einen Tipp für mich, wie ich das mit den mp4 von synOTR auch hinbekommen könnte?

Viele Grüße

Christian
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.371
Punkte für Reaktionen
1.188
Punkte
234
Hallo Christian - herzlich willkommen hier im Forum und vielen Dank für den Kasten :D

Eigentlich sollte es keine Probleme geben mit den MP4 Dateien (im Gegenteil). Es kann aber z.T. so sein, dass Dateiänderungen über die Shell nicht so getriggert werden. Für die Synology VideoStation gibt es genau dafür den letzten Punkt in der Konfiguration "tägliche Neuindexierung des Zielordners". In den Plexeinstellungen findest du den Punkt "Mediathek" > "Scanne meine Bibliothek regelmäßig" wo du bis zu einem Intervall von 15' nach neuen Medien suchen kannst. Ich hoffe, das hilft dir weiter.
 

Kleeblatt

Benutzer
Mitglied seit
30. Okt 2018
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
In den Plexeinstellungen findest du den Punkt "Mediathek" > "Scanne meine Bibliothek regelmäßig" wo du bis zu einem Intervall von 15' nach neuen Medien suchen kannst. Ich hoffe, das hilft dir weiter.

Dankeschön, Stephan. Ich habe den regelmäßigen Scan an, benutze im Moment aber (da ich meine X-tausend Musik-CD-Sammlung am Hochladen bin und gleich immer die korrekte Zuordnung prüfe) vorrangig den manuellen Befehl in Plex "Mediathek-Dateien einlesen". Im Syn-Ordner "TV-Serien" ist die Datei "Der Hundeprofi [2018-10-13 19-10 VOX 576p 49min].mp4", aber Plex erkennt sie nicht.

Eine Duckduckgo-Suche hat mir im englischsprachigen Plex-Forum aber die Lösung nahe gebracht:

Aus meiner Sicht ist der Hundeprofi zwar schon irgendwie eine Art Serie, Plex sieht das aber gaaaanz anders.

Habe die Datei testweise in "Andere Videos" und in "TV-Aufnahmen", die ich in Plex den "Filmen" zugeordnet habe, kopiert und siehe da, in beiden Mediatheken findet Plex nun auch die mp4. Muss man erst mal darauf kommen oder wie Loddar zu sagen pflegt, again what learnd.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.371
Punkte für Reaktionen
1.188
Punkte
234
Stimmt, das hatte ich auch schon mal. Wenn Plex keine entsprechenden Infos findet, dann wird das File nicht entsprechend gelistet …
 

OlliB

Benutzer
Mitglied seit
15. Dez 2018
Beiträge
12
Punkte für Reaktionen
0
Punkte
1
Hallo,

ich finde die Idee genial und habe das Paket eher durch Zufall gefunden. Nun funktioniert bei mir leider das automatische Schneiden nicht. Im Logfile steht nur:

SCHNEIDE: ---> Hitman_Jeder_stirbt_alleine_18.11.23_22-30_pro7_105_TVOON_DE.mpg.HQ.avi
Sat Dec 15 20:34:55 CET 2018

Verwende /usr/syno/synoman/webman/3rdparty/synOTR/app/tmp/otrcut als tmp-Ausgabeordner.
Überprüfe um welches Aufnahmeformat es sich handelt --> HQ
Suche nach einer lokalen Cutlist ---> /volume1/video/OTR-Video/cutlist /usr/syno/synoman/webman/3rdparty/synOTR
Keine lokale Cutlist gefunden!
/usr/syno/synoman/webman/3rdparty/synOTR
Dateigröße: 832329120 Byte / 832.33 MB
Suche anhand des Dateinamens ---> okay

Anzahl gefunden: 1
Max-Userrating: 0.00
Max-Autorrating: 5
Auswahl aufgrund: Autorbewertung
Autor-Kommentar: (Super OTR 1.0)
SuggestedMovieName:
Bewertungdetails: 12x geladen / Autor: Greisby

Lade Hitman_Jeder_stirbt_alleine_18.11.23_22-30_pro7_105_TVOON_DE.mpg.HQ.avi.cutlist (ID: 1660615) --> false


Für mich sieht es danach aus, dass die Liste einfach nicht runter geladen werden kann. Die Synology hat eine Internetverbindung (darüber habe ich mir ja das Paket gezogen).

Hat jemand noch einen Tipp?
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.371
Punkte für Reaktionen
1.188
Punkte
234
Hallo OlliB, und herzlich willkommen im Forum :)

Bitte stelle doch ein vollständiges Log zur Verfügung - gern auch per e-Mail: synotr ät geimist.eu
 

OlliB

Benutzer
Mitglied seit
15. Dez 2018
Beiträge
12
Punkte für Reaktionen
0
Punkte
1
Hallo Stephan.

Die E-Mail ist auf dem Weg. Vielen Dank schon mal !

Gruß
OlliB
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.371
Punkte für Reaktionen
1.188
Punkte
234
@all:
Bitte achtet darauf, bei der cutlist.at-ID wirklich nur den 64 Byte langen FRED zu nutzen, andern falls schlägt die Verbindung zu cutlist.at beim Cutlistdownload fehl. In der nächsten Version wird darauf geprüft werden.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.371
Punkte für Reaktionen
1.188
Punkte
234
Version 4.0.8 UNIVERSAL [SPK-Release] für 32/64bit x86 & ARMv7 - [2018-12-18] - KLICK ZUR DOWNLOADSEITE

Verbesserung der Version 4.0.8:
  • OTRdecoder für Intel 64bit auf "Dynamisch gelinkt, 64 Bit" gewechselt (Dateien über 4GB ließen sich nicht decodieren)
  • Grenzwert für Smartrendering von 500 MB auf 490 MB gesenkt
  • Prüfung auf korrekte Cutlist.at-ID (Prüfung auf Format / mit ungültiger ID konnten keine Cutlisten heruntergeladen werden)

Das Update wurde auf cphub.net hochgeladen und steht euch nach der Freigabe zur Verfügung.
 

chilldow

Benutzer
Mitglied seit
19. Jan 2019
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Erst einmal vielen Dank für das tolle Projekt, dass meinen OTR Workflow automatisiert hat.

Allerdings kann ich seit ein paar Tagen nicht mehr dekodieren.
Ich erhalte bei einem manuellen Durchlauf kurz die Meldung "ist off" und dann passiert nichts weiter.

synOTR läuft auf einer DS718+ mit neuester DSM Version DSM 6.2.1-23824 Update 4

Beste Grüße,
Sebastian
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.371
Punkte für Reaktionen
1.188
Punkte
234
Hallo Sebastian und herzlich Willkommen hier im Forum :)

dazu müsstest du mal bitte ein Log zusenden (gern auch per Mail: synotr ät geimist.eu)
 

chilldow

Benutzer
Mitglied seit
19. Jan 2019
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Hallo Stephan,

danke für die superschnelle Antwort:

Auszug aus der Log:

==> decodieren:

DECODIERE: ---> Luke_Mockridge_Live_Lucky_Man_19.01.18_20-15_sat1_150_TVOON_DE.mpg.HQ.avi.otrkey
Sat Jan 19 19:37:24 CET 2019

! ! ! OTRDecoder konnte keine Verbindung zum OTR-Server aufbauen. Datei wird übersprungen.

OTRdecoder LOG:
otrdecoder64: /lib/libstdc++.so.6: no version information available (required by otrdecoder64)
otrdecoder64: /lib/libstdc++.so.6: no version information available (required by otrdecoder64)
otrdecoder64: /lib/libstdc++.so.6: no version information available (required by otrdecoder64)

Error: [OTRHelper:] Error: No connection to server!

Reicht dir das?

Gruß,
Sebastian
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.371
Punkte für Reaktionen
1.188
Punkte
234
Aber wo steht denn "ist off"?

Verwunderlich ist eher, warum keine Verbindung zum Server herstellbar ist. Ich habe deine Datei getestet und sie funktioniert bei mir.
Was hast du letztens geändert, seit dem es nicht mehr geht? Z.B. etwas an der Firewall oder dem Router?
 

chilldow

Benutzer
Mitglied seit
19. Jan 2019
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Der Hinweis mit der Firewall war goldrichtig.
Es gab am 02.01. ein Sicherheitsupdate für die Photo Station.
Dabei wurde scheinbar die Regel für Port 80 deaktiviert und seitdem kann ich laut den Logs auch nicht mehr dekodieren.
Nach Aktivierung der Regel läuft wieder alles.

Vielen Dank für den schnellen Support.

Anbei ein Screenshot mit der "ist off" Meldung:
synotrypjp8.jpg
 

janZurLok

Benutzer
Mitglied seit
22. Mrz 2019
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
Hallo,

erstmal vielen Dank für die Mühen rundum SynOTR. Insbesondere die Videokonvertierung in ein VS / Brwoser kompatbiles Format ist Gold wert!

Ich sortiere meine Bibliothek in verschiedene Ordner. (Kinder, Erwachsene, Serien, etc...) Nun würde ich die OTRKEYs gerne direkt in das richtige Verzeichniss legen und dort von synOTR umwandeln lassen. Es wäre daher super für mich, wenn SynOTR Verzeichnisse rekursiv durchlaufen würde und die fertigen Dateien ins gleich Verzeichniss verschiebt... Gibt es so eine Option?

Grüße und nochmal Danke,
Jan
 

geimist

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

synOTR ist für den fortlaufenden Workflow in Verbindung mit OTR konzipiert und nicht für so eine Batchverarbeitung, wie du sie jetzt brauchst - sorry.

Ich habe dir aber mal den entsprechenden Skripteil etwas angepasst. Plane ausreichend Zeit ein, wenn du es auf deine ganze Sammlung loslässt! Hier das Skript, welches auch rekursiv konvertiert (anbei auch als Datei Anhang anzeigen avi2mp4.sh.zip). synOTR muss installiert sein. Bitte erst einmal mit einem Probeordner testen, bzw. ein Backup von deinem Videoordner machen. Die AVI-Dateien werden jetzt nicht automatisch gelöscht, was du aber mit der Variable 'endgueltigloeschen' auf yes ändern kannst:
Rich (BBCode):
#!/bin/sh
# sucht im angegebenen Ordner (rekursiv) nach AVI-Dateien und konvertiert sie nach mp4

WORKDIR="/volume1/Videordner/" # Pfad zum Videordner mit abschließendem Slash
OTRaacqal=128 # Audiobitrate der Zieldatei
endgueltigloeschen="no" # Quelldateien löschen mit 'yes'
normalizeAudio="on"

##############################################################

ffmpeg=$(command -v ffmpeg)
PATH=$PATH:/usr/syno/synoman/webman/3rdparty/synOTR/app/bin
LD_LIBRARY_PATH=/usr/syno/synoman/webman/3rdparty/synOTR/app/lib:$LD_LIBRARY_PATH

IFS=$'\012'
OLDIFS=$IFS
for i in $(find "$WORKDIR" -name "*.avi" -type f)
    do
        IFS=$OLDIFS
        echo -e
        title=`basename "$i"`
        pfad=`dirname "$i"`
        pfad="$pfad/"
        echo -e 
        echo "    KONVERTIERE:     ---> $title"
        echo -n "                          "; date; echo -e

        title=${title%.*}
        fileinfo=$($ffmpeg -i "$i" 2>&1)
        ffprobeInfo=$(ffprobe -v quiet -print_format json -show_format -show_streams "$i" 2>&1)

        # Errormeldung vor jason ab DSM 6.2 (wird hier abgeschnitten): ERROR: 
        # ld.so: object 'openhook.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored. { …
        ffprobeInfo="{ ${ffprobeInfo#*\{}"  

        # ------- AUDIOCODEC:
        audiocodec=`echo "$ffprobeInfo" | jq '.streams[1].codec_name' | sed "s/\"//g" `
        # Workaround, sofern "codec_name" nicht mit von ffprobe ausgegeben wird:
        if [ $audiocodec = "null" ]; then
            echo "keine Codec_name in ffprobeInfo gefunden / Audiocodec wird alternativ ausgelesen:"
            ffmpegaudioinfo=$(ffmpeg -i "$i" 2>&1)
            if echo "$ffmpegaudioinfo" | grep -q "Audio: ac3" ; then
                audiocodec=ac3
            elif echo "$ffmpegaudioinfo" | grep -q "Audio: mp3" ; then
                audiocodec=mp3
            elif echo "$ffmpegaudioinfo" | grep -q "Audio: aac" ; then
                audiocodec=aac
            elif echo "$ffmpegaudioinfo" | grep -q "Audio: none" ; then	# sehr experimenteller Workaround … 
                audiocodec=ac3
                echo "ac3-Codec wird lediglich angenommen …"
            else
                echo "Audiocodec nicht erkannt"
                continue
            fi
        fi
        audiofile="${WORKDIR}$title.$audiocodec"
        echo "Audiocodec:               $audiocodec"

        #	------- VIDEOCODEC:
        videocodec=`echo "$fileinfo" | grep "Video:" | awk '{print $4}'` 
        if [ $videocodec = "mpeg4" ] ; then
                videocodec="divx"
                vExt="tmp.m4v"; 
            elif [ $videocodec = "h264" ]; then
                videocodec="h264"
                vExt="h264"
            else 
                videocodec="unknown"
                echo "Videoformat nicht erkannt. ==> springe zu nächster Datei:"
                continue ; 
        fi
        echo "Videocodec:               $videocodec"
        videofile="${WORKDIR}$title.$vExt"

        #	------- FRAMERATE:
        rframerate_1=`echo "$ffprobeInfo" | jq '.streams[0].r_frame_rate' | sed "s/\"//g" | awk -F '/' '{print $1}'`
        rframerate_2=`echo "$ffprobeInfo" | jq '.streams[0].r_frame_rate' | sed "s/\"//g" | awk -F '/' '{print $2}'`
        fps=$(echo | gawk '{print '$rframerate_1'/'$rframerate_2'}')
        echo "Framerate:                $fps"

        #	------- DEMUX:
        #	------- Audio extrahieren / konvertieren:
        $ffmpeg -i "$i" -c:a copy -vn "$audiofile"  2>&1

        if [ $normalizeAudio = "on" ] ; then
            #	------- Audio normalisieren:
            volumeinfo=$(ffmpeg -i "$audiofile"  -af "volumedetect" -f null - 2>&1 | awk '-F: ' '/max_volume/ { gsub(/ .*/, "", $2); print $2 }' | sed 's/-//g')
            echo "Lautstärkeanhebung um:    $volumeinfo dB"
            convertLOG=$($ffmpeg -threads 2 -i "$audiofile" -c:a aac -strict -2 -b:a "${OTRaacqal%k}k" -af "volume=$volumeinfo"dB "$audiofile.m4a" 2>&1)
        else
            convertLOG=$($ffmpeg -threads 2 -i "$audiofile" -c:a aac -strict -2 -b:a "${OTRaacqal%k}k" "$audiofile.m4a" 2>&1)
        fi

        rm "$audiofile"
        audiofile="$audiofile.m4a"

        #	------- Video extrahieren:
        $ffmpeg -i "$i" -an -c:v copy "$videofile"  2>&1

#	-------REMUX:
        echo -e; echo " > mp4box Remux:"

        # Audio-Video-Syncparameter anpassen:
        mp4box -add "$videofile" -add "$audiofile" -fps $fps -tmp "$pfad" "${pfad}${title}.mp4"

        #	------- Temp löschen:
        rm "$videofile"
        rm "$audiofile"

        #	------- Original löschen:
        if [ -f "${pfad}${title}.mp4" ]; then 	# nur löschen, wenn erfolgreich konvertiert:
            if [ $endgueltigloeschen = "yes" ] ; then
                rm "$i"
            fi
        else
            echo "FEHLER: Zieldatei nicht gefunden!"
        fi
    done
 
Zuletzt bearbeitet:

GaRReTT2k

Benutzer
Mitglied seit
29. Dez 2013
Beiträge
45
Punkte für Reaktionen
0
Punkte
6
Super Plugin! Dekodieren usw. funktioniert wie es soll. Aber ich muss noch zu viel händisch über die Download Station eintragen. Habe jetzt das ganze Thema in Richtung RSS was gesucht - nichts gefunden. Auch auf deiner Seite gibt es keine Info darüber.

Wenn ich mir meinen persönlichen RSS Feed anzeigen lassen - mit den Aufnahmen, dann kann ich diesen in die Download Station einbinden zum Herunterladen. Aber irgendwie funktioniert das nicht so, wie es soll. Hast du hier eine Idee? Es werden leider keine Downloadfiles angezeigt. Die Download Station soll die Dateien generell in der Happy Hour herunterladen (Zeitplan so eingestellt).

- Eigene Zusammenstellung (Anleitung) (enthält die Downloadlinks, werden aber von der Download Station nicht gezogen)
- Ihre fertigen Aufnahmen (enthält nur Torrent-Dateien)
- Die neusten Torrents

rss.PNG
 

janZurLok

Benutzer
Mitglied seit
22. Mrz 2019
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
Hallo Stephan,

danke für das Skript, aber da habe ich mich wohl nicht deutlich genug ausgedrückt... Ich habe bereits meine ganze Sammlung mittels synOTR konvertiert. Einfach Ordnerweise in den meinen "Arbeitsordner" gekippt, synOTR gestartet und später zurückkopiert. Hat super geklappt. Danke!

Wahrscheinlich habe ich einen absolut anderen Arbeitsablauf als du - aktuell läuft es (mit synOTR) bei mir so:
Ich lade meine OTRkeys manuell über den Browser runter und schreibe sie direkt in ein Verzeichniss auf dem NAS (aktuell /video/OTRKEYs). Dort erkennt synOTR diese und verschiebt die fertigen Videos in einen weiteren Ordner (/video/NeueFilme). Danach muss ich die fertigen Videodateien in denn entsprechenden Ordner einsortieren - je nach Typ (z.B. /video/Serien/ oder /video/Kinder o.ä.).

In meinem Setup wäre es praktisch wenn ich die OTRKeys direkt in das endgültige Verzeichniss laden könnten (z.B. /video/serien), dort würde synOTR es konvertieren und ich müsste die fertige mp4-Datei gar nicht mehr anfassen. VideoStation würde autmatisch die neue MP4 indizieren und in meiner Videothek anzeigen.

Dazu müsste aber
a) SynOTR rekursiv alle Verzeichniss unterhalb eine Verzeichnisses (hier /video/) nach *.OTRKeys absuchen
b) die dekodierten, geschnittenen und umbenannten Videodateien an die gleiche Stelle kopieren (z.B. /video/serien) wo auch die OTRkey lag

Beides könnte man optional gestalten, um andere Workflows nicht zu stören.

Evlt. könnte ich das auch selber reinhacken, würde mich aber ungern von den zukünftigen Update abkoppeln...

Grüße,
Jan
 


 

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