
Ich verwende also recover_mp4 in Verbindung mit ffmpeg, um beschädigte Videodateien von einer SD-Karte wiederherzustellen. Ich habe über 300 Dateien, also versuche ich, den Vorgang zu automatisieren.
Als schnellstes Beispiel habe ich eine Batchdatei zusammengestellt. Die Variable „var“ wird in den ersten beiden Befehlen erfolgreich übergeben, FFMPEG scheint sie jedoch nicht zu akzeptieren. Ich möchte, dass FFMPEG die korrigierten Ausgabedateien mit dem Textdateinamen + rec (badfile1-rec.mp4) erstellt.
Fehlt mir bei FFMPEG einfach eine Einstellung?
Das hier ist meine Batchdatei:
@echo off
for /f "delims=" %%a in (bad-videos.txt) do set var=%%a&call :process
:process
call ""c:\recover\bin\recover_mp4.exe good.mp4 --analyze""
timeout 5
call ""c:\recover\bin\recover_mp4.exe %var% recovered.h264 recovered.aac""
timeout 5
call ""c:\recover\bin\ffmpeg.exe -r 30 -i recovered.h264 -i recovered.aac -bsf:a aac_adtstoasc -c:v copy -c:a copy %var%-rec.mp4""
timeout 60
goto :eof
Antwort1
Ich habe mir gerade Ihr Skript angesehen. Versuchen Sie Folgendes:
@echo off
for /f "delims=" %%a in (bad-videos.txt) do set var=%%a&call :process
goto :eof
:process
call ""c:\recover\bin\recover_mp4.exe good.mp4 --analyze""
timeout 5
call ""c:\recover\bin\recover_mp4.exe %var% recovered.h264 recovered.aac""
timeout 5
call ""c:\recover\bin\ffmpeg.exe -r 30 -i recovered.h264 -i recovered.aac -bsf:a aac_adtstoasc -c:v copy -c:a copy %var%-rec.mp4""
timeout 60
goto :eof