[Batch] Videodateien zweimal verarbeiten in einem Script

  • Moin alle zusammen,

    ich habe mehrere Videodateien die ich in zwei durchgängen mit zwei verschieden Scripten verarbeite. Zuerst werden
    aus den Videos die ausländischen Sub- und Tonspuren gelöscht, anschließend wird die deutsche Tonspur umgewandelt
    und ersetzt. Im zweiten durchgang wird die Tonspur und die übrigen deutschen Subtitel angepasst (unbenannt und neu geordnet).

    Ich habe dafür zwei Scripte bzw. Befehle , die genau das tun was ich möchte. Leider ist es immer ein bisschen umständlich zwei
    Scripte über die Videodateien laufen zulassen. Ich würde das Vorhaben gerne mit einem Script verwirklichen, bekomme es aber
    selbst nicht hin es umzusetzen. Ich wäre dankbar für jede Hilfe!

    PS. Scripte verarbeiten via drag and drop

    Screenshot vor der verarbeitung der Videodateien
    Erster durchgang der verarbeitung
    Zweiter durchgang der verarbeitung (fertig)

    Script eins

    Script zwei

    Scripte und Testdateien

  • wenn du mir testdateien mitlieferst, dann kann ich die scripte auch live testen.

    normalerweise sollte 1 oder mehrere befehle kein problem verursachen,

    da ein laufender befehl das script blockiert und damit alles wartet.

    wichtig ist nur, dass man weis, wie der input-,zwischenschritt-,ausgabe- name heißen soll.

    meist ist der unübersichtliche teil, der wo man dynamisch namen & werte generiert (variablen)


    die billigste methode wäre wenn man die 2 scripte zusammenkopiert.

    man muss nur den übergabenamen der datei(en) beachten.

    ich schau mal was ich jetzt schon machen kann...

    ----

    edit:

    hab die 2 scripte zusammengesetzt.

    im kern braucht du nur die arbeiten im loop/schift erweitern.

    (zeile 20)

    sei vorsichtig mit voreiligem löschen der orginaldateien,

    wenn so n script versagt, dann sind die orginale weg.

    darum verschiebe ich gern die orginale in ein ordner,

    den ich nach korrekter arbeiten lösche.


    script_fused.cmd

    ich seh das der code-block nicht akkurat ist,

    tap-zeichen werden unregelmäßig mit leerzeichen ersetzt.

    auch leere zeilenumbrüche werden nicht mitkopiert.

  • Danke dir, funktioniert so weit :)

    Ist es auch möglich die Ordner zu löschen und die verarbeitete Videodatei wieder
    in den Stammordner zu schieben. Ich weiß, von löschen hältst du nicht viel.
    Ich hatte aber bisher noch nie probleme damit. Ich teste meistens im vorfeld mit
    einem Backup die Videodateien ob das Script probleme macht.

    Edit:

    Meistens speichere ich die verarbeiteten Dateien im selben Ordner wie die Originaldateien
    mit einem Leerzeichen vor dem Namen damit es keine Probleme gibt. Anschließend löscht das
    Script die Originaldateien nach der verarbeitung. "%~dp1\ %~n1.mkv"

  • edit:

    Warnung: irgend was zerstört die videos

    korrigiert im script.

    ----

    move /y "%~dp1neu1\*" "%~dp1"

    :: /y überschreibt gnadenlos alles was sich im ziel befindet

    :: * = alle objekte

    :: alternativ *.* statt * für "datei.endung"-objekte

    rd /s /q "%~dp1neu"

    rd /s /q "%~dp1neu1"

    :: das löscht das aktuelle verzeichniss

    :: /s löscht alle unerverzeichnisse+dateien (wichtig)

    :: /q ohne extra nachfrage (für scripte wichtig)

    :: in zeile 24 einfügen...


    -----

    script_fused_r5.cmd

    ---

    edit: "vertrauen"

    hab grad alle meine videos ins nirvana geschickt,

    quasi zerstört...

    muss mal schaun was schief gegangen ist...


    edit2:

    korrigiert

    bei so einer bewegungs-, kopier- & lösch- aktion

    ist die reihenfolge sehr wichtig.

    bitte vorher TESTEN!

  • Funktioniert nicht richtig, er spuckt die Datei unverändert wieder aus.
    So wie es aussieht, wird der zweite Befehl nicht ausgeführt. Er schafft
    es scheinbar nicht bevor die Dateien gelöscht werden.

    Edit:

    Auch der erste Befehl scheint nicht richtig zugreifen bzw. nur
    zum Teil. Ohne Löschfunktion gehts wie geschmiert.

    Edit2:

    Komisch, das löschen der Sub- und Tonspuren funktioniert nicht,
    genauso wenig das umwandeln der Tonspur und wieder einfügen.
    Dafür scheint aber das umbenennen und Sortieren so halbwegs zugreifen

    unverändert

    Edit3:

    Jetzt verstehe ich. Der zweite Befehl greift auf die Originaldatei
    zu anstatt auf verarbeitete Datei aus Befehl eins.

    3 Mal editiert, zuletzt von Neugier (10. März 2023 um 17:39)

  • also, die letzte revision (R5) funktioniert nicht?

    aber die revision (R4) hatte funktioniert?

    das teil komplett außeinander zu nehmen wollt ich eigendlich vermeiden...

    ich schau mal ob ich was finde,

    aber deine primären verarbeitenden befehle (ffmpeg/mkvtoolnix)

    hatte ich eigendlich erwartet, dass diese funktionieren.

    kannst du denn bestätigen, dass die befehle funktionieren,

    wenn du die befehle quasi von hand ausführst?

  • aber die revision (R4) hatte funktioniert?

    kannst du denn bestätigen, dass die befehle funktionieren,

    wenn du die befehle quasi von hand ausführst?

    Genau, die R4 funktioniert.

    Wie gesagt, siehe Edit:3 im letzten Beitrag von mir.

    Der zweite Befehl greift auf die Originaldatei

    zu anstatt auf verarbeitete Datei aus Befehl eins.

    Hat wohl mit de Löschfunktion zu tun.

    Edit:

    Ich habe gerade nochmal dein Script "R4" aus deinem ersten
    Beitrag getestet. Scheinbar geht dein Script jetzt auch nicht
    mehr, hast du es mehrfach umgeschrieben oder editiert?

    Vielleicht hatte ich noch die erste version am laufen.

    Einmal editiert, zuletzt von Neugier (10. März 2023 um 18:51)

  • also (R4) hätte spätestens beim dritten befehl nicht funktioniert,

    da der input die orginal datei war und nicht die verarbeitete datei verwendet wurde,

    die beim zweiten befehl erzeugt wurde.

    das ist was an einer fehleranalyso so viel "spaß" macht,

    alles läuft durch, doch dann fällt auf das ein input falsch gewählt wurde,

    und schon sind 100derte dateien im eimer...

    theoretisch könnte man mit MkvMerge die fertigen dateien nochmal prüfen,

    ob alles dort ist, wo man es erwartet.

    aber meine lust 100.000 schutzschichten einzubauen hält sich in grenzen,

    wenn mir nicht einer den kernbefehl mundgerecht vorfertigt,

    so werde ich sowas langfristig ehr nicht einbauen*...

    * nicht böse gemeint ;)

    ----

    script_fused_r6.cmd

    ---

    so sieht n bissel nach chaos aus,

    aber alle befehle mit @, sind für mich für eine fehleranalyse

    wie du siehst, sind diese zum größsten teil mit :: auskommentiert/deaktiviert.

    der @ befehl macht im grunde nichts, außer nur diesen einen befehl ausblenden,

    änlich wie 'echo off' der alle befehle ausblendet.

    darum zeckentfremde ich ihn für makierungen.

    mit %xD% kann ich überall eine pause erzeugen, die mir gleich die variablen anzeigt (für debugging ;) )

    ich habe platzhalter für die temporären verzeichnisse erstellt.

    gegenende habe ich eine lösch/sicherungs routine eingebaut.

    je wie diese auskommentiert wird, so sichert diese dateien,

    oder LÖSCHT diese.

    aktuell ist es auf löschen gestellt.

    das ist auch der grund, warum diese 'REM'-kommentare hat,

    die quasi die befehle erklärt.


    das script sollte jetzt theoretisch funktionieren,

    ich hoffe der input für den letzten befehl ist richtig,

    jedenfalls macht der so mehr sinn.

    ---

    edit:

    hab noch ein paar befehle auskommentiert,

    keine beeinträchtigung des scripts.

  • Vielen danke für deine Mühe! Hast mehr Arbeit
    reingesteckt als mir lieb ist :saint:

    Ich hätte schwören können, dass dein R4 Script
    bis auf die Löschfunktion ordnungsgemäß
    funktioniert hatte. Ich gaube das Löschen hattest
    du zum Anfang garnicht mit drin gehabt. Sorry,
    ich bin mir halt nicht mehr sicher. Aber du sagst ja
    das Script ist unverändert gewesen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!