PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Linux Shell Script zum automatischen decodieren und schneiden



_chrisu
03.05.2010, 14:55
Hallo zusammen,

ich möchte gerne für meine OTR Aufnahmen ein kleines Cronjob-gesteuertes Script erstellen welches mir vorhandene Otrkeys decodiert und schneidet.

Folgendes Szenario:
Ich habe mir eine kleine Firefox Extension gebaut, welche Links entgegen nimmt und diese per wget auf einen Server überträgt.
Unter anderem nutze ich dies auch für Otrkeys.
Jetzt habe ich am Ende des Tages ein Verzeichniss mit lauter Otrkey Dateien.
Dieses Verzeichniss ist für meinen WDTV zugänglich - leider kann dieser mit Otrkeys nichts anfangen ;)

Aktuell decodiere ich die Dateien noch manuell durch Aufruf des Otrkey-Shell Scriptes (siehe hier: http://wiki.onlinetvrecorder.com/index.php/OTRKeyDecoder#Bash-Script_f.C3.BCr_Batch-Dekodierung).
Hier gibt es das erste Problem: otrdecoder kann die Dateien nach decodieren wohl nicht löschen. Da ich leider nicht unterscheiden kann zwischen korrekt decodierter Datei und noch am runterlandender Datei kann ich also nicht pauschal alle otrkey-Dateien löschen.

Weiter habe ich immernoch Werbung in den Filmen. Hier ergibt sich ein neues Problem: Wie es sich für einen Server gehört ist auf meinem Server keine grafische Oberfläche installiert - für das schneiden der Filme benötige ich diese aber - oder gibt es mittlerweile Alternativen auf Konsolen-Ebene zu schneiden?

Zusammengefasst: Ich hätte gerne ein Script, welches ich jeden Abend per Cronjob aufrufe. Dieses Script nimmt sich ein bestimmtes Verzeichniss vor und decodiert hier vorhandene otrkeys und schneidet diese werbefrei.
Zu unterscheiden sind hier zwischen korrekt runtergeladenen Dateien und sich noch im Dowload befindliche Dateien.


Hat hier jemand Tipps, Ideen bzw. Programme mit denen ich dies Umsetzen könnte.

_chrisu

Usul
03.05.2010, 15:40
Weiter habe ich immernoch Werbung in den Filmen. Hier ergibt sich ein neues Problem: Wie es sich für einen Server gehört ist auf meinem Server keine grafische Oberfläche installiert - für das schneiden der Filme benötige ich diese aber - oder gibt es mittlerweile Alternativen auf Konsolen-Ebene zu schneiden?

Nun ja, es gibt seit geraumer Zeit (einige Monate) eine Testversion eines neuen Decoders, welcher, mit einer Schnittliste gefüttert, die Datei gleich geschnitten ausspuckt. Zumindest mit DivX klappt das bei mir unter Linux seit geraumer Zeit einwandfrei. Link zum entsprechenden Thread (http://www.otrforum.com/showthread.php/56706-Neuer-Dekoder-(Testversion))

Des weiteren gibt es auch noch diverse Schnittscripte für Linux, multicut.sh z. B. (Boardsuche sollte was liefern). Aber auch hier gilt unter Linux noch die Einschränkung, dass das nur mit Divx 100% funktioniert. Schneiden von h264 ohne Recodierung ist unter Linux leider im Moment und meines Wissens nach nicht möglich. Man kann die Filme zwar schneiden, muss aber unter Umständen an den Schnittkanten mit ein paar Bildfehlern rechnen. Es gibt zwar ein paar üblich Hacks mit Wine und VirtualDub, aber ob man das dann auch noch ohne grafische Oberfläche zum Laufen bekommt ... Mir ist das auf jeden Fall zu frickelig.

SGE
03.05.2010, 15:46
Weiter habe ich immernoch Werbung in den Filmen. Hier ergibt sich ein neues Problem: Wie es sich für einen Server gehört ist auf meinem Server keine grafische Oberfläche installiert - für das schneiden der Filme benötige ich diese aber - oder gibt es mittlerweile Alternativen auf Konsolen-Ebene zu schneiden?

multicut light ist dir aber ein Begriff?
Das schneidet seit Jahren per cutlists in der Console. Das man wiederum zum selber schneiden natürlich irgendeine grafische Ausgabe brauch liegt ja irgendwie auf der Hand




Zusammengefasst: Ich hätte gerne ein Script, welches ich jeden Abend per Cronjob aufrufe. Dieses Script nimmt sich ein bestimmtes Verzeichniss vor und decodiert hier vorhandene otrkeys und schneidet diese werbefrei.
Zu unterscheiden sind hier zwischen korrekt runtergeladenen Dateien und sich noch im Dowload befindliche Dateien.

Was spricht dagegen 2 Verzeichnisse zu verwenden?
Per wget herunterladen und mittels '&&' nach erfolgreicher Ausführung in das Verzeichnis mit definitiv fertig heruntergeladenen verschieben und dort dann das Decodierscript ausführen. In dem anderen sind dann die, die noch nicht vollständig sind und die kommen dir auch nicht in die Quere.

PeGu
03.05.2010, 16:30
Ich darf mal auf den alten Thread zum gleichen Thema verweisen, den man auch hätte wieder aufmachen können......
Dort habe ich ein kleines cron-script als Beispiel gepostet: http://www.otrforum.com/showthread.php/55913-automatisch-Decodieren?p=265441&viewfull=1#post265441

SGE
03.05.2010, 20:20
Ich darf mal auf den alten Thread zum gleichen Thema verweisen, den man auch hätte wieder aufmachen können......


Naja, da ist dieser hier vom Titel schon aussagekräftiger, zumal er auch noch schneiden will. Ich hätte den anderen auf Anhieb nicht gefunden.

_chrisu
03.05.2010, 22:17
multicut light ist dir aber ein Begriff?
Das schneidet seit Jahren per cutlists in der Console. Das man wiederum zum selber schneiden natürlich irgendeine grafische Ausgabe brauch liegt ja irgendwie auf der Hand


Doch, von multicut light habe ich schon gehört, und auch damit getestet, jedoch konnte ich keine Ergebnisse erzielen - ich habe das Testen dann eingestellt, da ich davon ausgegangen bin, dass ich hier doch nicht um die grafische Oberfläche herum komme.

Gerade der Automatik-Modus war das was mich hier gereizt hat.

Wenn ich nun aber höre, dass das schneiden damit definitiv - auf Konsolen-Ebene - möglich ist, werde ich mir das nochmal zu Gemüte führen.

Oder hat jemand diesbezüglich noch ein paar Tipps, oder Hinweise die ich bei Verwendung des Programm beachten sollte?


Was spricht dagegen 2 Verzeichnisse zu verwenden?
Per wget herunterladen und mittels '&&' nach erfolgreicher Ausführung in das Verzeichnis mit definitiv fertig heruntergeladenen verschieben und dort dann das Decodierscript ausführen. In dem anderen sind dann die, die noch nicht vollständig sind und die kommen dir auch nicht in die Quere.
Eine ziemlich einfache, aber umso genialere Lösung. Hätte man eigentlich auch früher drauf kommen können, das löst das Problem mit der Unterscheidung zwischen fertigen und nicht fertig heruntergeladenen Dateien ... ;)


Vielen Dank schonmal

_chrisu

SGE
04.05.2010, 00:02
Wenn ich nun aber höre, dass das schneiden damit definitiv - auf Konsolen-Ebene - möglich ist, werde ich mir das nochmal zu Gemüte führen.

Oder hat jemand diesbezüglich noch ein paar Tipps, oder Hinweise die ich bei Verwendung des Programm beachten sollte?


Wichtig ist, das du die einfache Konsolen-Version von Avidemux installieren kannst. Was hast du für eine Distribution?
Hier werkelt Debian squeeze, da ist das Programm in verschieden kleine Pakete aufgeteilt und man kann auch nur avidemux-cli für die Shell installieren. Wenn das nur als ganzes vorliegt wird es halt schwierig, wenn das die ganzen 800.000 X-Abhängigkeiten mitzieht. Aber das _cli könnte ich hier auch völlig ohne X einsetzen. Problem ist halt, das du die Schnittliste nie richtig kontrollieren kannst, außer vlt. mit mplayer im framebuffer. Aber kontrollieren kann man im batch-Modus ja eh schlecht.;-)


