man könnte das ggf. mit Handbrake CLI, also der CommandLine Version von Handbrake erledigen. So in der Art
Code: Alles auswählen
@echo off
setlocal
set INPUTDIR=input
set OUTPUTDIR=output
set PRESET="Fast 1080p30"
set MIN_SIZE_BYTES=10000000 :: ~10 MB
echo Starte Batch-Encoding aller Videos im Ordner: %INPUTDIR%
for %%F in (%INPUTDIR%\*.mp4) do (
set "FILENAME=%%~nF"
call :processFile "%%F"
)
echo Fertig!
pause
exit /b
:processFile
set "INPUTFILE=%~1"
set "FILENAME=%~n1"
set "OUTPUTFILE=%OUTPUTDIR%\%FILENAME%_converted.mp4"
if exist "%OUTPUTFILE%" (
for %%S in ("%OUTPUTFILE%") do set SIZE=%%~zS
if %SIZE% LSS %MIN_SIZE_BYTES% (
echo WARNUNG: Datei zu klein (%SIZE% Bytes) → Neu encodieren
del "%OUTPUTFILE%"
goto :encode
) else (
echo Datei vorhanden: %OUTPUTFILE% (%SIZE% Bytes) – überspringe
goto :eof
)
)
:encode
echo Encodiere: %INPUTFILE%
HandBrakeCLI -i "%INPUTFILE%" -o "%OUTPUTFILE%" --preset %PRESET%
exit /b
Der Code ist nur ein grober Anhalt. Dabei wird angenommen, dass fertige Encodierungen vom Umfang her Größer als 10MB sind, bzw. Umkehrschluss: angefangene Encodierungen nur einen kleinen Footprint haben.
Da ich nicht mit Handbrake arbeite, kann ich da aber wenig zu sagen. Es kommt auch auf die Dateiendung der angefangenen Encodierung an; scheint ja schon mp4 zu sein und nicht so etwas wie .tmp, .part o.ä.
Die bei Abbruch bereits angefangen/erstellten Videos sind aber wohl hoffnungslos verloren. Da fehlt so etwas wie Metadateien, oder wie man das nennt.
Ggf. gibt es auch einen Exitcode und man könnte damit weiterarbeiten:
Code: Alles auswählen
QUELLE_DATEI="/pfad/zum/quellfilm.mkv"
ZIEL_DATEI="/pfad/zum/ziel/fertiger_film.mp4"
# Starte die Kodierung
HandBrakeCLI -i "$QUELLE_DATEI" -o "$ZIEL_DATEI" -Z "Fast 1080p30"
# Überprüfe den Exit-Code von HandBrakeCLI (0 = Erfolg, ungleich 0 = Fehler/Abbruch)
if [ $? -ne 0 ]; then
echo "HandBrake Kodierung wurde unterbrochen oder ist fehlgeschlagen."
# Optional: Lösche die unvollständige Datei, um einen sauberen Neustart zu ermöglichen
if [ -f "$ZIEL_DATEI" ]; then
echo "Lösche unvollständige Datei: $ZIEL_DATEI"
rm "$ZIEL_DATEI"
fi
warum muss Handbrake denn überhaupt während der Encodierung beendet werden? Gibt es dafür einen triftigen Grund?
z.B. weil die Encodierung zu lange dauert? Der PC abstürzt?
Zu guter letzt: evtl. gibt es Softwarealternativen mit besserem "Resume"? z.B. Hybrid
https://www.selur.de/downloads
MeGui
https://sourceforge.net/projects/megui/
reines FFMPEG ...
man könnte das ggf. mit Handbrake CLI, also der CommandLine Version von Handbrake erledigen. So in der Art
[code]@echo off
setlocal
set INPUTDIR=input
set OUTPUTDIR=output
set PRESET="Fast 1080p30"
set MIN_SIZE_BYTES=10000000 :: ~10 MB
echo Starte Batch-Encoding aller Videos im Ordner: %INPUTDIR%
for %%F in (%INPUTDIR%\*.mp4) do (
set "FILENAME=%%~nF"
call :processFile "%%F"
)
echo Fertig!
pause
exit /b
:processFile
set "INPUTFILE=%~1"
set "FILENAME=%~n1"
set "OUTPUTFILE=%OUTPUTDIR%\%FILENAME%_converted.mp4"
if exist "%OUTPUTFILE%" (
for %%S in ("%OUTPUTFILE%") do set SIZE=%%~zS
if %SIZE% LSS %MIN_SIZE_BYTES% (
echo WARNUNG: Datei zu klein (%SIZE% Bytes) → Neu encodieren
del "%OUTPUTFILE%"
goto :encode
) else (
echo Datei vorhanden: %OUTPUTFILE% (%SIZE% Bytes) – überspringe
goto :eof
)
)
:encode
echo Encodiere: %INPUTFILE%
HandBrakeCLI -i "%INPUTFILE%" -o "%OUTPUTFILE%" --preset %PRESET%
exit /b[/code]
Der Code ist nur ein grober Anhalt. Dabei wird angenommen, dass fertige Encodierungen vom Umfang her Größer als 10MB sind, bzw. Umkehrschluss: angefangene Encodierungen nur einen kleinen Footprint haben.
Da ich nicht mit Handbrake arbeite, kann ich da aber wenig zu sagen. Es kommt auch auf die Dateiendung der angefangenen Encodierung an; scheint ja schon mp4 zu sein und nicht so etwas wie .tmp, .part o.ä.
Die bei Abbruch bereits angefangen/erstellten Videos sind aber wohl hoffnungslos verloren. Da fehlt so etwas wie Metadateien, oder wie man das nennt.
Ggf. gibt es auch einen Exitcode und man könnte damit weiterarbeiten:
[code]QUELLE_DATEI="/pfad/zum/quellfilm.mkv"
ZIEL_DATEI="/pfad/zum/ziel/fertiger_film.mp4"
# Starte die Kodierung
HandBrakeCLI -i "$QUELLE_DATEI" -o "$ZIEL_DATEI" -Z "Fast 1080p30"
# Überprüfe den Exit-Code von HandBrakeCLI (0 = Erfolg, ungleich 0 = Fehler/Abbruch)
if [ $? -ne 0 ]; then
echo "HandBrake Kodierung wurde unterbrochen oder ist fehlgeschlagen."
# Optional: Lösche die unvollständige Datei, um einen sauberen Neustart zu ermöglichen
if [ -f "$ZIEL_DATEI" ]; then
echo "Lösche unvollständige Datei: $ZIEL_DATEI"
rm "$ZIEL_DATEI"
fi[/code]
warum muss Handbrake denn überhaupt während der Encodierung beendet werden? Gibt es dafür einen triftigen Grund?
z.B. weil die Encodierung zu lange dauert? Der PC abstürzt?
Zu guter letzt: evtl. gibt es Softwarealternativen mit besserem "Resume"? z.B. Hybrid
[url]https://www.selur.de/downloads[/url]
MeGui [url]https://sourceforge.net/projects/megui/[/url]
reines FFMPEG ...