Brauche Hilfe für Script zur OTR-Batchdekodierung

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.479
Punkte für Reaktionen
187
Punkte
129
Ich habe noch keinen EasyDecoder zum laufen bekommen - habe aber auch absolut keine Linuxerfahrung. Deshalb habe ich es auch nur sehr oberflächlich versucht. Der Fehlermeldung entsprechend vermute ich mal, dass man den EasyDecoder installieren muss, was bei dem normalen ja nicht der Fall ist:
Rich (BBCode):
DS> /volume1/downloads/EasyDecoderKernel2_4/otrdecoder -h
/volume1/downloads/EasyDecoderKernel2_4/otrdecoder: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory

Mich würde es auch freuen, wenn dies einmal jemand mit etwas Erfahrung testen möchte (eine install.sh ist im Paket ja enthalten). Würde der EasyDecoder laufen, wäre das ja auch ein Ansatz zum Schneiden (ffmpg ist ja enthalten).
 

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.479
Punkte für Reaktionen
187
Punkte
129
Neues von der Cutter-Front:

Auch das Schneiden funktioniert inzwischen - allerdings mit Einschränkungen.

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.

Der für mich entscheidente Nachteil ist, dass avisplit im Gegensatz zu avidemux nur an Keyframes schneiden kann. Die Schnitte sind also in der Regel nicht framegenau.
Aber für den Anfang geht es :)

Ich suche nach einer Möglichkeit, avidemux auf der x86 DS zum laufen zu bringen - hat jemand einen Tipp??? Wäre echt super!
 

jahlives

Moderator
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
2
Punkte
0
Ich suche nach einer Möglichkeit, avidemux auf der x86 DS zum laufen zu bringen - hat jemand einen Tipp??? Wäre echt super!
guck doch mal ob ein Debian chroot etwas sein könnte. Lässt sich bei einer x86-DS wohl problemlos aufsetzen. In einem chroot kannst du eigentlich alles machen, ausser Sachen welche Kernelunterstützung brauchen. Denke dass dein Vorhaben kaum Kernelsachen voraussetzen wird, daher sollte es imho über einen chroot am Schnellsten gehen. Du könntest alternativ auch probieren avidemux direkt auf der DS zu bauen, im chroot hättest du es jedoch "schön" vom System (Firware) abgetrennt. Zum chroot solltest du was im Wiki finden
 

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.479
Punkte für Reaktionen
187
Punkte
129
Danke für den Tipp. An das Debian-Thema hatte ich mich noch nicht so richtig herangetraut. Bin ja eigentlich auch kein Linuxer …
Inwieweit kann die Chroot-Umgebung mit Scripten von 'außerhalb' interagieren? Geht das problemlos? Das Chroot ist doch eigentlich auch etwas für sich, oder?
 

jahlives

Moderator
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
2
Punkte
0
ein chroot kann nur auf Umwegen mit dem System ausserhalb interagieren. So kann z.B. der chroot einen tcp Socket auf die IP des Systems öffnen und dann mit einem Script via TCP reden. Ein Filesystemzugriff aus dem chroot auf das Hauptsystem geht nur dann wenn du vom Hauptsystem einen mount --bind in den chroot hinein machst. Klar ein chroot ist einmal ein bisschen ein Aufwand, aber man kann (praktisch) den DSM durch einen chroot ned zerschiessen. Wenn du aber avidemux direkt im DSM bauen würdest, kann man immer auch irgendwie das System abschiessen. Der chroot wäre hier imho der sicherere Weg.
Will ja keine Werbung machen :) aber ein anderer Vorteil eines choots
Code:
root@xen3:~ # apt-cache stats
Total package names: 47057 (941 k)
Total package structures: [B]47057[/B] (2,635 k)
  Normal packages: 35697
  Pure virtual packages: 369
  Single virtual packages: 4304
  Mixed virtual packages: 1015
  Missing: 5672
Total distinct versions: 36965 (2,661 k)
Total distinct descriptions: 73398 (1,762 k)
Total dependencies: 217810 (6,099 k)
Total ver/file relations: 37856 (909 k)
Total Desc/File relations: 73398 (1,762 k)
Total Provides mappings: 7438 (149 k)
Total globbed strings: 176 (1,878 )
Total dependency version space: 865 k
Total slack space: 29.1 k
Total space accounted for: 12.5 M
als ein bissl mehr Auswahl als bei ipkg :-D
 

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.479
Punkte für Reaktionen
187
Punkte
129
Sehr interessant!
Ich werde mal sehen

Klar ein chroot ist einmal ein bisschen ein Aufwand, aber man kann (praktisch) den DSM durch einen chroot ned zerschiessen. Wenn du aber avidemux direkt im DSM bauen würdest, kann man immer auch irgendwie das System abschiessen.

