Jump to content

Datei nach Aufnahme verschieben


Recommended Posts

Guten Abend,

 

ich suche eine Lösung für folgendes Problem.

 

Und zwar will ich die Aufgenomenen Dateien (log; ts; txt) nur von der gerde eben fertigen aufnahme verschieben.

Und das ganze am liebsten mit TeraCopy, da es eine Warteschlange anbietet.

 

Ich habe es soweit hinbekommen das es den ganzen Aufnahme Ordner verschiebt, aber leider nicht nur die eine Datei

bzw noch die dazugehörenden log.

 

Aufgabe nach Timer ist mir auch ein Begriff.

 

Die Themen die ich im Forum gefunden hab sind leider alle nicht vollständig, da steht nirgends eine Lösung.

 

Wie ist das machbar?

.

mfg shaupti

Edited by shaupti
Link to comment

Hallo shaupti,

 

das ist doch ganz einfach. Du brauchst eine Aufgabe nach Aufnahme (Batchprogramm). Glücklicherweise wird der Dateiname der Aufnahme als Parameter zur Verfügung gestellt. Damit solltest du alle Parameter beisammen haben um Teracopy damit zu füttern. Wegen der Parameter für die "aufgabe" schau mal im Wiki nach. Dort sind auch die möglichen Parameter beschrieben.

 

- Frank

Link to comment

Hallo,

 

nja einfach ist was anderes.

 

Laut Wiki müsste es doch so aussehen?

 

Aber es tut sich nichts.

 

Oder was passt da nicht?

Link to comment

Ja, so ungefähr muss es aussehen. Allerdings setze ich die Parameter jeweils noch in Doppel-Hochkomma. Vielleicht kommt dein Teracopy ja nicht mit dem Fileshare zurecht oder mag nicht ohne Konsole aufgerufen werden.

 

ich würde das ganze mal in einem Script kapseln und prüfen was Teracopy beim Aufruf meldet (IO-Umlenkung von STDIO und STDERR in eine Textdatei und analysieren).

Link to comment

Oder wie könnte es sonst gehen?

 

In der CMD muss es so aussehen

 

"C:\Program Files\TeraCopy\TeraCopy.exe" Copy D:\TV-GAMER\TV-GESCHNITTEN \\NASCA6F22\Multimedia\TV-EINGNANG-NAS

dann kopiert er aber das ganze verzeichnis.

Wie bekomme ich Dateinamen da rein, damit er nur die Datei kopiert?

Edited by shaupti
Link to comment

