@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