Wo liegt deiner Erfahrung gemäß die größte Gefahr? Beim compilieren von Anwendungen?
 

jahlives

Moderator
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
2
Punkte
0
Wo liegt deiner Erfahrung gemäß die größte Gefahr? Beim compilieren von Anwendungen?
habe z.B. schon bei ./configure die Optionen zum Outputpfad nicht gesetzt und schwupps wurde das Binary unter /bin überschrieben, obwohl ich es ja eigentlich in /usr/local/bin haben wollte. Ist mir erst kürzlich passiert als ich dovecot aus den Quellen bauen wollte, aber auch noch eine apt Version von dovecot hatte. Die apt Version von dovecot war danach ziemlich zerschossen :)
Ich sage ja nicht du sollst nicht aus den Quellen direkt auf der DS bauen, es ging mir nur drum, dass man im chroot dabei wesentlich weniger kapputtmachen kann ;-) Notfalls wird der chroot einfach gelöscht und neugemacht
 

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.479
Punkte für Reaktionen
187
Punkte
129
Ich sage ja nicht du sollst nicht aus den Quellen direkt auf der DS bauen, …
Habe ich schon verstanden.
Aber es ist auch interessant, an welcher Stelle Probleme auftreten können / wo Gefahren lauern.
 

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.479
Punkte für Reaktionen
187
Punkte
129
Brauche Hilfe für CUT-Script

Hallo Zusammen,

als Nicht-Linuxer versuche ich gerade das Video-Schnitt-Script automatisiert aufzurufen.
Es handelt sich um dieses Script: LINK

Um nicht für jeden Film einzeln das Script manuell zu starten, habe ich folgendes "StartScript" erstellt:
Rich (BBCode):
#!/bin/bash
# otrcut


#------------------------- Variablen:
OTRcut="/volume1/downloads/OTRkeys/otrdecoder_static/OTRcut.sh"

#Verzeichnis mit den dekodierten Film-Dateien:
infolder="/volume1/downloads/OTRdecodiert/autocut/"

#Ausgabeverzeichnis:
outfolder="/volume1/video"


#------------------------- schneiden: 
for i in $(find "$infolder" -maxdepth 1 -name "*.avi" -type f)
	do
         /opt/bin/bash "$OTRcut" -a -e --delete --toprated -i "$i" -o "$outfolder"
	done
dass ich mit
Rich (BBCode):
/opt/bin/bash /volume1/downloads/OTRkeys/otrdecoder_static/OTRcutStart.sh
aufrufe.

Das funktioniert via Terminal auch wie gewünscht.

