Preprocessing/Batch Tool für den TS-Doctor

Begonnen von Mindwarp, Januar 17, 2016, 18:38:08

« vorheriges - nächstes »

Mindwarp

Hallo zusammen,

Ich habe ein Tool für ein Preprocessing des TSD geschrieben.
Hierbei geht es hauptsächlich um
Datinamenanpassungen,
Folgejobs ausführen (TSD und Project X),
EPG Erkennung (leider nur für Geräte die ich selbst betreibe) Schnittstelle für andere Geräte ist vorhanden,
Schnittmarken setzen...

Es handelt sich hierbei um eine Beta Version - Fehler sind also vorhanden.
Anfangs bitte die Videodateien auf den PC kopieren und von dort bearbeiten. Ich möchte nicht, daß Videofiles
verloren gehen.

Die Software läuft unter Powershell mit WinForms und war als Übungsprojekt für Powershell gedacht.
Es ist möglich, daß bei Usern Probleme mit Verzeichnispfaden auftreten, da an der einen oder anderen Stelle
vergessen wurde diese dynamisch zu gestalten.
Ich Bitte hier also um Nachsicht.
Wer möchte, kann das Tool an die eigenen Bedürfnisse anpassen.
Ich halte es für sinnvoll, falls jemand für weitere Receiver eine EPG Erkennung schreibt diese zwecks Integration zu veröffentlichen (Unterstützt wird momentan nur Enigma2 und VDR (Klaus Schmidingers VDR Software)).

Ich selber nutze das Tool seit über 2 Jahren und finde es hilfreich.
Wer Interesse hat, kann es sich mal anschauen.

Da ich zur arbeitenden Bevökerung gehöre und auch andere Interessen habe, Bitte ich um Verständnis, wenn eine Antwort auf eine Anfrage oder eine Fehlerkorrektur länger brauchen.

An die Programmiermeister: Mir ist bewusst, daß das Programm relativ chaotisch ist und sich Lösungen mit meinem Wissensstand über Powershell verändert haben. Verbesserungsvorschläge sind willkommen.

Da ich selber nur WIN8.1 nutze, kann ich auch nur für dieses Betriebssystem Unterstützung anbieten.

Wenn genug Interesse besteht, werde ich eine detailliertere Anleitung nachreichen.
Ich hoffe, die untenstehende Anleitung reicht für den Anfang.

==================

Wie ist der Ablauf:
Einmalig die beiden INI Dateien anpassen. Wer Project-X benutzt, kann auch die X.ini anpassen.

Das Tool wird mit RenameForms.Ini gestartet.

1. Auswahl der Eingabedatei
2. Anpassen der Daten (im Regelfall nicht nötig)
3. Der Batchliste hinzufügen (oder direkt Starten)
4. Batch starten

Autofiller:
1. Autofiller anklicken
2. Jede einzelne Aufnahme per Klick zur Batchliste hizufügen oder ablehnen
3. Batch starten

Was kann die Software:
Videodateien umbenennen
Serien erkennen und automatisch Staffel und Episode hinzufügen
Batch Verarbeitung für bis zu 9 Aufnahmen
Standard Schnittmarken setzen (Vor- Nachlauf markieren)
Default-Schnittmarken je Serie setzen (Für jede Serie individuell)
TS-Doctor und ProjectX nacheinander aufrufen (für SD-Material)
Schnittmarken für Cuttermaran und TS-Doctor erstellen
Autofiller, der die Aufnahmen der letzten X Tage sucht
Parallel Verarbeitung im Batch Betrieb (mehrere Instanzen des TS-Doctors und Project X)

TS = TS-Doctor Starten
PX = Project X Starten
CS = ComSkip

Änderungen in den Textfeldern unterhalb des fettgedruckten Wortes Batch oder werden ignoriert oder können zu Fehlern führen. Die Felder wurden aus Lesbarkeitsgründen nicht disabled.
Entweder muß die Checkbox TS oder TS+PX gefüllt sein.

Oft ist ein Klick auf Refresh notwendig, damit die Daten ordnugsgemäß übernommen werden.

