Hallo Forengemeinde,

ich habe immer etwas gehadert mein Batchscript, welches ich zur Schnittautomatisierung nutze zu veröffentlichen.
Aber hey, warum nicht? Vielleicht kann es einer von euch nutzen oder für sich anpassen.

Basis des ganzen ist eine Art Ordnerverwaltung mit folgenden Ordnern:


  • Muell: Hier werden alle Dateien hinkopiert, die nicht mehr gebraucht werden. Später dazu mehr
  • Download: In diesem Ordner landen alle otrkey-Dateien. Bei mir ist das ein Freigabeordner auf dem Fritz.NAS, da ich viele Dateien via FTP-Push erhalte.
  • otrkey: Dies ist der "Download"-Ordner auf meinem lokalen Rechner. Hier werden die otrkey-Dateien vor dem Decodieren von dem Fritz.NAS hinkopiert.
    Der Ordner eignent sich auch als Speicherort für manuelle Downloads.
  • ungeschnitten: In diesem Ordner landen alle decodierten Videodateien. Dieser Ordner muss bei den Schnittprogrammen als "Eingangsordner" bzw. "Batch-Ordner" (Cutana) definiert werden.
  • Archiv: Hier landen nach dem Schnitt alle ungeschnittenen Video-Datei-Originale. ("Originale-Ornder" bei Cutana).
  • Final: Dies ist der "Ausgabe-Ordner" für das Schnittprogramm und der "Eingabe-Ordner" für die OTR-Lemminge.
  • Ziel: Dies ist der "Ausgabe-Ordner" für die OTR-Lemminge und zentraler Speicherort für unsortierte Videos.
    Dieser Ordner liegt auf meinem QNAP-NAS-Server, auf diesen Ordner hat mein Streaming-Client Zugriff um von dort die Videos abzuspielen.
  • decoder: Pfad zur 2009Decoder.exe


Der Ablauf des Skriptes ist wie folgt:


  1. Sofern nicht vorhanden wird das Muell-Verzeichnis angelegt.
  2. Aus dem Ordner "Archiv" werden überalterte Videos in den Ordner "Muell" verschoben (vorgegeben: älter 182 Tage).
  3. Aus dem Ordner "Ziel" werden überalterte Videos in den Ordner "Muell" verschoben (vorgegeben: älter 365 Tage).
  4. Müllordner wird aufgelistet und gefragt, ob er gelöscht werden soll. Dies erfolgt erst, wenn der Nutzer ausdrücklich "j" drückt. Ansonsten geht es nach 15 Sekunden ohne Reaktion ohne Löschung weiter.
  5. Dateien werden aus dem Downloadordner verschoben:
    1. *.otrkey-Dateien werden in den otrkey-Ordner verschoben.
    2. *.cut.mp4-Dateien werden direkt in den ziel-Ordner verschoben (Decodieren und Schnitt unnötig!)
    3. *.mp4-Dateien werden in den ungeschnitten-Ordner verschoben (Decodieren unnötig!)

  6. Sofern sich Dateien im otrkey-Ordner befinden werden sie decodiert.
  7. Sofern sich Dateien im ungeschnitten-Ordner befinden wird die Schnittsoftare (hier Cutana) gestartet. Das Skript wartet, bis die Schnittsoftware beendet wird. Die Schnittsoftware muss die geschnittenen Videos in den final-Ornder speichern.
  8. Es werden Dateien vom ungeschnitten-Ordner in den ziel-Ordner verschoben, die nicht unbedingt geschnitten werden brauchen.
    Bei mir wären das z. N. "Wer weiss den so was", "Genial daneben das Quiz".
    (Einfach die robocopy-Zeilen nach bedarf editieren oder ganz weg lassen!)
  9. Die avi-Dateien werden in mkv-Dateien "umgewandelt". Dieser Code stammt von den OTR-Lemmingen.
    Er kann nach Bedarf angepasst werden.
    An dieser Stelle bitte den Pfad zu mkvmerge korrigieren, sofern das Programm nicht im Standard-Programme-Verzeichnis installiert ist.
  10. Zum Schluss wird der final-Ornder geleert: Die Dateien werden ins muell-Verzeichnis verschoben.


Mit diesem Skript spare ich mir etwas Arbeit und Organisation, die sonst manuell durchzuführen wären.
Vielleicht kann es von euch jemand brauchen oder weiter verwenden/anpassen.
Folgenden Code einfach in einen Editor kopieren und als bat-Datei abspeichern:

Code:
@echo off

echo ***************************
echo *** Gordian OTR-Knot V2 ***
echo ***************************

::Hier werden die Variabeln definiert