Nur als Aufgabe nach Aufnahme! steht das Makro {SOURCE_FILE} zur Verfügung. In deinem Bsp. wird tatsächlich das Unterverzeichnis kopiert, nicht ein einzelnes Videofile, so als ob das makro nicht gesetzt wird. Zusätzlich würde ich noch das Makro in Doppel-Hochkomma (") setzen - für den Fall dass Du Filenamen mit Leerzeichen verwendest - das geht nämlich sonst schief.

Ich (und einige andere) machen nach einer Aufnahme eine Konvertierung ins H.264 Format für iPad. dafür muss man ffmpeg auch den Filenamen der Aufnahme übergeben - klappt wie oben beschrieben tadellos.

 

Schau dir mal an, welche Parameter tatsächlich an Teracopy übermittelt werden.

Edited by Frank Sommer
Link to comment

Wie soll ich mir das anschauen? Bin da nicht ganz so in der Materie drin.

Das mit der Aufgabe ist klar.

Aber durch das Script bekommt er doch den Parameter nicht mit.

Link to comment

Hört sich schon mal nicht schlecht an,

 

aber leider nicht das was ich benötige.

Ich will da flexibler sein und in Verschiedene Verzeichnisse verschieben können.

Link to comment

Oder wie könnte es sonst gehen?

 

In der CMD muss es so aussehen

 

"C:\Program Files\TeraCopy\TeraCopy.exe" Copy D:\TV-GAMER\TV-GESCHNITTEN \\NASCA6F22\Multimedia\TV-EINGNANG-NAS

 

dann kopiert er aber das ganze verzeichnis.

Wie bekomme ich Dateinamen da rein, damit er nur die Datei kopiert?

Du hast das source file vergessen.

 

Es sollte so sein:

 

Copy D:\TV-GAMER\TV-GESCHNITTEN\{SOURCE_FILE} \\NASCA6F22\Multimedia\TV-EINGNANG-NAS\

 

Das ist aber Recording Service. Im DVBViewer selbst kann das mit stoprec.vbs gemacht werden

http://de.DVBViewer.tv/wiki/DVBViewer_VBScripte#stoprec.vbs

Edited by mague
Link to comment

Du hast das source file vergessen.

 

Es sollte so sein:

 

Copy D:\TV-GAMER\TV-GESCHNITTEN\{SOURCE_FILE} \\NASCA6F22\Multimedia\TV-EINGANG-NAS\

 

Das ist aber Recording Service. Im DVBViewer selbst kann das mit stoprec.vbs gemacht werden

http://de.DVBViewer.tv/wiki/DVBViewer_VBScripte#stoprec.vbs

Aber bitte die Quotes nicht vergessen, also so:

 

"D:\TV-GAMER\TV-GESCHNITTEN\{SOURCE_FILE}" \\NASCA6F22\Multimedia\TV-EINGANG-NAS\

(Das dritte N bei TV-EINGNANG) habe ich mal rausgenommen.

 

Wenns jetzt immer noch nicht geht liegt es am Teracopy

 

Edited by Frank Sommer
Link to comment

Das mit dem "N" hatte schon gestimmt, so woie ich es hatte.

 

Also es geht nicht... ob jetzt als CMD oder in der Aufgaben Maske.

 

Das Ziel wäre gewesen die Aufnahme zu Verschieben und da ja Windows selber nicht wartet bis eine Datei verschoben ist, sondern immer mehr Prozesse startet, wäre es halt schön gewesen.

 

Gibt es sonst noch eine Alternative?

Link to comment

Ich denke das wird mein letzter Post zum Thema:

 

Deine Aufgabenkonfiguration aus Post #3 war eigentlich ganz richtig - bis auf die Sache mit den fehlenden Doppel-Hochkomma rund um das Makro {SOURCE_FILE}.

Wenn in Dateinamen Leerzeichen vorkommen können, müssen diese Dateinamen mit " gequotet werden.

Fileshares aus Scripten ansprechen ist immer etwas hackelig, sofern da spezielle Berechtigungen erforderlich sind >> erstmal mit der Ablage im lokalen Filesystem testen.

 

Zu #15 gibt es mehreres zu schreiben warum es nicht funktionieren wird, ich will dich aber nicht noch mehr verwirren.

 

Mei Tipp zum Schluß:

Beschäftige Dich mit dem Wiki und dem FFMpeg-Script und baue daraus Dein Script auf. Und gib nicht dem Wiki die Schuld wenns nicht sofort klappt ;-), siehe hier: http://de.DVBViewer.tv/wiki/Optionen_Service_-_Aufgaben#Parameter . Nimm aber nicht den Screenshot als Beispiel, das tut nämlich nicht richtig, sondern das Bsp unten im Text unterhalb von "(vereinfachter) Parameterausdruck".

Persönlich verstehe ich nicht, warum du für ein simples Filecopy unbedingt ein externes Programm wie teracopy einsetzen willst insbesondere wenn man nicht sattelfest beim Erstellen von Scripten und Fehlersuche ist.

Edited by Frank Sommer
Link to comment

Würde es auch mit Windows machen, wenndas einfacher ist.

 

Es gibt doch ein Forum, das einem bei so etwas helfen kann/sollte aus solchne aufgaben lernt man was und kann später weiter machen.

Aber es fehlen ein paar Sachen.

 

Das Script funktioniert wenn ich es direkt auffrufe perfekt, selbst wenn ich denn Dateinamen einfüge, dann kopiert er mir nur die Datei.

Jetzt muss doch nur der Dateiname an das Script weitergegeben werden und das weis ich nicht wie es geht.

Link to comment

Mach das mal ohne Batch.

 

Im Task-Editor:

Dateiname:

"C:\Program Files\TeraCopy\TeraCopy.exe"

 

Parameter:

Copy "{PATH_FILENAME}.*" \\NASCA6F22\Multimedia\TV-EINGANG-NAS\

 

Achte auf die Anführungszeichen!

 

So sollte die .ts Datei und die dazu gehörenden anderen Files übertragen werden. Wenn es dann nicht geht, liegt es an TeraCopy. Dann versuche es einfach mal mit dem normalen Copy, das sieht dann so aus:

 

Dateiname:

cmd.exe

 

Parameter:

/c copy "{PATH_FILENAME}.*" \\NASCA6F22\Multimedia\TV-EINGANG-NAS\

Link to comment

Hallo, danke für die Beispiele.

Nur leider funktioniert es nicht.

Der Task startet in der Status Übersicht aber es passiert nichts. Der Task läuft auch einen Tag ohne sich zu beenden.