Episodenlisten werden im Format von http://eplists.constabel.net gefüllt. Am besten das Gesamtpaket UTF-8 herunterladen und in das Episodenverzeichnis stellen.
Das Verzeichnis wird in der Ini eingestellt.
Bei Recordern mit fehlender EPG Erkennungsroutine kann im Reiter Main auf der rechten Seite die Serie/Staffel/Episode ausgewählt werden und die Bezeichnung wird in den Ausgabedateinamen übernommen.

Voraussetzungen:
Powershell 3
Evtl. .Net
Episodenlisten von http://eplists.constabel.net/ (UTF-8 Format)

Viel Spaß beim experimentieren.

Djfe

sieht interessant aus!
werd ich mir die Tage mal ansehen
bin gerade etwas im Stress

Danke fürs Teilen!

Mindwarp

Hallo Dfje,

ein Start aus der Powershell ISE wirft ein paar Fehler beim Ermitteln des Verzeichnis der Sourcen.
Der Fehler ist in der Version 0.80 korrigiert.

Für mich ist es das erste Mal das ich Software teile.
Bitte berichte über Deine Erfahrungen mit dem Tool.
Mich interessiert, ob es überhaupt auf anderen Rechnern funktioniert und wo es Problem gibt.
Auch eine Einschätzung, ob es für andere nützlich sein könnte, wäre hilfreich.

Mindwarp

Hallo zusammen,

ich beschreibe mal die Abläufe des Tools, so wie ich es selbst nutze.
Dann kann jeder selbst entscheiden, ob es zu seinen Abläufen passt.

Vorab:
Das Tool unterstützt die Verarbeitungen vor dem eigentlichen Schnitt.
Also das fixen oder demuxen (SD) des Videofiles durch den TS-Doctot (TSD) oder Project-X (PX).
Hierfür werden 3 Verzeichnisse benötigt (der Pfad wird in der rename.ini eingestellt).
1.  Umbenennungsverzeichnis für TS Dateien
    Hierhin werden die Eingabedateien verschoben/kopiert (je nach Einstellung in der RenameRecorderProfile.ini)
    Das Tool führt dann eine Umbenennung der Dateien durch.
    Die Unterpfade müssen leer sein, damit die Umbenennung funktioniert - wichtig bei einem Wiederholungslauf.
2.  Verzeichnis der TS Dateien des TS-Doctors
    Hier kommen die gefixten Files des TSD hineien.
    Die Datei mit den Sendungsinformationen wird neu erstellt - die alte Datei erält das Postfix _Original.
    Desweiteren werden eine Cuts und Edl Datei erstellt.
    Die Edl Datei enthät wie die Cuts Datei Schnittmarken, wird aber im Gegensatz zu Cuts Datei
    beim Drag and Drop berücksichtigt. Das ist sehr praktisch, da man den Open-Dialog für die Cuts Datei nicht benötigt.
3.  Verzeichnis der gemuxten Dateien von ProjectX
    Hier landen die Dateien nach dem Demux von Project-X.
    Es wird erwartet, das Project-X so eingestellt ist, daß die CPF Dateien des Cuttermaran erzeugt werden.

Die Struktur der Verzeichnisse ist.
/Serienname/S01E01 Episodenname/S01E01 Episodenname.ts
Bei Filmen steht hier natürlich der Filmname.
Sollte größeres Interesse bestehen, kann man zukünftig anpassbare Dateinamen einbauen.

======================

Der Ablauf:

1. Rekorder auswählen
   Zu finden im Reiter Main unter dem Button Eingabe (links oben).
   Man kann für 2 Rekorder Einstelungen in der RenameRecorderProfile.ini anlegen.
   Momentan werden nur der VDR (Klaus Schmiedingers VDR) und Enigma Rekorder unterstützt.
   Andere Rekorder besitze ich nicht.
   In der RenameRecorderProfile.ini kann man folgendes einstellen:
   1. Die Bezeichnung, welche im Dropdown Feld angezeigt wird.
   2. Den Pfad zu den Eingabedateien. (FTP UPNP usw. wird nicht unterstützt.)
   3. Der Funtionsname der Powershellfunktion zum extrahieren der EPG Datein.
      Der Aufruf ist dynamisch gestaltet.
      Wer eine eigene Routine bauen will, muss als Ausgabe ein Objekt
      der Funktion EpgObjektBauen zurückliefern und den neuen Funktionnamen dort eintragen. 
   4. Den Dateinamen der EPG Datei und wenn vorhanden der META Datei
   5. Weitere Dateien die kopiert werden sollen.
