ich kann zwar (etwas) programmieren, aber ich benötige Hilfe für ein Batch-Script. Leider liegt mir die Batch-Programmierung nicht so und deswegen benötige ich etwas Hilfe. Ich benutze ffmpeg zum automatischen Schneiden von mp4-Dateien - es wird der Vorspann weggeschnitten und der Abspann. Dazu eignet sich ffmpeg ganz gut, da es kommandozeilenbasiert arbeitet und sich per Batch programmieren lässt.
Der erste Teil des Scripts ermittelt die Dauer ("geslaenge") aller mp4s im Ordner.
Die Filmlänge ("filmlaenge") = Dauer ("geslaenge") - Vorspann ("vor") - Abspann ("ab").
Dann möchte ich die Filmlänge ganzzahlig erhalten - ich addiere 1 dazu und teile durch 1 damit die Filmlänge die Nachkommastellen verliert und ganzzahlig wird.
Dann kommt der Teil in dem ffmpeg aufgerufen wird und die mp4s schneidet.
Wäre es möglich, dass jemand mal drüberschaut, der sich mit Batch-Programmierung auskennt und mir netterweise erklärt was ich falsch mache?
Ich komme nämlich allein nicht mehr weiter...
Das Script habe ich mir teilweise mit Hilfe und mit googlen zusammengebaut.
(Ursprünglich bestand es aus zwei Batchdateien, die mittels Text-Dateien, die Werte übergeben haben. Den Weg mit den Textdateien möchte ich nicht mehr verwenden.)
Nun bin ich dabei aus den zwei Dateien eine zu machen - und das ist der Versuch den ich hier poste:
@echo off echo Vorspannlaenge eingeben set/p vor= echo Abspannlaenge eingeben set/p ab= SETLOCAL EnableDelayedExpansion @echo off set z=1 for %%F in (*.mp4) do ( for /f "tokens=2-5 delims=:., " %%a in ( 'ffmpeg -i "%%F" 2^>^&1 ^| find "Duration:"' ) do ( setlocal enableDelayedExpansion set /a "geslaenge=1%%a*3600 + 1%%b*60 + 1%%c - 366100" echo geslaenge.%%d set/a filmlaenge=geslaenge - vor - ab set/a filmlaenge=filmlaenge+=1 set/a filmlaenge=filmlaenge/1 echo %filmlaenge% ffmpeg -i !z!.mp4 -ss !vor! -t %%filmlaenge -c:v copy -c:a copy "geschnitten\!z!.mp4" set /a z+=1 endlocal ) ) pause
Ich würde mich sehr freuen und bin sehr dankbar wenn mir jemand helfen könnte.
Viele Grüße,
je77