kdofficial/public/trans.bat

47 lines
1.3 KiB
Batchfile

@echo off
setlocal enabledelayedexpansion
REM --------------------------------------------------
REM 批量将当前目录(不含子目录)下所有 .mp4 转为高质量 GIF
REM GIF 文件名前缀 "Gif_"
REM 若目标文件存在则自动覆盖
REM --------------------------------------------------
REM 用户可按需调整:
set "WIDTH=992"
set "FPS=10"
REM --------------------------------------------------
for %%F in (*.mp4) do (
set "INPUT=%%F"
set "BASENAME=%%~nF"
set "PALETTE=palette_!BASENAME!.png"
set "OUTPUT=Gif_!BASENAME!.gif"
echo.
echo [PROCESS] %%F -> !OUTPUT!
REM 1) 生成调色板
ffmpeg -hide_banner -y -i "%%F" -vf "fps=%FPS%,scale=%WIDTH%:-1:flags=lanczos,palettegen" "!PALETTE!"
if errorlevel 1 (
echo [ERROR] 调色板生成失败: %%F
) else (
REM 2) 按调色板生成 GIF
ffmpeg -hide_banner -y -i "%%F" -i "!PALETTE!" ^
-filter_complex "fps=%FPS%,scale=%WIDTH%:-1:flags=lanczos[x];[x][1:v]paletteuse=dither=none" ^
"!OUTPUT!"
if errorlevel 1 (
echo [ERROR] GIF 生成失败: %%F
) else (
echo [OK] 已生成: !OUTPUT!
)
)
REM 删除临时调色板
del /q "!PALETTE!" 2>nul
)
echo.
echo 全部转换完成!
pause