Eine ziemlich einfache, aber umso genialere Lösung.
Fiel mir so spontan dazu ein.
Man könnte natürlich auch komplizierte Sachen mit find -mtime oder Dateigrößen-Check einbauen, aber so simpel mit 'mv, wenn Download fertig' sollte es eigentlich funktionieren, solange nicht die Netzverbindung gekappt wird. Aber dann dürfte wget auch keinen positiven Exitcode auswerfen.

downspin
05.05.2010, 00:03
[...]
Hier gibt es das erste Problem: otrdecoder kann die Dateien nach decodieren wohl nicht löschen. Da ich leider nicht unterscheiden kann zwischen korrekt decodierter Datei und noch am runterlandender Datei kann ich also nicht pauschal alle otrkey-Dateien löschen.
[...]
Wenn du die otrkeys vom Dekoder überprüfen lässt, meldet er ja, wenn die Datei noch nicht komplett ist, Input File corrupt oder so und gibt nen Rückgabewert !=0 zurück, also könntest du ne for Schleife über den Ordnerinhalt laufen lassen und beim Dekoderaufruf && rm $file hintersetzen. Das löscht dann nur nach Erfolgreichem Durchlauf.

BTW: Die Firefoxextension magst du nich rein zufällig veröffentlichen? Sowas such ich nämlich noch, da ich meine Downloads auch lieber über meinen Heimserver laufen lasse, weil der schneller angebunden ist, als der Laptop über Wlan.

