Moin,
ich muss mit einem Programm ( Active WebCam) Videos aus dem AWLive Format in avi umwandeln.
Mein Autoit Skript kann bis jetzt das Programm starten und auf "Datei öffnen" klicken um ein Video welches konvertiert werden soll auszuwählen.
Es sind ca. 450 Videos die ich konvertieren muss. Dazu muss ich jedes Video einzeln in das Programm laden, kovertieren und unter einem bestimmten Namen in einem entsprechenden Ordner abspeichern.
Gibt es eine Möglichkeit, ggf. mit einer for-schleife o.ä. die videos reinzuladen? Also das ein Video nach dem anderen geladen, bearbeitet und abgespeichert wird.
Ich weiß einfach nicht so ganz wie ich das am besten angehen soll... ![]()
Vielen Dank
Große Anzahl an Daten automatisch bearbeiten
-
- [ offen ]
-
metalphony -
13. Januar 2014 um 10:08 -
Erledigt
-
-
Verwende einfach cmdline anstatt GUI Automatisierung und bau dir ne entsprechende Schleife...
-
Anhand der dortigen infos dürfte das in etwa so ausschaun:
[autoit]
[/autoit][autoit][/autoit][autoit]
#include <file.au3>$pathConverter = 'C:\...\ImageConvert.exe'
[/autoit][autoit][/autoit][autoit]
$pathSourceFiles = 'C:\videos\awliveaufnahmen\'
$pathTargetFiles = 'C:\videos\awliveaufnahmen\AVIencode\'
$aSourceFiles = _filelisttoarray($pathSourceFiles,"*.AWLive",1)for $i = 1 to ubound($aSourceFiles)-1
[/autoit][autoit][/autoit][autoit]
runwait('"' & $pathConverter & '" "' & $pathSourceFiles & $aSourceFiles[$i] & '" "' & $pathTargetFiles & stringreplace($aSourceFiles[$i],"AWLive","avi") & '" 2',"",@SW_HIDE)
traytip("AWLife encode",$pathSourceFiles & $aSourceFiles[$i] & " erfolgreich umgewandelt. [" & $i & " / " & ubound($aSourceFiles)-1 & "]",10)
nextmsgbox(0,"Done","Alle Dateien wurden umgewandelt.")
[/autoit] -
Super vielen Dank!
Werds morgen mal testen -
Ich hab mir mal den geschickten link durchgelesen. Ich verstehe jedoch nicht ganz wie ich dass über die cmd machen soll...hab sowas grundsätzlich auch noch nie gemacht und bin auch AutoIt Anfänger.
Wo muss ich denn die entsprechende cmd Eingabe durchführen? Mache ich dass dann überhaupt noch mit AutoIt?
-
misterspeed hat dir doch schon ein fertiges Script gepostet.
-
- Offizieller Beitrag
Naja, ganz fertig nicht. Er muss die Pfade entsprechend anpassen.
Aber das sollte auch ein Anfänger hinbekommen.
-
Also ist das ein ganz normales AutoIt Skript was ich einfach in den Editor eingeben und abspeichern muss???
Bin halt etwas verwirrt weil misterspeed was von cmdline anstatt GUI benutzen geschrieben hatte... -
Wo ist nun das Problem?
ZitatIch hab mir mal den geschickten link durchgelesen. Ich verstehe jedoch nicht ganz wie ich dass über die cmd machen soll...hab sowas grundsätzlich auch noch nie gemacht und bin auch AutoIt Anfänger.
Was ist eine Kommandozeile? --> http://de.wikipedia.org/wiki/KommandozeileAus der von mir oben verlinkten Dokumentation der "ImageConvert.exe", welche wohl Bestandteil deiner Active Webcam Software ist geht folgende Syntax hervor:
Konkret kannst du eine Datei also über die Windows Kommandozeile z.B. so von AWLive nach AVI umwandeln:
ZitatAlso ist das ein ganz normales AutoIt Skript was ich einfach in den Editor eingeben und abspeichern muss???

