FFmpeg-Stapelverarbeitungsvideos innerhalb eines Ordners

1162
Dr. Snail

Ich habe einen Ordner c:\myfolder\, der eine variable Anzahl von mp4Dateien mit der gleichen Auflösung / Codec enthält.

Jetzt brauche ich eine .bat-Datei, um alle Videos zu einer zusammenzuführen.

zB c:\myfolder\1.mp4, c:\myfolder\2.mp4, c:\myfolder\3.mp4inc:\myfolder\output.mp4

Ich habe einen Weg gefunden, dies zu tun, indem ich .txtzuerst eine Datei erstellt habe, die alle Eingabevideos enthält, und in einem weiteren Schritt

ffmpeg.exe -f concat -i mylist.txt -c copy output.mp4 

Frage: Gibt es eine Möglichkeit, dies in einem Schritt zu tun?

0
Eine Batch-Datei könnte die ".cue" -Datei für Sie erzeugen, aber ich sehe ein Sortierproblem, wenn mehr als 9 Dateien vorhanden sind, da 10.mp4 auf 1.mp4 folgt, sofern Sie nicht mit der Zählung "for / l" die Liste erstellen . LotPings vor 5 Jahren 0
@LotPings Es gibt kein Sortierproblem, da die Dateien sortierbare Zeitstempel haben. Können Sie Ihren Code in eine Antwort schreiben? Dr. Snail vor 5 Jahren 0

1 Antwort auf die Frage

0
LotPings

Da ich ffmpeg nicht auf diesem PC installiert habe, ungeprüft:

:: Q:\Test\2018\06\20\SU_1332169.cmd @Echo off Set "BaseDir=c:\myfolder" Set "OutMp4=%BaseDir%\Output.mp4" Set "FfmpegCue=%Temp%\Ffmpeg.Cue"  :: gather files but exclude evt. present output file ( For /f "Delims=" %%A in ( 'Dir /B/S/A-D/ON "%BaseDir%\*.mp4" 2^>NUL ^|findstr /VLI "%OutMp4%" ' ) Do Echo=%%A ) > "%FfmpegCue%"  :: Just to show what's in the cue file: more "%FfmpegCue%" Pause  :: Do the concat ffmpeg.exe -f concat -i "%FfmpegCue%" -c copy "%OutMp4%" && ( Echo Successfully created "%OutMp4%" choice /M "Delete %FfmegCue% " If not Errorlevel 2 Del "%FfmegCue%" ) || (echo ffmpeg exited with error)