::Im Müllverzeichnis landen alle Dateien, die endgültig gelöschet werden sollen
set "muell=d:\muell"
::Im Download-Verzeichnis befinden sich alle otrkey- und mp4-Dateien, die von OTR geladen wurden.
set "download=\\fritz.nas\FRITZ.NAS\Intenso-SlimLine-01\otr"
::In das OTRKEY-Verzeichnis werden alle codierten Dateien kopiert
set "otrkey=c:\temp\otrkey\"
::In das Verzeichnis uncut werden die Dateien aus dem otrkey-Verzeichnis decodiert.
set "ungeschnitten=C:\temp\uncut\"
::In das Verzeichnis archiv verschiebt das Schnittprogramm alle ungeschnittenen avi-Dateien nach dem Schneiden.
::Diese Verzeichnisangabe muss identisch mit der im Schnittprogramm sein.
set "archiv=d:\OTR-Ungeschnitten"
::In der Verzeichnis final werden alle geschnittenen Dateien kopiert, bevor sie nach mkv gepackt werden.
::Dieses Verzeicnis muss im Schnittprogramm als Ausgabeordner angegeben werden.
set "final=c:\temp\final\"
::In das Verzeichnis ziel landen final alle geschnittenen Videos
set "ziel=\\QNAP419PI\Multimedia\Videos\00_-_unsortiert\"
::Decoderpfad, OTR-Nutzer, OTR-Passwort
set "decoder=D:\OTR2014\Decoder\2009Decoder.exe"
set "otrnutzer=name@domain.tld"
set "otrpasswort=passwort"

 
echo *********************************
echo *** Muell Verzeichnis anlegen ***
echo *********************************
 
mkdir %muell%
 
echo *********************************************************
echo *** Dateien, die aelter als X Tage sind verschieben ***
echo *********************************************************
 
robocopy.exe %archiv% %muell% /MOVE /MINAGE:182 /R:0 /W:0 /E
robocopy.exe %ziel% %muell% /MOVE /MINAGE:365 /R:0 /W:0 /E
 
echo **********************************
echo *** Muell Verzeichnis loeschen ***
echo **********************************
 
dir %muell%

CHOICE /C JN /T 15 /D N /M "Dateien loeschen? Nach 15 Sekunden geht es ohne loeschen weiter!"
if %ERRORLEVEL% == 1 goto Ja
if %ERRORLEVEL% == 2 goto Nein
goto StartCopy

:Ja
rmdir %muell% /s /q
echo Dateien wurden geloescht!
goto StartCopy

:Nein
echo Die Dateien wurden nicht geloescht.
echo Dateien koennen nun manuell aus dem Muell-Ordner gerettet werden.

:StartCopy

echo ***********************************
echo *** Dateien vom NAS verschieben ***
echo ***********************************

robocopy %download% %otrkey% *.otrkey /MOVE
robocopy %download% %ziel% *.cut.mp4 /MOVE
robocopy %download% %ungeschnitten% *.mp4 /MOVE

echo ***********************************************
echo *** Pruefe, ob otrkey-Verzeichnis leer ist. ***
echo ***********************************************

set count=0
for %%I in (%otrkey%\*) do set /a count+=1
if "%count%"=="0" echo otrkey-Verzeichnis ist leer - Ueberspringe Decoderaufruf.
if "%count%"=="0" goto Verschieben

echo *******************************
echo *** Starte Decoder-Software ***
echo *******************************
%decoder% -uotr %otrnutzer%  -pwotr %otrpasswort%  -d %otrkey%  -o %ungeschnitten%  -del -C true  -otrvb

:Verschieben


echo *********************************************
echo *** Pruefe, ob uncut-Verzeicnis leer ist. ***
echo *********************************************

set count=0
for %%I in (%ungeschnitten%*) do set /a count+=1
if "%count%"=="0" Echo uncut-Verzeichnis ist leer. Ueberspringe Schnittprogramm.
if "%count%"=="0" goto Ende

echo ******************************
echo *** Starte Schnittprogramm ***
echo ******************************
"D:\OTR2014\Cutana 0.9.2.3\Cutana.exe"

echo ****************************************************************
echo *** Dateien, die nicht geschnitten werden brauchen verschieben ***
echo ****************************************************************

:Ende
robocopy %ungeschnitten% %final% Wer_weiss*.avi /MOVE
robocopy %ungeschnitten% %final% Genial_daneben_Das_Quiz*.avi /MOVE

echo **********************************************
echo *** Dateien in mkv-Container transferieren ***
echo **********************************************

echo -----------------------------------
echo OTR-HQ to MKV
FOR /F "delims=" %%i in ('dir "%final%*.avi" /B /a-D') do (
echo -----------------------------------
echo Working on %%i

echo --
echo Variante 2 
echo --
"C:\Program Files\MKVToolNix\mkvmerge" "--compression" "0:none" "--compression" "1:none" -o "%ziel%%%~ni.mkv" "c:\temp\final\%%i"

echo Done with %%i
)

echo ------------------------------------
echo All files done!
echo ------------------------------------

robocopy.exe c:\temp\final %muell% *.avi /MOVE /R:0 /W:0 /E

CHOICE /C JN /T 300 /D J /M "Fenster schliessen? Fenster schliesst sich in 5 Minunten automatisch!"
if %ERRORLEVEL% == 2 pause