2. Eingabe Datei wählen
   Der Button befindet sich links oben.
   Es wird der Pfad aus der RenameRecorderProfile.ini geöffnet
   Es muss die Videodatei ausgewählt werden (Also *.ts Datei)
3. Ermittlung der EPG Informationen (keine Aktion des Anwenders nötig)
   Es wird die EPG Datei gelesen. Anhand dieser Information werden Serienname und Titel bestimmt.
   Dann wird im Episoden Verzeichnis nachgeschlagen, ob eine entsprechende .episodes Datei vorhanden ist.
   Bei einem Treffer wird in der Datei nach dem Serientitel gesucht und der neue Dateiname generiert.
   Handelt es sich um einen Film, dann sollte das Häkchen aus der Checkbox Serie (linke Seite) entfernt werden.
4. Einmal auf Refresh klicken. Leider scheint hier noch ein Bug vorhanden zu sein, der es nötig macht,
   die Daten ein 2. mal einzulesen.
5. Gefällt einem der generierte Dateinamen nicht, kann man über die Checkboxen Update Eingabe/Update Ausgabe
   das Aktualisieren der Dateien zu unterbinden (siehe auch Tooltip der Textfelder in Zeile 4 + 5).
   Der geänderte Dateiname wird durch klick auf Refresh übernommen.

Die Informationen sollten jetzt komplett sein.
Man kann sich nun entscheiden, ob das Video direkt verarbeitet wird, oder der Batchliste (9 Einträge sind möglich)
hinzugefügt wird.

Direktes Starten:
Klicken auf den Button Ren+TS startet die Verarbeitung nur für den TS-Doctor.
Klicken auf den Button TS+PX startet die Verarbeitung für den TS-Doctor und anschließend von Project-X.
Andere Funktionalitäten wie z.B. ComSkip (CS) sind zwar vorhanden, werden von mir aber schon lange nicht mehr genutzt.
Das kann funktionieren - ich weiß es aber nicht.

Batch Liste:
Durch klicken auf BatchAdd wird das File der Batchliste hinzugefügt.
Eine der Checkboxen TS oder TS+PX sollte durch den Anwender markiert werden.
Die Funktionalitäten entsprechen denen der Buttons Ren+TS oder TS+PX.
Die Checkbox Serie wird automatisch aus der Checkbox Serie am linken Rand gefüllt.
AB steht für AutoBatch und sollte wie die anderen Checkboxen nicht markiert werden.
Bei AB handelt es sich um eine Testfunktionalität und funktioniert nur zusammen mit der Schnittmarkendatei des VDRs.
Desweiteren gehen etliche TS-Ströme verloren. Es bleibt nur der Video- und ein Audiodatenstrom übrig.
Die Textfelder im Batchbereich sind nur Infofelder. Das ändern dieser Dateien hat keine Auswirkung.
Aus Gründen der Lesbarkeit habe ich die Felder nicht deaktiviert.
Hat man mehr als 4 Batchdateien eingestellt, sollte auf den Reiter Batch gewechselt werden.
Hier hat man zusätzlich noch die Möglichkeit durch Klick auf "Alle TS" oder "Alle TS + PX" bei allen Batchdateien
die entsprechenden Häkchen maschinell setze zu lassen.
Im Textfeld neben dem fettgedruckten Wort Batch wird die Anzahl der parallel Verarbeitungen eingestellt.
Die Vorbelegung ist für ein 4 Kern System optimiert (d.h. es werden bis max. 3 parallele Sessions geöffnet
Ein Kern bleibt für sonstige Tätigkeiten des Betriebssystems frei).
Gestartet wird die Batchverarbeitung durch Klick auf BatchStart.     

Nachverarbeitung (keine Aktion des Anwenders nötig):
Nach Ende der Videoverarbeitung durch den TSD oder PX wird die Nachverarbeitung automatisch gestartet.
Hier werden die Schnittmarkendateien und die Videoinfo-Datei generiert und eine Zusammenfassung aus den Logfiles ausgegeben.
Die gesammelten Daten können auch in einer csv Datei fortlaufend gespeichert werden (Rename.ini Punkt Dokumentation der bearbeiteten Videodateien).