Hab jegliche Varianten mit den " " probiert aber es geht nicht.

Link to comment

Ich würde auf ein Problem mit den Zugriffsrechten Tippen. Hast du mal ein Lokales Verzeichnis als ziel Probiert?

 

Der RS und alle Prozesse die der Startet laufen im Syste Benutzer. Der kann nur auf Netzwerkfreigaben zugreifen die uneingeschränkt für alle Nutzer freigegeben sind.

Link to comment

Der RS kann ohne Probleme auf das Netzwerk zugreifen und Aufnahmen tätigen. Der läuft im Benutzer mit User und passwort.

 

Das ganze kam nur zu Stande weil ich Fehler bei der Aufnahme habe und dachte es liegt am Netzwerk. Die Fehler sind leider immer noch da.

http://www.DVBViewer.tv/forum/index.php?/topic/54831-Sporadische-Fehler-bei-der-Aufnahme

 

Aber da die platte jetzt im Server drinnen ist hätte ich gerne das es funktioniert.

 

Edited by shaupti
Link to comment

So heute wieder getestet.

Hab es auch mal von platte zu platte versucht also von D nach C und von D nach D ohne Erfolg. Beide Varianten gehen nicht.

 

Was auch echt blöd ist, ist das jedesmal wenn man etwas an den Aufgaben rumprobiert der Service neu gestartet wird, geht das nicht auch anders?

Link to comment

geht das nicht auch anders?

Ja, indem man in der Aufagabendefinition ein Script aka Batchprogramm und die erforderlichen Parameter einträgt, und den Rest immer nur im Batchprogramm anpasst. Dann muß der RS nicht immer neu gestartet werden, weil sich in der Aufgabendefinition nichts andert - nur im Script.

 

Z.B.:

 

Dateiname:

c:\kopierscript.cmd

 

Parameter:

"{PATH_FILENAME}.*" \\NASCA6F22\Multimedia\TV-EINGANG-NAS\

 

 

Und im Script kopierscript.cmd steht dann etwas wie:

"C:\Program Files\TeraCopy\TeraCopy.exe" Copy %1 %2>>c:\kopierscript.log 2>&1

 

(kein! Leerzeichen zwischen "2" und ">>")

 

BTW: Etwas mehr Informationen zu "geht nicht" sind hilfreich.

Edited by Frank Sommer
Link to comment

Z.B.:

 

Dateiname:

c:\kopierscript.cmd

Parameter:

"{PATH_FILENAME}.*" \\NASCA6F22\Multimedia\TV-EINGANG-NAS\

 

 

Und im Script kopierscript.cmd steht dann etwas wie:

"C:\Program Files\TeraCopy\TeraCopy.exe" Copy %1 %2>>c:\kopierscript.log 2>&1

 

(kein! Leerzeichen zwischen "2" und ">>")

 

BTW: Etwas mehr Informationen zu "geht nicht" sind hilfreich.

 

Jetzt sieht das Script schon ganz anders aus.

 

Was für Infos?

Ich kann nur sagen was ich sehe:

Einstellungen werden in den Aufgaben gemacht, gespeichert (ok gedrückt) dann wieder ok dann startet der Service neu.

Dann programmiere ich einen timer der in 5min startet und 5min lang läuft - ohne vor- und nachlauf.

Dann beobachte ich wie der timer startet und sich beendet und danach die Aufgabe startet mit einer Dauer von 1min. Also Start Aufgabe 22.04 ende 22.05.

Nachdem die Endzeit erreicht ist, ist die Aufgabe immer noch da.

 

Ich sehe im Taskmanager keinen Prozess der zusätzlich startet, keine Belastung von CPU, lan oder Festplatten zugriff.

In dem Ordner wo die Datei reinkopiert/verschoben werden soll taucht keine neue Datei auf.

Und die Aufgabe ist immer noch aktiv...... Bis zu dem Zeitpunkt wo ich den recservice neu starte, dann ist die Aufgabe in der Timer übersicht weg.

 

Ich habe alle Varianten probiert, mit den " " ohne die; mit dem \ am ende oder ohne; unterschiedliche Pfade; ebenfalls nochmal die rechte kontrolliert.

 

Mehr fällt mir nicht mehr ein, das war jetzt die Beschreibung was ich gemacht habe und was ich gesehen habe.

 

Edited by shaupti
Link to comment

 

 

 

Edit: Also er macht das gleiche....

Der Prozess Timer läuft und läuft und läuft.....

die log wurde erstellt ist aber leer

Edited by shaupti
Link to comment

