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
#include <File.au3>
#include <Array.au3>
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
;~ 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
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)
If FileExists($Datei_mp2) Then
RunWait(@ComSpec & ' /k mkvmerge.exe -o $Datei_mkv2 $Datei_2642 $Datei_mp22 ', 'C:\mkvToolNix\')
EndIf
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\')
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é