AVI mit AC3 Datei zusammenführen

  • Hallo,

    habe nur ein script geschrieben, dass eben erlaubt eine Filmdatei auszuwählen, den pfad + Filmname in eine Datei schreibt und zu guter letzt dann eine Bat-Datei ausführt (was das eigentlich zusammenführen startet)
    Beim verfeinern komm ich nicht mehr klar :(

    Ich habe ein Menü hinzugefügt mit File (Einstellungen, Exit) und ? (Info)
    Es geht alles bis auf Einstellungen.
    Dort kann man den Standart Filmeordner als Pfad festlegen (Ergebnis kommt in eine .ini und wird immer abgerufen wenn gebraucht)
    Man kann den Pfad auswählen, dieser wird auch noch in die .ini gespeicht und dann ist es vorbei.
    Wenn ich die Schleife des Child Guis so einstelle das sie nicht endlos ist, dann muss ich zweimal auf Fertig bzw. auf das X rechts oben klicken um das Gui zu "zerstören".

    Schaut euch mal bitte die Funktion _einstellungen() und die Dauerabfrage unten an :(

    Ich danke schonmal für die Mühe.

    [autoit]

    #include <GUIConstants.au3>

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

    ;GUI
    Dim $msg, $los, $tmp, $tmp2, $name, $auswahl, $input, $anfang_abbruch, $cfg_input, $filmordner, $filmordner_waehlen, $gui_cfg, $gui_info
    Dim $fileitem, $exititem, $infoitem
    Global $startpfad = "d:\_stuff\vid"
    Dim $font = "Arial"
    Dim $len = StringLen($startpfad)
    $len += 1

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

    Global $child_x = False

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

    TraySetIcon("icon.ico")
    Opt("TrayMenuMode", 1)

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

    Func _initialisieren_nach_gui()
    ;~ GUICtrlSetState(-1, $GUI_DISABLE)

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

    $auswahl = GUICtrlCreateButton("Film auswählen", 95, 5, 150, 20)
    $input = GUICtrlCreateInput($name, 10, 40, 310)
    ;~ GuiCtrlSetState(-1,$GUI_DROPACCEPTED)
    $los = GUICtrlCreateButton("Zusammenfuehren", 95, 75, 150, 20)

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

    GUICtrlCreateLabel ("°°° erstellt von mir für mich °°°",97, 130, 250, 23)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor(-1,0x000000)
    GUICtrlSetFont (-1, 8, 900, "")


    $filemenu = GUICtrlCreateMenu ("Datei")
    $fileitem = GUICtrlCreateMenuitem ("Einstellungen",$filemenu)
    GUICtrlSetState(-1,$GUI_DEFBUTTON)
    $exititem = GUICtrlCreateMenuitem ("Exit",$filemenu)

    $helpmenu = GUICtrlCreateMenu ("?")
    $infoitem = GUICtrlCreateMenuitem ("Info",$helpmenu)
    EndFunc

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

    Func _start()

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

    $tmp = $name
    $tmp2 = StringTrimRight($tmp, 4)
    String($tmp2)
    FileDelete("" & @ScriptDir & "\start.vcf")

    $file = FileOpen("" & @ScriptDir & "\start.vcf", 1)

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


    FileWrite($file, 'VirtualDub.Open("' & $tmp2 & '.avi",0,0)' & @CRLF);
    FileWrite($file, "VirtualDub.RemoveInputStreams()" & @CRLF);
    FileWrite($file, 'VirtualDub.stream[0].SetSource("' & $tmp2 & '.ac3",0x00000203,0)' & @CRLF);
    FileWrite($file, "VirtualDub.stream[0].DeleteComments(1)" & @CRLF);
    FileWrite($file, "VirtualDub.stream[0].AdjustChapters(1)" & @CRLF);
    FileWrite($file, "VirtualDub.stream[0].SetMode(0)" & @CRLF);
    FileWrite($file, "VirtualDub.stream[0].SetInterleave(1,500,1,0,0)" & @CRLF);
    FileWrite($file, "VirtualDub.stream[0].SetClipMode(1,1)" & @CRLF);
    FileWrite($file, "VirtualDub.stream[0].SetConversion(0,0,0,0,0)" & @CRLF);
    FileWrite($file, "VirtualDub.stream[0].SetVolume()" & @CRLF);
    FileWrite($file, "VirtualDub.stream[0].SetCompression()" & @CRLF);
    FileWrite($file, "VirtualDub.stream[0].EnableFilterGraph(0)" & @CRLF);
    FileWrite($file, "VirtualDub.stream[0].filters.Clear()" & @CRLF);
    FileWrite($file, "VirtualDub.video.DeleteComments(1)" & @CRLF);
    FileWrite($file, 'VirtualDub.video.AddComment(0x00000002,"ISFT","AVI-Mux GUI 1.17.7, Aug 8 2006 20:59:17")' & @CRLF);
    FileWrite($file, "VirtualDub.video.AdjustChapters(1)" & @CRLF);
    FileWrite($file, "VirtualDub.video.SetDepth(24,24)" & @CRLF);
    FileWrite($file, "VirtualDub.video.SetMode(0)" & @CRLF);
    FileWrite($file, "VirtualDub.video.SetFrameRate(0,1)" & @CRLF);
    FileWrite($file, "VirtualDub.video.SetIVTC(0,0,-1,0)" & @CRLF);
    FileWrite($file, "VirtualDub.video.SetRange(0,0)" & @CRLF);
    FileWrite($file, "VirtualDub.video.SetCompression()" & @CRLF);
    FileWrite($file, "VirtualDub.video.filters.Clear()" & @CRLF);
    FileWrite($file, "VirtualDub.subset.Clear()" & @CRLF);
    FileWrite($file, "VirtualDub.subset.AddRange(0,164676)" & @CRLF);
    FileWrite($file, 'VirtualDub.SaveAVI("' & $tmp2 & '_AC3.avi")');

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

    FileClose($file)

    ;~ Run("start.bat")
    EndFunc

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

    Func _info()
    GUICtrlCreateLabel("Film mit der AC3 Tonspur zusammenführen" & @CRLF, 10 , 10, 300)
    GUICtrlSetFont (-1, 11, 800, "", $font)
    GUICtrlCreateLabel('Datei auswählen und los gehts ;)', 10, 35)

    GUICtrlCreateLabel("Wichtig:" & @CRLF, 10 , 110, 150)
    GUICtrlSetFont (-1, 10, 900, "", $font)
    GUICtrlSetColor(-1,0xff0000)
    GUICtrlCreateLabel("Biss auf die Dateiendung muss der " & @CRLF & "Name beider Dateien gleich sein!", 10, 130)


    GUICtrlCreateLabel("all created by", 230 , 70, 180)
    GUICtrlSetFont (-1, 9, 500, "", $font)
    GUICtrlCreateLabel("permanenT", 230 , 85, 180)
    GUICtrlSetFont (-1, 9, 900, "", $font)
    EndFunc

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

    Func _inischreiben()
    If FileExists("" & @ScriptDir & "\cfg\cfg.ini") Then
    ;
    Else
    $tmpfile = FileOpen("" & @ScriptDir & "\cfg\cfg.ini", 1)
    FileClose($tmpfile)
    EndIf
    $tmp = FileSelectFolder("Filmordner", "")
    String($tmp)
    IniWrite ("" & @ScriptDir & "\cfg\cfg.ini", "Speicherort", "Film", $tmp )
    GUIDelete($gui_cfg)
    $gui_cfg = GUICreate ( "Einstellungen" , 330 , 115 , 500 , 500 )
    GUISetState(@SW_SHOW, $gui_cfg)

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

    _einstellungen()
    $startpfad = $tmp
    EndFunc

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

    Func _einstellungen()
    $filmordner = IniRead("" & @ScriptDir & "\cfg\cfg.ini", "Speicherort", "Film", "nicht festgelegt")

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

    GUICtrlCreateLabel('Filmordner:', 10, 10)
    $cfg_input = GUICtrlCreateInput($filmordner, 10, 30, 310)
    GUICtrlSetData($cfg_input, $filmordner)

    $filmordner_waehlen = GUICtrlCreateButton("Pfad wählen", 10, 55, 90, 20)

    $cfg_fertig = GUICtrlCreateButton("Fertig", 10, 85, 90, 20)

    GUICtrlCreateLabel("all created by", 230 , 70, 180)
    GUICtrlSetFont (-1, 9, 500, "", $font)
    GUICtrlCreateLabel("permanenT", 230 , 85, 180)
    GUICtrlSetFont (-1, 9, 900, "", $font)

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

    ;~ If $child_x = True Then
    While 1
    Dim $msg2
    $msg2 = GUIGetMsg(1)
    Select
    Case $msg2[0] = $filmordner_waehlen And $msg2[1] = $gui_cfg
    _inischreiben()
    GUICtrlSetData($cfg_input, $filmordner)

    Case $msg2[0] = $cfg_fertig And $msg2[1] = $gui_cfg
    GUIDelete($gui_cfg)

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


    Case $msg2[0] = $GUI_EVENT_CLOSE And $msg2[1] = $gui_cfg
    GUIDelete($gui_cfg)

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

    EndSelect
    WEnd
    ;~ Else
    ;
    ;~ EndIf
    ;~ $child_x = False

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

    EndFunc

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

    ;Gui erstellen
    $gui_main = GUICreate ( "Film und Tonspur zusammen bringen" , 330 , 170 , 400 , 400) ; Hinter die 400 , "", $GUI_ACCEPTFILES)
    GUICtrlSetState(-1, $GUI_DISABLE)

    _initialisieren_nach_gui()

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

    GUISetState(@SW_SHOW, $gui_main)

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

    While 1
    $msg = GUIGetMsg(1)
    Select

    Case $msg[0] = $auswahl
    $tmp = FileOpenDialog("Bitte Film auswählen", $startpfad, "Avi-Dateien (*.avi)", 1)
    $name = StringTrimLeft($tmp, $len)
    GUICtrlSetData($input, $name)
    ;~ Case $msg = $GUI_EVENT_DROPPED
    ;~ GUICtrlSetState($name2, $GUI_FOCUS)

    Case $msg[0] = $los
    $anfang_abbruch = MsgBox(4, "Frage", "Zusammenführen beginnen?")
    If $anfang_abbruch = 6 Then
    _start()
    Else
    ;
    EndIf


    Case $msg[0] = $fileitem
    $gui_cfg = GUICreate ( "Einstellungen" , 330 , 115 , 500 , 500 )
    GUISetState(@SW_SHOW, $gui_cfg)
    ;~ $child_x = True
    _einstellungen()

    ;~ If $cfg_fensterabfrage = True Then
    ;~
    ;~ Case $msg[0] = $filmordner_waehlen
    ;~ _inischreiben()
    ;~ GUICtrlSetData($cfg_input, $filmordner)
    ;~ Else
    ;~ ;
    ;~ EndIf

    Case $msg[0] = $infoitem
    $gui_info = GUICreate ( "Infos" , 330 , 170 , 500 , 500 )
    GUISetState(@SW_SHOW, $gui_info)
    _info()


    Case $msg[0] = $exititem
    ExitLoop

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

    Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $gui_main
    ExitLoop

    Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $gui_info
    GUIDelete($gui_info)

    Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $gui_cfg
    GUIDelete($gui_cfg)
    EndSelect
    WEnd

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

    Exit

    [/autoit]