- Bist Du sicher, daß Teracopy für Kommandozeilenscripte überhaupt geeignet ist, oder verlangt es. nach einer grafischen Konsole? Die gibts im RS bei Aufgaben nämlich nicht!

- Lt. Google gibts von Teraopy Versionen die nicht mit UNC Pfadnamen umgehen können.

 

Daraus folgt:

Ersetze in Deinem Kopierscript "Teracopy" durch ein simples copy-Kommando:

 

Im Script kopierscript.cmd steht zum Test etwas wie:
copy /Y %1 c:\testdir>>c:\kopierscript.log 2>&1

 

Der Rest kann bleiben (inkl. keine Änderungen an der Aufgabendefinition und der RS muß auch nicht neu gestartet werden)

 

(vor dem ersten Test muß das Verzeichnis c:\testdir angelegt sein!)

 

Danach kannst Du versuchen c:\testdir gegen %2 auszutauschen

Edited by Frank Sommer
Link to comment

Geht auch nicht über den copy befehl.

 

Genau das gleiche verhalten.

 

Wenn ich die log datei löschen will sagt er das sie noch im cmd geöffnet ist.

 

erst nach dem Rechner neustart kann ich die log löschen.

Link to comment

Das Script hat nur das

@echo off

Und die Zeile zum kopieren

Mehr nicht.

 

Wie ich schon geschrieben habe funktioniert das Script direkt aufgerufen so

 

"C:\Program Files\TeraCopy\TeraCopy.exe" Copy D:\TV-GAMER\TV-GESCHNITTEN \\NASCA6F22\Multimedia\TV-EINGNANG-NAS

 

Aber bei dem Aufruf über den recservice eben nicht.

 

Edited by shaupti
Link to comment

Kopierst du derzeit in ein lokales verzeichnis oder schon aufs fileshare? Derzeit versuchst Du doch dich doch an der Version mit copy kommando und nicht mit teracopy?!

Edited by Frank Sommer
Link to comment

Ich kopiere nichts, weil es nicht geht ;)

Ich versuche beides, weil wie gesagt TeraCopy eine Warteschlange hat was das normale Copy nicht hat.

 

Da gibt es nicht so viel zu testen, habe schon alles durch.

Habe zwei Scripte eines für TeraCopy und eines für normal Copy. Und in den Scripten wird dann nur der Parameter Verzeichnis etc angepasst.

 

TeraCopy kommt mit dem Netzwerk und den unc Pfaden klar.

Kann direkt kopieren und verschieben.

Kann TeraCopy öffnen den Pfad angeben und dann das file, funktioniert auch.

Genau so wie das einzelne Script.

 

Aber da ja im recservice keine Fehlermeldung kommt kann man nicht einmal nachvollziehen an was es scheitert.

 

Edited by shaupti
Link to comment

Also bei mir klappts:

 

Mein Kopierscript a la shaupti:

-----------------------
C:\>type kopierscript.cmd
copy /Y %1 %2>>c:\kopierscript.log 2>&1
if %errorlevel%==0 del %1>>c:\kopierscript.log 2>&1
C:\>

-----------

 

Die passende Taskdefinition:

post-37926-0-15228100-1403562323_thumb.png

 

Das Zielverzeichnis nach dem Verschieben der Dateien:

-------

C:\>dir verschoben
Volume in drive C is c-platte
Volume Serial Number is 0867-D2EB

Directory of C:\verschoben

24.06.2014 00:14 <DIR> .
24.06.2014 00:14 <DIR> ..
24.06.2014 00:14 80.376.956 06-24_00-12-20_Das Erste HD (deu)_FIFA WM 20
14 Kamerun - Brasilien Kroatien - Mexiko.ts
24.06.2014 00:14 1.104 06-24_00-12-20_Das Erste HD (deu)_FIFA WM 20
14 Kamerun - Brasilien Kroatien - Mexiko.txt
2 File(s) 80.378.060 bytes
2 Dir(s) 31.431.024.640 bytes free

C:\>

--------------

 

Das Logfile:

-----

C:\>type kopierscript.log
\\HERMES\vidtemp\06-24_00-12-20_Das Erste HD (deu)_FIFA WM 2014 Kamerun - Brasi
lien Kroatien - Mexiko.ts
\\HERMES\vidtemp\06-24_00-12-20_Das Erste HD (deu)_FIFA WM 2014 Kamerun - Brasi
lien Kroatien - Mexiko.txt
2 file(s) copied.
\\HERMES\vidtemp\06-24_00-12-20_Das Erste HD (deu)_FIFA WM 2014 Kamerun - Brasi
lien Kroatien - Mexiko.ts
The process cannot access the file because it is being used by another process.