Da wir hier nicht im Windows für Anfänger Forum sondern im Autoit Forum sind war ich gestern noch so nett dir ein Autoit Script zu schreiben, dass genau das automatisiert was du auch 400 mal hintereinander von Hand über die Windows Kommandozeile tun könntest. Da ich lediglich 6 verschiedene Autoit Funktionen dafür verwende erwarte ich von dir einfach mal, dass du in der Lage bist die Funktionen in der Hilfe selbst nachzuschlagen und ggf. konkrete Fragen zum Script zu stellen wenn dir einzelne Code Zeilen trotzdem noch unklar sind.Zur Funktionsweise sei noch gesagt, dass mein Script es erfordert, dass alle Quelldateien im selben Ordner liegen. Sollten diese in Unterordnern organisiert sein, so benötigst du anstelle von
[autoit]_fileListToArray()
[/autoit]eine rekursive Version dieser Funktion. Eine kurze Foren oder Googlesuche sollte dir da rech schnell Ergebnisse liefern.
-
Ah...gut! War halt meine Frage ob ich das mit Windows oder im Autoit machen muss....dann werd ich mich mal dran machen!
Vielen Dank!!!
-
So. Also ich habs soweit angepasst wie ich dachte das es richtig wäre.
Es ist irgendwie einmal fehlerfrei durchgelaufen, aber es wurde keine dateien in dem gewünschten ZIelordner abgespeichert.
verstehe ist das richtig, dass die zeile 18 mit "$pathTargetFiles" der Pfad für die konvertierten videos sein soll?
Eine Sache ist mir noch eingefallen die sehr wichtig wäre, und ich auch überhaupt nicht weiß wie ich diese in das Programm integrieren sollte.
Man muss bei dem Konverter jedesmal wenn man ein video konvertieren möchte dass richtige Ausgangsformat (avi) und das gewünschte komprimierungsformat (Microsoft Video 1) einstellen.
Das mit dem Ausgangsformat ist wohl in der schleife integriet soweit ich das richtig verstanden habe....aber wie stellt man das richtige komprimierungsformat ein?
Ich danke euch! -
So. Also ich habs soweit angepasst wie ich dachte das es richtig wäre.
Es ist irgendwie einmal fehlerfrei durchgelaufen, aber es wurde keine dateien in dem gewünschten ZIelordner abgespeichert.Dann ist es ja scheinbar nicht fehlerfrei durchgelaufen. Der Sinn ist ja schließlich, dass Dateien erzeugt werden...
verstehe ist das richtig, dass die zeile 18 mit "$pathTargetFiles" der Pfad für die konvertierten videos sein soll?Ja. Dieser muss allerdings vermutlich schon existieren, außer der Converter ist schlau genug um Verzeichnisse bei Bedarf selbst anzulegen. Also falls der Ordner den du angegeben hast nicht existiert solltest du diesen vielleicht vorher anlegen und nochmals testen.
Sollte das nicht die Ursache für die fehlenden Dateien sein ist "Onkel Debug" an der Reihe.
Bevor du irgendetwas in Autoit probierst solltest du erstmal sicherstellen, dass es von Hand über die Windows Eingabeaufforderung funktioniert. Wie der Befehl aussehehn muss steht ja bereits weiter oben.
[autoit]
Klappt das? Wenn ja, dann liegt der Fehler im Script. Als erstes ändern wir daher die Sichtbarkeit des cmd Fensters, welches das Script öffnet:runwait('"' & $pathConverter & '" "' & $pathSourceFiles & $aSourceFiles[$i] & '" "' & $pathTargetFiles & stringreplace($aSourceFiles[$i],"AWLive","avi") & '" 2',"",@SW_SHOW) ; SW_SHOW statt SW_HIDE
[/autoit]Du solltest nun sehen was der Converter tut oder auch nicht tut. Sehr wahrscheinlich kannst du die Fehlermeldung im cmd Fenster aber nicht lesen, da das Fenster gleich wieder verschwindet. Deswegen änderst du die Zeile wie folgt ab:
[autoit]runwait(@ComSpec & ' /k ""' & $pathConverter & '" "' & $pathSourceFiles & $aSourceFiles[$i] & '" "' & $pathTargetFiles & stringreplace($aSourceFiles[$i],"AWLive","avi") & '" 2',"",@SW_SHOW) ; cmd fenster pausiert nach Ende...
[/autoit]Spätestens nun solltest du sehen was der converter tut oder zu bemängeln hat. Wichtig: Dein Autoit Script wartet bis der cmd Prozess beendet wird. Die nächste Datei wird also erst abgearbeitet wenn du das cmd Fenster schließt. Deswegen eignet sich diese Variante nur zum Debuggen und muss später natürlich wieder geändert werden.
Eine Sache ist mir noch eingefallen die sehr wichtig wäre, und ich auch überhaupt nicht weiß wie ich diese in das Programm integrieren sollte.
Man muss bei dem Konverter jedesmal wenn man ein video konvertieren möchte dass richtige Ausgangsformat (avi) und das gewünschte komprimierungsformat (Microsoft Video 1) einstellen.
Das mit dem Ausgangsformat ist wohl in der schleife integriet soweit ich das richtig verstanden habe....aber wie stellt man das richtige komprimierungsformat ein?
Ich danke euch!Da in der Dokumentation zu den cmdline Optionen diesbezüglich nichts steht ist es entweder nicht möglich per cmdline das "Komprimierungsformat" festzulegen oder aber die Dokumentation ist unvollständig. Sollte ersteres zutreffen nimmt der Converter vermutlich das Standard Komprimierungsformat. Dieses ist evtl. in einer Konfig Datei oder der Registry gespeichert. Im schlechtesten Fall ist es hardcodet im Converter. Wie dem auch sei... diese Frage kann dir am ehesten der Hersteller der Software beantworten, also schreib einfach eine Email an den Support um zu klären wie man dieses Format per cmdline festlegt oder ob es andere Wege gibt den Standard für das Format permanent zu ändern (z.B. Registry oder Konfig Datei...).