1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. PCMader

Beiträge von PCMader

  • mkvmerge mit Variablen verwenden

    • PCMader
    • 16. November 2012 um 13:25

    Problem gelöst!!

    Hallo alle Zusammen,

    ich konnte das Problem mit Hilfe der Idee von autoBert lösen.

    Hier für alle, welche auch ein ähliches Problem haben, der erweiterte Code:

    [autoit]


    $sCommand = ' /c mkvmerge.exe -o ' & $Datei_mkv2 & ' ' & $Datei_2642 & ' ' & $Datei_mp22
    ;~ ConsoleWrite($sCommand & @CRLF)
    RunWait(@ComSpec & $sCommand, 'C:\mkvToolNix\')

    [/autoit]

    Der consoleWrite - Befehl wird nicht benötigt.

    Danke noch einmal autoBert für die Idee, den String vorher zusammenzustellen.
    Danke auch Friesel. Ich werde mir das au3 anschauen um eventuell den Code
    zu vereinfachen.

    Gruß
    René

    PS: Wie kann ich den Beitrag schließen? Suche schon wie ein Verrückter - bin aber leider blind.

    :thumbup:

  • mkvmerge mit Variablen verwenden

    • PCMader
    • 16. November 2012 um 12:49

    Hallo Friesel,

    danke für die Anwort. Habe jetzt allerdings wenig Zeit, mich
    ausführlich damit zu befassen. Auch bin ich noch ziemlich
    umbeleckt bezüglich AutoIt.

    Aber auf dem 1. Blick vermute ich, dass nur die Pfadzusammenstellung
    erleichtert wird.?!
    Hilft mir die au3 auch bei dem mkvmerge-Problem?

    Gruß
    René

    :?:

  • mkvmerge mit Variablen verwenden

    • PCMader
    • 16. November 2012 um 12:43

    Hallo autoBert,

    danke für die schnelle Antwort. Leider hatte ich damit immer noch keinen Erfolg.

    [autoit]

    3
    $sCommand = 'mkvmerge.exe -o "' & $Datei_mkv2 & ' ' & $Datei_2642 & ' ' & $Datei_mp22 & '"'
    ConsoleWrite($sCommand & @CRLF)

    [/autoit]

    Deute ich es richtig, dass consoleWrite den Sting nur in das Consolefenster schreibt. Muss die Console
    dazu nicht vorher offen sein. Wenn, dann fehlt doch im String noch die komplette Pfadangabe zu
    mkvmerge - oder nicht?

    zu der Anweisung:

    [autoit]


    RunWait($sCommand, 'C:\mkvToolNix\')

    [/autoit]

    habe ich auch noch Frage:
    Fehlt hier nicht des Makro @ComSpec?

    Ich habe Deine Version bei mir eingebaut. Allerding öffnet sich nicht das Consolen-Fenster
    und das Video wird auch nicht gemuxt.

    Hinweis: ich arbeite mit Win7_x64 - falls das wichtig sein sollte.

    Danke und Gruß
    René

  • mkvmerge mit Variablen verwenden

    • PCMader
    • 16. November 2012 um 11:44

    Hallo zusammen,

    ich bin Anfänger und habe schon stundenlang im Forum gelesen. Nun habe ich mich an mein erstes Scipt
    gewagt und es klappt auch alles bis auf ein Problem, wo ich nicht weiterkomme.

    Das Scipt soll mit hilfe von mkvmerge in einer Schleife mehrere Videos muxen. Die Rohdaten liegen in
    2 Verzeichnissen.

    • *.264
    • *.mp2


    Mein Ansatz war, die Dateien im 1. Verzeichnis in ein Array zu lesen und so aufzubereiten, dass der komplette
    Dateipfad in einer Varablen steht.
    Als nächstes wird geprüft, ob der Dateiname (nun mit Endung .mp2) im 2. Verzeichnis existiert und wenn ja
    ebenfalls in einer Variablen gespeichert.
    Danach soll das Muxen erfolgen.

    mein bisheriger Quellcode:

    Spoiler anzeigen
    [autoit]


    #include <File.au3>
    #include <Array.au3>

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

    Local $arrFileList = _FileListToArray("F:\a", "*.264")
    If @error = 1 Then
    MsgBox(0, "", "Verzeichnis nicht gefunden!")
    Exit
    EndIf
    If @error = 4 Then
    MsgBox(0, "", "Datei nicht gefunden")
    Exit
    EndIf
    ;~ _ArrayDisplay($arrFileList, "$FileList") - Debug: ob Dateien eingelesen werden

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

    ;~ eingelesene Dateien von $arrFileList in Bestandteile splitten
    ;~ prüfen, ob die dazugehörige mp2-Datei existiert und mkvmerge ausführen
    Local $szDrive, $szDir, $szFName, $szExt
    Local $arrDateiPath = _PathSplit("F:\a\" & $arrFileList[1], $szDrive, $szDir, $szFName, $szExt)
    ;~ _ArrayDisplay($TestPath, "Demo _PathSplit()") - Debug: ob Dateien eingelesen werden

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

    Local $Datei_mkv = "F:\a\" & $szFName & ".mkv"
    Local $Datei_mkv2 = '"'& $Datei_mkv & '"'
    Local $Datei_264 = "F:\a\" & $szFName & ".264"
    Local $Datei_2642 = '"'& $Datei_264 & '"'
    Local $Datei_mp2 = "F:\b\" & $szFName & ".mp2"
    Local $Datei_mp22 = '"'& $Datei_mp2 & '"'
    ;~ MsgBox(0, "", $Datei_mkv2)

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

    If FileExists($Datei_mp2) Then
    RunWait(@ComSpec & ' /k mkvmerge.exe -o $Datei_mkv2 $Datei_2642 $Datei_mp22 ', 'C:\mkvToolNix\')
    EndIf

    [/autoit]

    Leider werden die Variablen nicht umgesetzt.

    Wenn ich z.B. folgendes verwende, funktioniert es ohne Probleme:

    [autoit]


    RunWait(@ComSpec & ' /k mkvmerge.exe -o "F:\a\Test.mkv" "F:\a\Test.264" "F:\b\Test.mp2"', 'C:\mkvToolNix\')

    [/autoit]

    Vermutlich ist es einfach nur eine Kleinigkeit, aber ich finde die Lösung einfach nicht.
    Ich hoffe, mir kann jemand helfen.

    Danke im Voraus
    René

    ;)

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™