1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

2 Dateien zeitversetzt in einer Schleife ausführen

Discussion in 'Programmieren' started by Windows Vienna, May 9, 2012.

Thread Status:
Not open for further replies.
  1. Hallo vielleicht kennt ihr das Programm avidemux. Damit kann man durch batch Dateien Videos von einem Format ins andere Konvertieren.

    Hier ist einmal die Batchdatei :
    ----------------------------------------------------------------------
    @echo off
    cls
    echo ..... Processing Video - Please Wait !! .....

    SETLOCAL

    set programm="E:\Program Files\Avidemux 2.5\avidemux2.exe"
    set OUTDIR=E:\Video\
    set PROJECT="E:\Video\projectname.js"

    for %%i in (*.avi) do (
    start /w "" %programm% --nogui --load "%%i" --run %PROJECT% --save "%OUTDIR%%%i.mp4" --quit
    )
    sleep 30
    start enter.exe

    echo.
    echo.
    echo. ____!!Processing Complete!!____
    echo.
    Pause
    ENDLOCAL
    ----------------------------------------------------------------------

    Ich erklär euch das ganze Mal kurz.
    Mit start programm startet die batch Datei avidemux.exe und lädt die datei projectname.js. Mit run project wird das geladene ausgeführt. Und genau hier kommt eine Meldung, bei dem ich nur einmal mit der Entertaste klicken muss und dann geht das Programm mit save weiter und speichert das konvertierte. Da das Ganze in einer Schleife passiert, läuft das Ganze so lange, bis keine zu konvertierenden Dateien vorhanden sind.

    Nun zu meinem Problem. Vielleicht kennt ihr das Programm autoit. Das Programm simuliert Tastaturanschläge. Das Ganze klappt auch hervorragend, indem ich einfach enter.exe öffne. Nun würde ich gern wissen, wie ich zwischen RUN und SAVE dafür sorgen kann, dass die datei enter.exe ausgeführt wird. Ich habe es mal so gemacht, dass beide Programme also avidemux und enter.exe gleichzeitig starten, jedoch findet bei enter.exe durch sleep 30 eine verzögerung statt und diese Verzögerung sorgt dafür, dass im richtigen Moment die Entertaste gedrückt wird, womit das Programm ungestört weitergeht. Beim ersten durchgang klappt das ganze auch. Wenn jedoch die Schleife zum Einsatz kommt und die 2.te Datei konvertiert werden soll wird enter.exe nicht ausgeführt, da die Datei nicht in der Schleife drin ist.

    Was muss ich machen, dass enter.exe auch zur Schleife hinzukommt.
    Ich habe schon folgendes gedacht :
    -------------------------------------------------------------------
    for %%i in (*.avi) do (
    start /w "" %programm% --nogui --load "%%i"
    --run %PROJECT%
    sleep 30
    start enter.exe
    --save "%OUTDIR%%%i.mp4" --quit
    )
    -------------------------------------------------------------------

    Jedoch klappt das nicht. Was mache ich falsch ?

    edit : ich sollte noch erwähnen , dass der Vorgang von load bis run ungefähr 4 sekunden dauert und der vorgang zwischen run bis save eine Minute
     
    Last edited: May 9, 2012
  2. Ich kenne auch noch genügend andere, neuere Konverter, in die man beliebig viele Videos lädt und alle in einem Rutsch konvertiert werden, ohne dass man enter drücken muss. Oder hat es einen bestimmten Grund warum Du dieses Programm verwendest?
     
  3. Ja der Grund ist , dass der Converter nur die Audiodateien konvertiert und nicht noch das Video wodurch ich sehr viel Zeit spare ( mit dem Programm 20 minutenfilm -> 1 minute ; mit super dauert es 8)
     
    Last edited: May 9, 2012
  4. Keine Windowsbenutzer unter uns der sich ein wenig damit auskennt ?
     
  5. VB-Coder

    VB-Coder Megabyte

    Wodurch wird die Meldung ausgelöst ? Durch die project.js ? Falls dem so ist, würde ich mir deren Aufbau ansehen und direkt in dem Javascript die Ausgabemeldung unterdrücken (soweit das möglich ist). Das sollte die eleganteste Lösung sein.

    Ansonsten falls das nicht geht, versuch mal anstatt:
    Code:
    for %%i in (*.avi) do (
    start /w "" %programm% --nogui --load "%%i"
    --run %PROJECT%
    sleep 30
    start enter.exe
    --save "%OUTDIR%%%i.mp4" --quit
    )
    
    es wie folgt zu machen:
    Code:
    for %%i in (*.avi) do (
    start /w "" %programm% --nogui --load "%%i" --run %PROJECT% --save "%OUTDIR%%%i.mp4" --quit
    sleep 30
    start enter.exe
    )
    
     
  6. Ja die Nachricht wird von project.js ausgelöst . Jedoch kenn ich mit javasript noch weniger aus :(
    Falls das helfen sollte also die Meldung sagt, dass 2 Audiospuren entdeckt wurden. Hier ist mal der Inhalt von script :

    //AD <- Needed to identify//
    var app = new Avidemux();
    app.video.setPostProc(3,3,0);
    app.video.codec("Copy", "CQ=4", "0 ");
    app.audio.reset();
    app.audio.codec("Faac",128,4,"80 00 00 00 ");
    app.audio.normalizeMode=0;
    app.audio.normalizeValue=0;
    app.audio.delay=0;
    app.audio.mixer="NONE";
    app.audio.scanVbr();
    app.setContainer("MP4");

    Ich habe es so versucht wie du es gesagt hast, hat jedoch nicht geklappt. Das liegt aber auch daran, dass die Meldung zwischen RUN und SAVE kommt. Und nicht danach :)




    ----------------------------------------------------------------------------
    PROBLEM GELÖST
     
    Last edited: May 13, 2012
Thread Status:
Not open for further replies.

Share This Page