Nachverarbeitung - Setzen der Schnittmarken (keine Aktion des Anwenders nötig):
Es sind mehrere Stufen für das generieren der Schnittmarken integriert.
1. Als erstes wird geprüft, ob eine marks Datei des VDR vorhanden ist + Übernahme der Schnittmarken.
2. Übernahme der Schnittmarken aus den Defaultschnittmarken (rename.ini IniSchnittmarkenPfad)
   Dies kann für Serien sinnvoll sein. Die Dateien müssen den Namen Serie.marks haben.
   Die Schnittzeitpunkte müssen manuell angepasst werden.
   Die Idee dahinter ist, daß Serien von einem bestimmten Sender immer zu gleichen Zeit die Werbeunterbrechung haben.
   Bei manchen Serien funtioniert das Gut, bei anderen passt das gar nicht.
3. Anhand des Logfiles des TSD werden die Tonspurwechsel berücksichtigt.
   Zusätzlich wird noch der Vor- und Nachlauf einbezogen.
4. Vor- Nachlauf.
   Es kann ein Vor- und Nachlauf eingestellt werden (rename.ini Vorlaufzeit und Nachlaufzeit)
   Von den Default Werten aus der Ini kann abgewichen werden, durch Ändern der Felder im Reiter Main.
   Das ist nützlich, wenn man bei der Timerprogrammierung einen Vor- und Nachlauf berücksichtigt.

Autofiller:
Der Button befindet sich auf dem Reiter Main (neben den Felder Vor- Nachlauf)
Rechts neben dem Button befindet sich ein Textfeld in dem der Suchzeitraum des Autofillers in Tagen eingegeben werden kann.
Es wird fix ein Zeitraum von 0.25 Tagen vorgegeben - Eine Änderung des Zeitraums ist möglich.
Es werden also Videodateien 6 Stunden rückwärts von der aktuellen Tageszeit berücksichtigt.
Nach Klick auf den Button Autofiller werden die Videodateien automatisch in die Batchliste eingestellt.
Es muss also nicht mehr jedes Videofile von Hand angeklickt werden.
Allerdings muss jeder Eintrag durch Klick auf Ja/Nein bestätigt werden.
Die Funktion benötigt die CSV Datei (Rename.ini Punkt Dokumentation der bearbeiteten Videodateien) um sicherzustellen,
daß Dateien nicht wiederholt eingestellt werden.

Das wars dann erstmal zu den wichtigsten Funtionen.
                                   

ErichV

Coole Sache. Danke!
Sobald ich wieder etwas mehr Zeit habe, werde ich mir dieses Tool näher anschauen.
Eine kurzer Anleitung zum Ausführen von PowerShell-Skripten wäre sicherlich nicht schlecht, damit mehrere User in den Genuss deines hilfreichen Tools kommen.  ;)
1 x Humax ESD-160S, 1x TechniSat TechniBox S4, 2x TechniSat Skystar USB 2 HD CI, Nvidia Shield TV Media Streaming Player, TS Doctor 4.1.1, DVBViewer Pro 7.3.0.0 mit DVBViewer Media Server 3.3.0.0

Mindwarp

Die Powershell ist eine weiterentwickelte Kommandozeile von Microsoft.
Zur Installation der Powershell schreib ich mal nix, das geht mit Google ausführlicher.

Um Sourcecode ausführen zu können, muss eine sogenannte ExecutionPolicy gesetzt werden.
Man kann hiermit die Powershell generell freischalten in dem man in der Powershell die entsprechende ExecutionPolicy setzt.
Das kann man mit dem Befehl Set-ExecutionPolicy machen. Genaueres kann auch durch eine Internetrecherche herausgefunden werden.

Will man die Powershell nicht generell freischalten, dann kann auch ein einzelnes Skript freigeschaltet werden.
Dazu wird ein CMD File mit folgendem Inhalt angelegt.

rem @echo off
setlocal enabledelayedexpansion
set "InputFile=C:\Pfad\RenameForms.ps1"
@ powershell -ExecutionPolicy Unrestricted -file "%InputFile%"
rem pause

Der Pfad muss hier noch angepasst werden.
Doppelklick auf das CMD File und fertig.

Mindwarp

Hab vergessen, daß das CMD File als ANSI gespeichert werden muss.
Bin grade beim testen selber drüber gestolpert.

