47 lines
1.3 KiB
Batchfile
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
|