Ich krieg es nicht gebacken... AVI-Dateien zusammführen...

  • Moin!

    Ich habe in einem Ordner eine Anzahl AVI-Dateien, die nach folgendem Schema aufgebaut sind:

    12A-blabla01.avi
    12A-blabla03.avi
    12A-blabla04.avi
    17C-blabla01.avi
    23D-blabla01.avi
    23D-blabla09.avi
    26C-blabla05.avi
    26C-blabla06.avi
    26C-blabla07.avi
    26C-blabla08.avi
    27C-blabla01.avi
    27C-blabla11.avi

    u.s.w.

    Nun sollen alle AVI-Dateien mit den gleichen drei Anfangsbuchstaben zusammengefügt werden. Dafür habe ich mencoder.exe heruntergeladen, welches per Kommandozeile beliebig viele AVIs zusammenfügen kann:

    Run("mencoder.exe -ovc copy -oac copy -o output.avi 1.avi 2.avi 3.avi 4.avi 5.avi 6.avi, @ScriptDir&"\avi\")

    Ich möchte eine Funktion erstellen, die genau dies für beliebig viele AVIs macht, aber ich bin seit 4 Stunden an dem Problem dran und komme einfach nicht weiter... weil ich immer wieder bereits zusammengefügte AVIs gelöscht bekomme... hoffe einem noob kann geholfen werden... google will mir nix hilfreiches sagen,..

    Gruß

    argonautik

    Einmal editiert, zuletzt von argonautik (12. Oktober 2011 um 23:17)

  • Hier das, was ich bisher habe, aber das ist weit weg vom "funktionieren...."

  • So ? , sollte alles gehen bin mir nur nicht Sicher ob ich die Syntax von memcoder richtig gebaut habe, ggf anpassen

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <File.au3>
    Local $fArray[10]

    [/autoit] [autoit][/autoit] [autoit]

    $StringToRun = _merge_AVI()
    MsgBox(2,"",$StringToRun)
    ;Run($StringToRun)

    [/autoit] [autoit][/autoit] [autoit]

    Func _merge_AVI()

    [/autoit] [autoit][/autoit] [autoit]

    $sPath = FileSelectFolder("Ordner auswählen.", "")
    $fArray = _FileListToArray($sPath,"*.avi",0)
    If @error=4 Then
    MsgBox(0,"No AVI Found","es wurden keine AVI Daten im ausgewählten Ordner gefunden")
    Exit
    EndIf
    $ArrayUbound = UBound($fArray) -1
    $runString = _editString($ArrayUbound)
    ;MsgBox(2,"",$runString)
    ;_ArrayDisplay($fArray)
    Return($runString)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _editString($uboundArray)

    $baseString = "mencoder.exe -ovc copy -oac copy -o mergedAVI.avi "
    $arrayString = _ArrayToString($fArray, " ", 1, $uboundArray)
    $newString = ($baseString & $arrayString)
    $endString = $newString & ", "& @ScriptDir
    ;MsgBox(2,"",$endString)
    Return($endString)

    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]

    Gruß Marvin