Beiträge von Neugier

    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.

    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.

    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.

    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"

    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

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

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

    Punkt 1 : Ja, es werden auch mehrere Videodateien abgearbeitet. Aber es gibt scheinbar ein Problem mit dem Befehl "loudnorm" bzw. die Textdatei die dadurch erzeugt wird. Wie oben schon erwähnt, werden für die Anzahl der markierten Videos die gleichzeitig via drag and drop verarbeitet werden sollen dementsprechend viele Textdateien für die verarbeitung eines einzigen Videos erzeugt, anstatt einer einzigen Textdatei pro Video (Gehirnwirrwarr, ich hoffe du verstehst was ich meine ^^).

    Das Problem ist, dass dein Skript die Textdatei mehrfach überschreibt ohne zufragen. Man sieht es halt nicht als Fehlermeldung oder sonst irgendwo stehen. Bei meinem alten Skript konnte ich es halt nachvollziehen, weil das mehrfache erzeugen der Textdatei im CMD-Fester angezeigt wurde (siehe Screenshot oben in meinem vorletzten Beitrag). Bei deinem Skript wird es im CMD-Fester zwar nicht angezeigt, man kann es aber anhand der Verarbeitungszeit sehen.

    Teste mal ein Folge aus irgendeiner Serie mit mindestens 20 Minuten Laufzeit und schaue wie lange die Verarbeitung dauert. Und dann nimm mehrere Folgen aus der gleichen Serie am besten 15 Folgen und du wirst sehen die Verarbeitung der einzelnen Folgen dauert länger. Und das liegt halt an der erzeugung der Textdatei (siehe Punkt 1).

    Code
    @for             %%i     IN (%*)                         DO  "%xFFmpeg%" -i "%~1" -filter_complex "[0:a]loudnorm=I=-16:TP=-1.5:LRA=11:print_format=summary" -f null x 2> "%~1.txt"

    in welchen pfad befindet sich dein script?

    und wie ist der pfad für deine videos?

    C:\Users\Neugier\Desktop\FF-audio-normalizer
    C:\Users\Tommy Miller\Desktop\Testvideos

    gibt es irgenwo sonderzeichen in den dateinamen?

    Nein, die Videodateien haben keine sonderzeichen.

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

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

    Habe ich gemacht. Alle Dateien, Tools und Skripte werden erkannt. Aber daran liegt der Fehler auch nicht.

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

    Funktioniert nicht. Gleiches Problem wie zuvor. Ich denke, jede Videodatei müsste einzeln erfasst und behandeln werden. Mit der loop/shift-funktion wird das alles nicht umsetzbar sein. Der Code vom MultiDropExecuter könnte her halten ?(

    Leider gibt es bis kein vernünftiges Skript was mehrere Tonspuren normalisiert von der Lautstärke und zugleich mit verschiedenen Audioformaten klar kommt. ffmpeg-normalize auf Python-Basis wäre ein Ansatz, kommt aber mit ac3 nicht klar. Sieht echt schlecht aus.

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

    Würde dir sogar mehr geben :saint: So ein Skript ist Goldwert und fehlt in meiner Sammlung !

    sag ob es irgendwelche probleme gibt

    HQ-LQ danke für deine Hilfe! Leider scheitert dein Skript auch bei der verarbeitung von mehreren Videodateien wie mein altes, dein Skript produziert den gleichen Fehler... Wenn ich via drag and drop z.B. 52 Folgen zum abarbeiten aufs Skript ziehe, erstellt er 52 mal die gleiche Textdatei für Folge eins (die erste analysierte Textdatei von loudnorm) bevor das abarbeiten beginnt und das gleiche macht er für jede weitere Folge. Am Ende sind 2704 Textdateien erstellt worden, obwohl es nur 52 sein sollten. Wie du schon sagst, das Skript ist für "Einzeldateien" ausgelegt. Es müsste jede Videodatei einzeln erfassen und behandeln, dann würde es ordnungsgemäß funktionieren.



    Bei 10 Videoclips mit jeweils 10 Sekunden merkt man nicht gleich, dass ohne sichtbare Fehlerausgabe die Textdatei für jedes Video 10 mal erstellt wird. Aber wenn man Videos mit 20 Minuten hat und weiß wie lange die verarbeitung eines Videos dauert, merkt man sofort den Unterschied, dass das Skript nicht richtig funktioniert.

    Fehler: Mehrfache Textausgabe beim alten wie beim neuen Skript

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

    + dieses skript in ein archiv irgendwo hochlädst. (anonfiles.com)

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

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

    Bitte sehr, die beiden Skripte mit den Tools: Audio Normalisieren

    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.

    Wie oben geschrieben mache ich das via drag and drop, ziehe die Videodateien auf das
    Skript zum abarbeiten. Richtig, das Skript ist für Einzeldateien ausgelegt, aber es gehen
    auch mehrere, dann gibt es aber Probleme bei der verarbeitung (siehe meinen ersten Beitrag).

    Deinen MultiDropExecuter verwende ich nach 6 jahren immer noch fast täglich :):thumbup:
    Der Code hat die ausländischen Untertitel und Tonspuren in den Videodateien entfernt.
    Damit konnte man einzelne oder auch mehrere Videos verarbeiten mit oder auch ohne Ordner.
    Auch hier lief alles via drag and drop.

    Moin alle zusammen,


    ich würde gerne die Tonspuren einer Serie mit 52 Folgen von der Lautstärke her
    normalisieren und die Folgen mit der neuen Tonspur zusammenfügen alles in einem Arbeitsschritt.


    Ich habe dafür ein Skript gefunden und leicht angepasst. Das Skript arbeitet in drei schritten: Zuerst wird via drag and drop das Video bzw. die Tonspur auf das Skript gezogen und mit dem FFmpeg-Befehl "loudnorm" analysiert, das ergebnis wird in einer Textdatei geschrieben. Anschließend wird die Textdatei ausgewertet und eine neue Tonspur erzeugt. Im weiteren Schritt wird mit mkvmerge die neue Tonspur und das Video zusammengefügt. Die alten Dateien werden anschließend durch das Skript gelöscht, so das am Ende nur noch die verarbeitete Videodatei übrig bleibt.


    Das Skript funktioniert soweit ganz gut, solange es sich nur um eine Videodatei handelt! Bei mehreren Videodateien scheitert es aber, da für jede markierte Videodatei die via drag and drop aufs Skript raufgezogen wird eine Textdatei erzeugt wird bevor das abarbeiten beginnt. Das heißt, bei 52 Folgen analysiert er die erste Folge 52 mal und gibt 52 mal die gleiche Textdatei aus bevor das abarbeiten beginnt und dass wiederholt das Skript bei jeder weiteren Folge.

    Leider komme ich mit meinem Wissen nicht mehr weiter, steh auf dem Schlauch... Wäre dankbar wenn jemand eine Lösung für mein Problem hat. MfG Neugier

    Habe es hinbekommen... War leichter als erwartet, aber wenn man kein Plan ist alles schwer :/

    Code
    :loop
      if   exist "%~n1.srt"                 ("%mkvmerge%" -o "neu\%~n1.mkv" -a !eng,fre,rus,spa,ita %1 --language 0:ger --default-track 0:no "%~n1.srt"  && %DelOff% del %1 "%~n1.srt"
    ) else               if   exist "%~n1.idx"     ("%mkvmerge%" -o "neu\%~n1.mkv" -a !eng,fre,rus,spa,ita %1 --language 0:ger --default-track 0:no "%~n1.idx"     && %DelOff% del %1 "%~n1.idx" "%~n1.sub"
                ) else                  ("%mkvmerge%" -o "neu\%~n1.mkv" -a !eng,fre,rus,spa,ita -s !eng,fre,rus,spa,ita %1         && %DelOff% del %1
                                 ) 
    shift
    if not "%~1"=="" goto :loop
    
    
    goto :eof

    HQ-LQ

    Ich kann dein Script gerade nicht testen. Sieht aber schon beeindruckend
    aus was du da zusammengeschustert hast. Da bin ich mal gespannt... Melde
    mich in eins zwei Stunden noch mal.

    Edit:

    So, Test beendet... Script funktioniert astrein :rock:

    Anderes Thema, die integrierten Untertitel werden
    ja standardmäßig aktiviert... Das macht für mich
    eigentlich nur Sinn wenn es sich um Forced-Subs
    handelt. Wie könnte man das im Script deaktivieren?

    Habe hier was im Englischen Forum gefunden wie man
    die Untertitel deaktivieren kann... Leider bekomme ich
    den Befehl nicht ins Script eingefügt, so das er funktioniert.

    Ich bin mir auch nicht sicher ob der Befehl der richtige ist.

    Zitat


    Note that the above commands for adding subtitles also set the subtitles as “enabled by default” when playing the file. (This flag can be confirmed using the MKVMerge GUI.) To avoid this, use --default-track '0:0'.

    HQ-LQ

    So viel Code in einem Script, da wären mir schon längst die
    Finger abgefault... Davon abgesehen, hätte ich es soweit eh
    nicht hinbekommen. Super arbeit! Der Knackpunkt ist immer
    noch das verarbeiten von Verzeichnissen...


    wenn man einstellungen aus einer externen text datei nachladen will
    for /F "tokens=1* delims==" %%a in ('findstr /b "!%xPf%e01!cmd" "%xCfg%"') do call %RunDef% %%b

    das passiert, wenn man variablen mit variabel teilen zusammensetzen will
    !%xPf%e01!cmd"

    Ich habe keine Ahnung was du meinst :grübeln:

    Aber klingt vielversprechend... Wenn es zum Erfolg bringt
    und das Thema mit dem Verzeichnissen löst. Warum nicht.


    sind denn jede datei identisch, das das tonspur löschen funktioniert?


    Ja, an und für sich schon.
    Ich lösche die Tonspuren mit dem Befehl: -a !eng,fre,rus,spa,ita
    Da werden alle Sprachen rausgeworfen die ich nicht brauche, benutze ich auch für Ausländische Untertitel. Hin und wieder kommt es vor das ich Tonspuren habe die keine direkte Language-Kennung haben, sondern wo alle inkl. der Deutschen mit "und" angegeben werden... Meistens haben diese MKV-Dateien aber auch nur zwei Tonspuren. Dann benutze ich den Code -a !2 zum löschen der zweiten Tonspur.


    existtiert zu jeder datei eine untertieteldatei?

    Nicht immer... Falls es zu kompliziert wird, kann man
    diese Option auch erstmal weg lassen. Mir geht es in
    erster Linie nur um das Löschen der anderssprachigen
    Inhalte in der MKV-Datei.


    verarbeitest du jedes verzeichnis einzeln, oder alle auf einmal?
    die antwort steigert zusätzlich die komplexität...

    Kommt drauf an wie viele Dateien/Verzeichnisse ich habe... Aber im
    Grunde markiere ich die Verzeichnisse- schiebe sie auf das Script
    und lasse sie abarbeiten.


    oder hat sich da noch was geändert?

    Du musst dich da nicht so reinsteigern... Möchte nicht, dass dein Kopf durchbrennt :nein:
    Wie gesagt, das Löschen der anderssprachigen Inhalte und das verarbeiten von Dateien
    in Ordnern wäre eine große Zeitersparnis. Die Funktion Untertitel zu integrieren kann außen
    vor gelassen werden... Kommt zum Glück nicht so häufig vor.


    es würde mir helfen zu wissen wie deine zu verarbeitene ordner strucktur aussehen soll.
    ob das auch einzel aufträge (ohne for schleife) verarbeiten können soll.

    Sagen wir mal so, wenn ich meine MKV-Dateien verarbeiten will,
    ziehe ich sie mir auf dem Desktop. Sind meistens 1-30 Ordner.


    ob du die dateien/ordner auf das script ziehen willst.

    Ja genau, ich markiere die Ordner/Dateien und ziehe sie
    auf das Script. Finde ich persönlich am einfachsten.


    wo das script selbst sich befinden soll...

    Das Script befindet sich bei mir auf dem Desktop.

    So habe es hinbekommen...
    Ich denke es ist nicht die sauberste Lösung, aber es funktioniert.
    Es werden alle Mediadateien im MKV-Format verarbeitet die im Ordner
    auf dem Destop liegen. Unterordner ausgeschlossen, außer man ergänzt
    den Code durch folgenden: for /d /r %%D in (*) do (

    HQ-LQ danke für deine Hilfe! Geht anscheinend...
    Mal schauen ob ich das Script von sneaker2 komplett
    integriert bekomme. Andernfalls melde ich mich nochmal.

    Code
    @echo offsetlocal enableDelayedExpansionset mkvmerge="C:\Programme\MKVToolNix\mkvmerge.exe"set "commands=-a !2"for /d %%D in (*) do (    pushd %%D    set files=    for %%F in (*.mkv) do set files=!files! + ^( "%%F" ^)    if not "!files!"=="" %mkvmerge% %commands% -o "output.mkv" !files:~2!    popd)pause

    Edit: Der neue Code von Dir funktioniert nicht...

    Sieht in etwa so aus.

    dfffd.png

    Edit: Die Optionsschalter funktionieren leider auch nicht so wirklich, er löscht zwar mit dem Befehl set "commands=-a !2 eine Tonspur, aber nicht die er soll.