Beiträge von HQ-LQ

    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.

    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?

    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!

    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.

    ich habe (musste) es jetzt neu installieren,

    hab jetzt ne neue id... mal sehen wie lang die hält,

    bzw. bis se mein pc wiedererkennen...

    werd aber vorsichtshalber noch ruskdesk verteiln,

    da hab ich dann n fallback, und auch noch open source...

    hab das mal in chatGPT als auftrag gegeben...

    keine garantie auf richtigkeit.

    einzeldatei:

    Code
    staxrip.exe -script:"audio.mode=copy/mux; audio.stream=dtshd" input.mkv

    für mehrere dateien:

    done...

    also ich glaube ich hab ein bug entdekt.

    1# %* in einem :loop/shift macht keinen sinn, wenn der input im loop nur eine datei ist.

    2# merkwürdigerweise wird dieser for-befehl, nach der anzahl der übergebenen dateien, mehrfach ausgeführt.

    d.h. lasse ich 10 dateien fallen, dann steht der befehl 10x da, obwohl nur ein dateiname gespeichert ist.

    ich hab das mit ' echo ' & ' pause ' ermittelt.

    also, mit ' pause ' hab ich das script und den loop sofort unterbrochen,

    er hätte eigendlich nicht mal die chance gehabt bis 10 zu zählen...

    ich wüsste nicht, warum %* überhaupt solche methainformation haben soll.

    egal, da nur eine einzeldatei-verarbeitung gewünscht ist,

    so werde ich das rausschmeißen, die for-schleife macht keinen sinn,

    zumal die variable %%i auch nicht weiter verwendet wird...

    kannst ja dann mal sagen ob es dann gewünscht funktioniert...

    Zitat

    viele Textdateien für die verarbeitung eines einzigen Videos erzeugt

    ok, es wäre zu klären.

    so für jedes video einzeln die normalisierung laufen?

    so müsste ich für jedes video eine datei erzeugen

    und %* wäre fehl am platz.

    soll aus allen videos die normalisierungs-summe erzeugt werden,

    dann würd es komplizierter, bzw. man müsste den 'shift' rückwärts laufen lassen !?

    wüsste jetzt nicht wie 'shift' reversibel sein sollte.

    ansonnsten müsste man über die script struktur nachdenken

    und die dateien anders zusammenfassen.

    ---

    was genau hatte der script-ersteller vor gehabt? hast du die quelle vom script?

    ---

    da du die viedeos optional einzeln abarbeiten wolltest, so gehe ich von einer einzeldatei lösung aus.

    werds mir nochmal anschauen, jedenfalls ist das %* dann falsch.

    ich muss schauen, was er damit alles einzufangen versucht...

    ---

    ich habe irgendwo ein denkfehler ein denkfehler.

    %* macht in einen loop/shift-schleife keinen sinn,

    im loop nur eine datei repräsentiert wird...

    dann versteh ich das mehrfache überschreiben der selben dateien nicht.

    das sollte so nicht passieren, und damit das script nicht immer langsamer werden.

    jeder loop/shift prozess sollte in sich abgekapselt werden...

    ok, ich habs...

    es waren wieder die pfade,

    ich habe geschaut, warum der mkvmerge-command nicht gegriffen hat.

    ich hatte einige objekte übersehen...

    auch wurden seltsamerweise, nicht die kompletten befehle kopiert.

    habe ich repariert/ergänzt

    ich habe mir auch die lösch-routienen mir genauer angeschaut...

    ich bin kein fan von ' del *.txt '

    wenn mal die pfade kaputt sind, dann wildert das script sonntwo. :'S

    darum lösche ich überiegend nur mit filtern oder variablen: ' del "%~1.txt" '

    es ist interressant, dass troz ' cd /d "%~dp1" '

    die dateien nicht gefunden wurden,

    das liegt wohl daran, dass der verzeichniswechsel nicht im loop ist, sondern davor...

    das script sollte mit den generierten absoluten pfaden kein verzeichniswechsel mehr benötigen...

    [FF-audio-normalizer.cmd] (fixed)

    so, wenns läuft, dann 3,50...

    also, mit der loop/shift-funktion habe ich gelernt,

    dass troz %1 eingabe mehrere dateien als eingabe abzepiert werden.

    bei mir rannte das script durch, und hat *.ac3 dateien

    und zum schluss einen neuen ordner mit den neuen videos erstellt.

    in welchen pfad befindet sich dein script?

    und wie ist der pfad für deine videos?

    52 dateien habe ich jetzt nicht getestet,

    ich weiß aber, dass windows verschiedene limits hat.

    - eins ab 15 dateien (hat hier keinen einfluss/ getestet)

    - ein anderes ist das zeichenlimit für die komando-eingabe

    müsste aber mal getestet werden.

    gibt es irgenwo sonderzeichen in den dateinamen?

    ---

    pack mal folgendes script in dem selben ordner wie das normalisierungs-script

    und teste mal den drop... bei mir haben 57 dateien funktioniert.

    [shift-test.cmd]


    ---

    edit3:

    ich glaub ich hab was...

    so bitte schön:

    <anonfiles hat den dienst eingestellt>

    sag ob es irgendwelche probleme gibt.

    dank loop+shift brauchte ich den 'MultiDropExecuter' hier nicht anwenden.

    ordner kann er aber dadurch nicht durchsuchen und verarbeiten...

    aber drag & drop sollte kein problem darstellen.

    der '_tool'-ordner hat eine abhänigkeit mit dem script...

    hier das script für die "KI"-bots...

    ist es gut, dass die von mir lernen...? ^^

    wer sonnst noch was findet... immer her...

    p.s.

    schade das der codeblock nicht ein schriftbild verwendet, wo alle zeichen gleich breit sind,

    wie z.b. "Consolas" oder ähnlichem...

    das script findet bei mir ffmpeg nicht, weil es das verzeichnis wechselt.

    mkvtoolnix wurde in einer variable gesichert.

    ffmpeg nicht.

    werd warscheinlich vieles ändern müssen...

    naja egal.

    muss schaun wie ich zeit finde...

    edit:

    ah jetzt verstehe ich "shift" endlich,

    das würde meine script eskalationen wohl etwas entschärfen können... XD

    edit2:

    fortschritt: es läuft

    und ich weis nicht was ich gemacht habe.

    ich habe es nur auf meine logik leicht angepasst.

    vermutlich war es der input, der nicht vernünftig abgegrenzt wurde

    mit %1 --> "%~1" verursacht keine schäden und macht den input robuster...

    edit3:

    theoretisch könnte ich die prozesse parallel laufen lassen,

    aber bei 10+ dateien würde es die leistung des laufwerks belasten...

    ung gezieltes theading ist (für mich) noch etwas schwierig umzusetzen...

    ok die spielereien mit autodownloader für die tools lass ich mal sein für heute... ;)

    was mir auffällt ist, dass %1 nicht mit "" eingeklammert wird.

    du hast 2 dateien 'name.video' & 'na me.video'

    dann hast du die variable %1.txt

    die wird im ersten fall ' name.video.txt' konvertiert

    aber im zweiten fall ' "na me.video".txt '

    wie du siehst wird '.txt' nicht mit eingefangen.

    richtig wäre, weil der dateiname potenziell unbekannt ist, durchweg "%~1" zu verwenden.

    das ' ~ ' erzingt eine ""-lose ausgabe, so hat man nicht mit den ständig wechselnden anführungzeichen zu käpfen.

    weiter unten sehe ich, da hat er es richtig gemacht mit "neu\%~n1.mkv"

    ---

    ich muss schauen wie ich zeit finde um das thema voll zu verstehen,

    da meine arbeit mich ziehmlich stark vereinamt.

    und ffmpeg-online wollt ich auch noch fertig basteln... XD

    es würde mir helfen, denn du ein paar kurze videodateien (ca 10sek)

    + dieses skript in ein archiv irgendwo hochlädst.

    dann hätt ich eine vorlage, mit der ich arbeiten kann...

    p.s.: pack alle tools mit rein, die sonnst noch gebraucht werden.

    ---

    edit3:

    dieses script ist für einzeldateien ausgelegt, durch %1 verarbeitet dieses nur die erste datei.

    wie fürst du das script aus, dass es mehrere dateien verabeitet?

    wenn du mein "MultiDropExecuter" verwendest, dann pack das mit ins archiv.

    und sag wie du es verwendest.

    so, hab auf die schnelle mal zusammengeschustert:

    ffmpeg-online.zip

    diese datei verhält sich wie eine ffmpeg.exe

    sollte ffmpeg nicht gefunden werden,

    dann läd es eigenständig die neuste version herunter.

    jedenfalls funktioniert diese erstmal.

    mein anspruch ist aber eine etwas aufgeräumtere version,

    die u.u. etwas schneller startet

    und ggf. eine schnellere downloadquelle.

    z.b. direkt von github, aber das braucht mehr als nur eine zeile...

    u.u. werde ich diese sogar selbst verwenden,

    nie mehr auf die update suche gehen... :P

    wenn du ffmpeg updaten willst, dann lösche einfach den von mir erzeugten ordner...

    ich muss mal schauen ob ich auch die umgebungsvariablen mit integriere,

    das würde u.u. aber den script-start verlangsamen,

    da ja jeder befehl abgearbeitet werden will... mal sehen, was ich mir da einfallen lasse...

    aber gerade hab ich keine zeit, deswegen diese schlampige quick & dirty version...

    c:\ffmpeg funktioniert nicht, wenn das programm in einem unterverzeichnis ist.

    oder du müsstest dann immer 'bin\ffmpeg' eingeben, was den sinn der path variablen an absurdum führt.

    ich weis nicht mal ob das funktioniert,

    wenn immer unterverzeichnisse mit durchsucht würden, dann würde so ein system lahm werden.

    das stamm ja schließ lich noch aus der dos ähra mit langsamen festplatten.

    und ich bezweifel dass einerer in der ssd ära mal auf die idee gekommen ist, genau das zu ändern, was seit Jahrzehnten funktioniert und quasi unangetastet ist...

    das problem ist, dass die ffmpeg-pakete unterschiedlich aufgebaut sind.

    einige haben unterordner (bin & co.), andere nicht.

    das problem musste ich übrigens beachten, als ich die auto- download funktion in mein script eingebaut habe.

    ich habe früher quasi den bin-ordner gelöscht

    und den inhalt eine ebene höhr verschoben.

    'path' variablen müssen immer zuem wunsch programm direkt führen, das war wohl der fehler.

    wenn du die pakete von dieser webseite verwenden willst, und der tüp die ordnerstruktur hoffendlich nicht ändert,

    dann währe "c:\ffmpeg\bin" richtig gewesen,

    wenn du den inhalt nicht hin und her verschieben/kopieren willst.


    guten morgen... ;)


    edit:

    da das script speziell deine befehlezeile enthält, machet es genau das, und zwar nur das.

    damt ist der befehl:

    ffmpeg-drop__by_HQ-LQ.cmd testfilm.ts

    mehr nicht.

    ich werde hut abend mal ein script basteln, dass sich 100% wie die ffmpeg.exe verhält,

    aber selbstständig ein fehlendes ffmpeg herunterläd.

    vermeide aber trozdem spezelle sonderzeichen im namen. z.b. leerzeichen usw.

    lass dich nicht von der dateiendung verwirren,

    wie oben beschrieben sollte nach deinem verstäntnis .cmd = .bat sein.

    wenn du nicht weist, was .bat ist, so mach dich bitte online schlau, was das ist und ggf. wie das funktuiniert.

    ein tutorial dafür wollt ich eigendlich nicht dafür schreiben... ;)

    edit nr 10:

    deine ffmpeg.exe scheind richtig erkannt worden zu sein.

    teste ob dein befehl funktioniert,

    ansonnsten könnt ich mir dein problem nicht erklären, außer zu unterstellen, dass deine eingabe wiederholt falsch ist, oder mit irgend was anderem im ordner wechselwirkt.

    übrigens schreibe ich "ffmpeg.exe" , obwohl "ffmpeg" auch funktioniert.

    das habe ich mir angewöhnt um sicher zu gehen, dass keine http://ffmpeg.bat/com/cmd/vbs/u.s.w. auf die eingabe reagiert...

    das mit den 3 Ordnern war nur ein extremer Fallbeispiel,

    wie man sich durch zu viele Pfade u.u. das system kaputt macht*

    *klingt ein bisschen dramatisch, natürlich geht es nicht so schnell kaputt,

    aber wichtige tools können durch das prioritäten problem beeinträchtigt werden.

    ...ja ich meinte die 'Path'-variable.

    bei mir haben sich die typischen programme in der 'systemvariable' verewigt.

    für dich reicht es,

    wenn du es unbedigt brauchst,

    deine wichtigen pfade in den 'benutzervariablen' einzutragen.

    aber selbst ich, habe diese spielereien nie gebraucht,

    das regel ich alles mit 'cmd'-scripten,

    die die nötigen variablen zeitlich begrenst zur verfügung stellt,

    oder wie bei dir, mit scan-funktionen, die pfade selbst ermittelt...


    "bin, doc und presets"

    für dich ist nur der 'bin'-ordner interressant,

    wo die exe-dateien liegen.

    übrigens die variable "PATHEXT" sagt windows welche dateitypen bei "PATH" gesammelt werden sollen

    " PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC "

    wie du siehst sind die bekannten vertreter 'exe,bat,cmd' dabei...

    ---

    hat denn alles so geklappt?

    wenn du wieder so ein problem hast,

    dann versuche die videodatei im programmorder des tools,

    oder wie bei ffmpeg, einfach die exe ins selbe verzeichnis die dein video zu kopieren*

    *funktioniert natürlich bei komplexen anwendungen mir 1000 programm dateien nicht so gut... ;)

    Zitat

    ffmpeg ffmpeg-drop__by_HQ-LQ.cmd testfilm.ts

    ist falsch

    damit sagst du ffmpeg.exe, dass es ffmpeg-drop__by_HQ-LQ.cmd öffnen soll.

    ffmpeg.exe kennt keine bat/cmd dateien als input.

    Zitat

    ffmpeg-drop__by_HQ-LQ.cmd testfilm.ts

    ist richtig.

    du könntest auch einfach deine videodatei im explorer mit der maus nehmen,

    und diese auf die 'ffmpeg-drop__by_HQ-LQ.cmd' ziehen.

    der mauszeiger ändert sein symbol (ein + erscheint), dann loslassen.

    (darum auch der 'drop' (fallen lassen) im namen...)

    die verarbeitung von ffmpeg wird in der ffmpeg-drop__by_HQ-LQ.cmd gesteuert.

    du kannst dir die datei ja mal mit notepad anschauen... XD

    mit so einer script-datei kannst du ffmpeg mehrfach aufrufen und damit quasi mehrere aufträge in einem rutsch abarbeiten.

    ---

    edit:

    da dein 'ffmpeg' komando eine "Schleife ohne Ende" erzeug, liegt die vermutung nahe,

    das zu viele tools, und hier das flasche ausgeführt wird und ein loop verursacht.

    du musst wissen 'ffmpeg' ist nicht 'ffmpeg.exe', sondern kann auch 'ffmpeg.bat' oder 'ffmpeg.cmd' bedeuten.

    ich würde aus den umgebungsvariablen das "C:\ffmpeg\bin" entfernen,

    und weitere eigen hinzugefügte pfade, die mit ffmpeg zu tun haben.

    welches tool oder tutorial hat das verlagt?

    ---

    zenario:

    du fügst in den umgebungsvariablen 3 verschiedene ordner ein,

    die alle ffmpeg.exe beinhalten.

    frage: wie kannst du sicher sein dass die richige gewähnlt wird?

    antwort: garnicht.

    die pfade werden nach reihnfolge und der gefundene ordner-inhalt nach name abarbeitet.

    der erste treffer gewinnt.

    schlussfolgerung: deswegen vorsicht mit umgebungsvariablen


    übrigens gibt es umgebungsvariablen 2 mal.

    einmal für den angemeldeten benutzer --> "benutzervariablen"

    und einmal für alle. --> "systemvariablen"

    008.png_E5TX_zopfli-def-f3.png