C:\>

----------

 

Den Zugriffskonflikt beim Löschen der Datei habe ich bei meinem H.264 Konvertierer auch. Ich behelfe mir, indem ich die Task nicht direkt vom RS ausführen lasse, sondern ich lasse vom RS in der Aufgabe eine H.264 Konverter Task mit einer Zeitverzögerung von wenigen Minuten einplanen. Es scheint so, als ob zum Zeitpunkt wenn die Task im RS gestartet wird, die Aufnahmedatei von RS noch nicht freigegeben ist.

Mein Aufgabe-Task-Einplaner Script stelle ich die Tage mal rein.

 

Ach ja, das Betriebssystem ist Windows 7

Edited by Frank Sommer
Link to comment

Sodele,

 

endliche gute Nachrichten!

 

Es hat funktioniert mit dem Normalen Copy bzw Move befehl in zusammenhang mit einer Wartepause von 10 sec bevor der eigentliche befehl Startet.

 

TeraCopy geht nicht.

Link to comment

Hallo shaupti,

 

ich habe das gleiche Problem, kannst du das ganze Script inkl Taskdefinition bitte nochmals posten, danke.

 

Lg

 

 

 

 

Lg

Link to comment

@onmousover

 

das ganze sieht bei mir so aus und funktioniert.

 

Der code:

 

@echo off
ping 127.0.0.1 -n 12
Copy /Y %1 %2

%1 -- ist das "{PATH_FILENAME}.*"

%2 -- ist dann dein Verzeichnis

 

Das %2 kannste auch direkt mit deinem Verzeichnis austauschen also D:\Videos\ oder so

 

 

hoffe es funktioniert bei dir.

 

 

 

Link to comment

shaupti wollte dann noch schreiben:

 

Vielen Dank Frank Sommer, daß Du Dich über 10 Tage und 33 Posts mit meinem Problem beschäftigt hast und ich nach dem 33. Beitrag nur noch Deinen Lösungsvorschlag per copy&paste übernehmen musste.

 

 

Da macht "helfen" doch richtig Spaß :D

 

Gruß

F.Sommer

Link to comment

@Frank Sommer

 

Guten Morgen,

 

So ganz stimmt das ja nicht hab da "einiges" geändert ;)

Hab ja auch genug getüfftelt :)

 

Ich habe definitv was dazugelernt; DANKE!!!!

 

Also vom Prinzip funktioniert es, mit dem Normalen Copy/Move

 

Nur das was ich wollte nicht ;(

Die Frage ist jetzt, wenn ich z.b.: 20 Aufnahmen habe die dann alle mit dem Move-Script laufen, werden die nach und nach abgearbeitet oder dann wenn die aufnahme vorbei ist?

Wenn alle "gleichzeitig" verschoben werden ist das Netzwerk/Platte ja voll überlastet.

Link to comment

Auf ein neues, ich glaube ich habe das Problem gefunden.

 

Es liegt an der Datenübergabe, heißt soviel wie, wenn ich im Script das so eingebe

 

"C:\Program Files\TeraCopy\TeraCopy.exe" copy "D:\TV-EINGANG-REC\TV-Eingang\McLeods Töchter_Auf Distanz - 2014-06-24 - 06-35-00_TNT Glitz HD (deu).ts" "c:\testdir"

 

Dann wird das "ö" nicht richtig übergeben, es ist dann kein ö mehr sondern irgendwas und dann heißt es natürlich das die angegebene Datei nicht gefunden werden kann.

 

Könnte mir vorstellen das, dass auch passiert wenn die Daten vom recservice kommen.

Also funktioniert TeraCopy nicht mit dem recservice, da er falsche Daten bekommt. Egal ob mit umlauten oder ohne.

 

Habe noch den ExtremeCopy zufällig gefunden und gleich getestet.

Bei dem funktionieren Umlaute auch nicht.

Aber alles OHNE Umlaute Funktioniert.

 

Und da das copy ja direkt ist funktioniert es.

Edited by shaupti
Link to comment
  • 2 weeks later...

Keine Ahnung, was TeraCopy macht, aber wenn man FFmpeg laufen hat, um Vorschaubildchen zu erstellen, kann es sein, daß Dateien noch in FFmpeg geöffnet sind, wenn man sie nach der Aufnahme umbenennen oder verschieben möchte. Vorschaubildchenerstellung ausschalten, dann tritt dies Problem nicht mehr auf.

Link to comment
×
×
  • Create New...