ErichV

Sehr gut, besten Dank.  ;)
Ich hatte gestern bei näherer Betrachtung deines Tools gleich folgenden Befehl als Admin im PowerShell eingegeben:
Set-ExecutionPolicy Unrestricted

;D

Aus Sicherheitsgründen sollte die ExecutionPolicy nachher wieder von "Unrestricted" auf "RemoteSigned" bzw. "Restricted" gesetzt werden.
1 x Humax ESD-160S, 1x TechniSat TechniBox S4, 2x TechniSat Skystar USB 2 HD CI, Nvidia Shield TV Media Streaming Player, TS Doctor 4.1.1, DVBViewer Pro 7.3.0.0 mit DVBViewer Media Server 3.3.0.0

Mindwarp

Vor bösartigen Angreifern schützt die ExecutionPolicy nicht wirklich und ist dafür auch nicht vorgesehen.
siehe hierzu auch:
http://www.admin-source.de/BlogDeu/401/powershell-executionpolicy-richtig-verstehen-2

Das Skipt sollte sich übrigens auch mit RemoteSigned ausführen lassen.
Ich kann aber sowas aber nur an einem Zweitrechner ausprobieren, der mir momentan nicht zur Verfügung steht.
Vielleicht kann das jemand mal testen.

Mam

Und damit ich auch noch meinen Senf zu dem Thema hinzufügen kann, möchte ich noch darauf hinweisen, dass die besagte Execution Policy auf mehreren verschiedenen Ebenen (Scopes) definiert ist, die sich gegenseitig beeinflussen:

PS C:\Windows\system32> Get-ExecutionPolicy -list

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy    Unrestricted
   UserPolicy    Unrestricted
      Process       Undefined
  CurrentUser       Undefined
LocalMachine       Undefined


Es kann also durchaus sein, dass ein einfaches "set-executionpolicy unrestricted" NICHT zum Erfolg führt, weil z.B. die UserPolicy (global / domänenweit) es verhindert.



Mindwarp

Neue Version:
Man kann den Seriennamen jetzt dynamisch gestalten.
Zu finden ist das ganze unter dem Reiter Ini ganz unten.
Platzhalter sind:
{Serienname}
{Episodenname}
{Staffelnummer}
{Episodennummer}
{EpisodeLaufendenummer}
Bitte die Groß- Kleinschreibung beachten!!!

Aus
S{Staffelnummer}E{Episodennummer} {Episodenname}
wird dann z.B.
S01E01 Der Episodenname

Die dynamische Dateinamenvergabe ist nur aktiv, wenn die Checkbox "Serie" an ist.

ErichV

1 x Humax ESD-160S, 1x TechniSat TechniBox S4, 2x TechniSat Skystar USB 2 HD CI, Nvidia Shield TV Media Streaming Player, TS Doctor 4.1.1, DVBViewer Pro 7.3.0.0 mit DVBViewer Media Server 3.3.0.0

Mindwarp

Hallo zusammen,

mich würde interessieren, ob überhaupt jemand das Tool benutzt.
Wenn kein Bedarf besteht, würde ich keine weiteren Versionen mehr veröffentlichen.

Hier eine aktualisierte Version:
05.02.2016 0.83
Das ProjectX Log-File wird jetzt wieder verarbeitet (Anzeige Log Files Maske)
Batch Buttons AlleTS und AlleTSPX auch auf den Batch Reiter gesetzt.
05.03.2016 0.84
Funktion: SeriennameGleichEpisodenname
fortlaufende Seriennummer entfernen
Bsp. Doctor Who (61) => Doctor Who
Bsp. Doctor Who (61) HD => Doctor Who HD
23.04.2016 0.85
Funktion: Epg2Videodaten
Beim unscharfen Suchen nach der Episodendatei wird jetzt die HD Vorgabe
aus der Datei RenameRecorderProfile.ini berücksichtigt.

ErichV

1 x Humax ESD-160S, 1x TechniSat TechniBox S4, 2x TechniSat Skystar USB 2 HD CI, Nvidia Shield TV Media Streaming Player, TS Doctor 4.1.1, DVBViewer Pro 7.3.0.0 mit DVBViewer Media Server 3.3.0.0


www.cypheros.de