_chrisu
05.05.2010, 12:04
Wichtig ist, das du die einfache Konsolen-Version von Avidemux installieren kannst. Was hast du für eine Distribution?

Habe hier ein Debian Lenny in einer VM laufen. Installation des avidemux werde ich über aptitude machen, hab mir die deb bereits in die Sources gelegt.


Hier werkelt Debian squeeze, da ist das Programm in verschieden kleine Pakete aufgeteilt und man kann auch nur avidemux-cli für die Shell installieren. Wenn das nur als ganzes vorliegt wird es halt schwierig, wenn das die ganzen 800.000 X-Abhängigkeiten mitzieht. Aber das _cli könnte ich hier auch völlig ohne X einsetzen. Problem ist halt, das du die Schnittliste nie richtig kontrollieren kannst, außer vlt. mit mplayer im framebuffer. Aber kontrollieren kann man im batch-Modus ja eh schlecht.;-)

Die Genauigkeit der Schnittliste ist mir nicht soooo wichtig - kann man ja notfalls noch nachbearbeiten.


Fiel mir so spontan dazu ein.
Man könnte natürlich auch komplizierte Sachen mit find -mtime oder Dateigrößen-Check einbauen, aber so simpel mit 'mv, wenn Download fertig' sollte es eigentlich funktionieren, solange nicht die Netzverbindung gekappt wird. Aber dann dürfte wget auch keinen positiven Exitcode auswerfen.

Naja da tendiere ich doch lieber zu der Zwei-Ordner Methode.

Wenn ich Befehle mittels && verkette findet dann bereits eine Slektierung statt, dass Befehl2 erst nach erfolgreichem Ausführen von Befehl 1 ausgeführt wird?
Ich dachte bisher, dass bei Befehl1 && Befehl2 die Befehle einfach nur nacheinander abgearbeitet werden, unabhängig vom Exit-Code.

@downspin:
Die Firefox-Extension ist eigentlich nur ein searchplugin vergewaltigt, in Kombination mit einem kleinen PHP-Script ergibt dass dann mein Wget-Downloader ...
Wenn interesse besteht kann ich die paar Zeilen Programmcode gerne veröffentlichen.

downspin
05.05.2010, 12:13
Ich dachte bisher, dass bei Befehl1 && Befehl2 die Befehle einfach nur nacheinander abgearbeitet werden, unabhängig vom Exit-Code.

Nacheinander abarbeiten wird mit nem ; getrennt. && halt nach Erfolg und || wenn Exit-Code ungleich 0 ;)


@downspin:
Die Firefox-Extension ist eigentlich nur ein searchplugin vergewaltigt, in Kombination mit einem kleinen PHP-Script ergibt dass dann mein Wget-Downloader ...
Wenn interesse besteht kann ich die paar Zeilen Programmcode gerne veröffentlichen.
Ja bitte :)

_chrisu
09.05.2010, 12:26
Ja bitte :)

Siehe hier:
http://www.otrforum.com/showthread.php/60354-quot-Firefox-Download-Extension-quot

downspin
09.05.2010, 22:21
Siehe hier:
http://www.otrforum.com/showthread.php/60354-quot-Firefox-Download-Extension-quot

Merci :)

123456