Rufe ich das Startscript aber via Cronjob auf, erscheint der LOG-Eintrag:
Rich (BBCode):
...
Überprüfe ob avisplit installiert ist --> [22;31mfalse[0m
[22;33mInstallieren Sie transcode![0m
Keine Config-Datei gefunden, benutze Standardwerte.


Anscheinden findet das OTRcut.sh nicht die IPKG Version von avisplit und avimerge.
Der Code ab Zeile 349 sollte dafür verantwortlich sein:
Rich (BBCode):
…
#Hier wird überprüft ob avisplit und avimerge installiert sind
if [ "$UseAvidemux" == "no" ]; then
for p in avisplit avimerge; do
echo -n "Überprüfe ob $p installiert ist --> "
if type -t $p >> /dev/null; then
echo -e "${gruen}okay${normal}"
CutProg="avisplit"
else
echo -e "${rot}false${normal}"
echo -e "${gelb}Installieren Sie transcode!${normal}"
exit 1
fi
done
fi
…
Allerdings weiß ich nicht, wo ich den Pfad ändern müsste.

Hat jemand den entscheidenden Tipp?
 

chiefe

Benutzer
Mitglied seit
19. Jun 2013
Beiträge
1
Punkte für Reaktionen
0
Punkte
0
gibt es auch eine möglichkeit das automatische decodieren der otr files für die ds213j zu realisieren?

finde das thema sehr spannend.
 

jahlives

Moderator
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
2
Punkte
0
was ergibt denn ein
Code:
 which avisplit which avimerge
? Allenfalls kannst du bei for auch den gesamten Pfad zum Binary angeben. Dann müsste das Script die Files imho finden
 

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.479
Punkte für Reaktionen
187
Punkte
129
Irgendwie habe ich das Gefühl, man kommt vom Hundertsten zum Tausendsten.

O.K. - jetzt weiß ich, wo ich den ganzen Pfad angeben konnte. Vielen Dank.
Als nächstes konnte das Script nicht den Standard-Temppfad ""/tmp/" erkennen. Das konnte ich aber abbiegen.

Aber hier komme ich nicht weiter:
Rich (BBCode):
…
cutlist_anzahl=$(grep -c '/cutlist' "$tmp/search.xml" | tr -d "\r") #Anzahl der gefundenen Cutlists
let cutlist_anzahl
if [ "$cutlist_anzahl" -ge "1" ] && [ "$continue" == "0" ]; then #Wenn mehrere Cutlists gefunden wurden
…
Im Log wird mir gesagt, dass es mit "tr" (was immer das ist) nichts anfangen kann:
Rich (BBCode):
/volume1/downloads/OTRkeys/otrdecoder_static/OTRcut.sh: line 608: tr: command not found
/volume1/downloads/OTRkeys/otrdecoder_static/OTRcut.sh: line 610: [: : integer expression expected

Am meisten wundert mich, dass über Telnet das Script ja funktioniert, nur nicht als Cronjob. Daher muss man das doch irgendwie hinbekommen …
 

jahlives

Moderator
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
2
Punkte
0
Du siehst schon, dass tr wieder ohne kompletten Pfad dasteht? cron hat einen eigenen PATH, der meist nicht identisch ist mit dem PATH einer Shellumgebung. Drum funzt es direkt auf der Konsole aber mit cron ned. Also entweder komplette Pfade zum Kommando oder PATH im Script entsprechend setzen.

Gruss aus dem hohen Norden wo es gerade aus Kübeln schifft

Tobi
 

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.479
Punkte für Reaktionen
187
Punkte
129
Ich habe das schon gesehen, dass da kein Pfad mit dasteht, aber ich dachte, dass es ein Befehl und keine Datei ist…
Okey - wieder ein Stück weiter :)

Als nächstes gilt es diese Zeile abzuarbeiten:
Rich (BBCode):
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
Fehlermeldung:
Rich (BBCode):
/volume1/downloads/OTRkeys/otrdecoder_static/OTRcut.sh: line 1004: nice: command not found
Avisplit oder avimerge muss einen Fehler verursacht haben.
Und weil ich ja jetzt schon was gelernt habe, habe ich den Pfad "/opt/bin/nice" angegeben.
Jetzt kommt die Fehlermeldung:"/opt/bin/nice: avisplit: No such file or directory"
Ich habe jetzt gesehen, dass /opt/bin/nice ein Link ist. Wie kann ich herausfinden, wohin der Link führt?

Danke für deine Geduld!!!
 

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.479
Punkte für Reaktionen
187
Punkte
129
OTRcut.sh Schneidescript

Habe es jetzt hinbekommen - Vielen Dank für die Hilfe!!!

Hinweis für alle Interessierten:
Haupteinschränkungen durch das fehlende Avidemux bleiben natürlich bestehen: Schneiden lediglich an Keyframes, Seitenverhältnis bei HQ-Aufnahmen ist gestaucht.

Die 2 Scripte habe ich mal angehangen: Anhang anzeigen SCRIPTE.zip
Die Pfade müssen noch angepasst werden. In OTRcutStart.sh Zeilen: 8, 11, 14 und in OTRcut.sh die Zeile 40 für den Tempordner.

Aufzurufen ist es dann mit:
Rich (BBCode):
/opt/bin/bash /volume1/…PFAD…/OTRcutStart.sh


gibt es auch eine möglichkeit das automatische decodieren der otr files für die ds213j zu realisieren? finde das thema sehr spannend.

Leider NEIN!
Der Decoder liegt (verständlicherweise) nicht als Sourcecode vor - kann also nicht auf beliebigen Plattformen kompiliert werden. Von den Synoboxen werden lediglich die Atomboxen (x86) unterstützt.
 

Sohle

Benutzer
Mitglied seit
16. Okt 2013
Beiträge
23
Punkte für Reaktionen
1
Punkte
1
Hallo zusammen,

erstmal ein dickes HALLO und DANKE an das Forum.
Habe seit gut einer Woche eine DS213+ und bin bisher sehr zufrieden. Viele Fragen konnte ich dank der Forumsuche gut lösen.

MeinProblem:
Läuft irgendein OTRDecoder mittlerweile mit der DS213+ (Prozessor scheinbar: Freescale QorIQ P1022 PPC, 64bit)? Ich habe viele Versionen des Decoders durchprobiert und keiner funktioniert.
Entweder läuft keiner oder ich mache etwas falsch. Hier gleich die Frage, ob ich den Decoder irgendwie installieren muss oder reicht es den ins passende Verzeichnis zu packen?
Falls der OTR Dekoder - so wie das ja verstehe - nicht mit einem ppc Prozessor läuft, gibt es dann noch eine andere Möglichkeit? Gelesen habe ich von QEMU und iPKG, aber bisher nicht wirklich kapiert.
 

Der Uli

Benutzer
Mitglied seit
28. Nov 2013
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Guten Morgen zusammen,

ich bin seit ein paar Tagen ebenfalls Besitzer einer DS214play und wollte gerne das Skript von geimist für die Decodierung auf der DS verwenden. Habe alles nach Anleitung durchgeführt und es funktioniert auch teilweise - aber eben nur teilweise. Das Problem ist, dass das Skript die .ortkey Datei erkennt, es am Ende auch richtig als #recycle umbenennt, aber der eigentliche Decodiervorgang nicht stattfindet. Es ist keine Datei im Ausgabeordner.
In den Eigenschaften hat die Skriptdatei alle benötigten Rechte, Variablen sind offensichtlich auch alle richtig, den richtigen Decoder habe ich auch geladen...was kann ich falsch gemacht haben?

Für ein paar Tipps wäre ich Euch sehr Dankbar!

Gruß aus dem Norden,
Patrick
 

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.479
Punkte für Reaktionen
187
Punkte
129
Hallo Patrick,

leider bin ich in dieser Hinsicht auch kein Profi :-( [daher überhaupt der Thread hier].

Ich hoffe mal, dass der OTRdecoder auch mit deiner ATOM-Version (Evansport) problemlos funktioniert.
Versuche mal bitte zum Test folgende Dinge:

Verbinde dich mal via Telnet/ssh mit deiner DS und setze folgenden Befehl ab:
Rich (BBCode):
Pfad/zu/deinem/otrdecoder -h
Läuft der Otrdecoder bei dir, so sollte das die verfügbaren Parameter auflisten. Das wäre schon mal gut …

Als nächstes starte doch mal dein erstelltes Script via Konsole, in dem du einfach den Pfad eingibst:
Rich (BBCode):
Pfad/zu/deinem/otrdecodieren-script.sh
Kommen Fehlermeldungen?

Du kannst auch mal den otrdecoder ohne Script bedienen, indem du die Parameter direkt übergibst:
Rich (BBCode):
Pfad/zu/deinem/decoder -i "Pfad/zu/deinem/film.avi.otrkey" -o "Pfad/zu/deinem/AusgabeORDNER" -e "OTR-Benutzername" -p "OTR-Passwort"

Irgendwie müssen wir den Fehler eingrenzen.
 

Der Uli

Benutzer
Mitglied seit
28. Nov 2013
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Hallo Stephan,

erst mal danke das Du antwortest und versuchst zu helfen!

1. Erreichbar ist der Decoder und funktioniert auch, also die Befehle werden entsprechend aufgelistet.
2. Der direkte Start des Skriptes ergibt folgende Meldung:
otrdecoder: ../sysdeps/unix/sysv/linux/getpagesize.c:32: __getpagesize: Assertion `_rtld_global_ro._dl_pagesize != 0' failed.
Aborted (core dumped)

3. Der direkte Aufruf des Decoders gibt auch hier diese Rückmeldung:
otrdecoder: ../sysdeps/unix/sysv/linux/getpagesize.c:32: __getpagesize: Assertion `_rtld_global_ro._dl_pagesize != 0' failed.
Aborted (core dumped)


Hmm....und was sagt mir das jetzt, bzw. was sollte/kann ich nun machen? Kann ich überhaupt etwas machen?

[NACHTRAG]
Habe jetzt mal den dynamisch gelinkten Decoder genommen (Fehlermeldung gegooglet) und jetzt scheint es zu funktionieren...

Vielen Dank für die Hilfe! :)
[NACHTRAG ENDE]

Viele Grüße von hier nach da,
Patrick
 
Zuletzt bearbeitet:

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.479
Punkte für Reaktionen
187
Punkte
129
Das ist ja interessant …
Schön, dass es jetzt funktioniert. Und die anderen mit der DS214play wissen auch gleich, welchen Decoder sie verwenden müssen.

Falls du auch das obige Cut-Script fürs automatische Schneiden verwenden möchtetst: Das funktioniert leider nicht so stabil, wie gewünscht.
Das Script hängt sich oft auf (bzw. kommt irgendwie nicht aus einer Schleife [sieht man im LOG, wenn man das Schneidescript via Konsole startet]). Bash bleibt dann permanent mit 25% CPU-Auslastung am Laufen. Bei manchen Filmen geht es, bei manchen eben nicht. Ich konnte noch kein Muster reproduzieren.

Es gibt noch zwei weitere Ansätze, aber leider fehlt mir dazu das Know How.
Es gibt wohl ein ziemlich gutes und umfangreiches Pythonscript. Da kam ich aber nicht weiter.
Die beste Lösung in meinen Augen wäre, wenn man avidemux zum laufen brächte. Das müsste aber kompiliert werden, und ich habe keine Ahnung. Für Avidemux gibt es dann auch viele Scripte, womit man zudem noch Framegenau schneiden kann.