chcp 65001 echo off cls set INPUT=C:\any_video.mp4 rem • имя конечного файла myfile без ".gif", можно с указанием пути C:\mydir\myfile set OUTPUTNAME=my_gif_file rem • начало в (format 00:00:00.000) set START=00:08:48.000 rem • длительность (format 00:00:00.000) set LENGTH=00:00:03.100 rem • кол-во цветов: 1-256 set COLORS=64 rem • алгоритмы сглаживания границ шумом rem atkinson rem bayer:bayer_scale=0 rem bayer:bayer_scale=1 rem bayer:bayer_scale=2 rem bayer:bayer_scale=3 rem bayer:bayer_scale=4 rem bayer:bayer_scale=5 rem burkes rem floyd_steinberg rem sierra2 rem sierra2_4a rem none set DITHER=bayer:bayer_scale=2 rem • if enabled - only the changing rectangle will be reprocessed set DIFF=:diff_mode=rectangle set FILTER= -filter_complex " rem • fps set FILTER=%FILTER%fps=10, rem • crop inputs: iw, ih, ow, oh rem set FILTER=%FILTER%crop=w=640:h=480:x=1146:y=24, rem • scale filters: "lanczos" for gradients, "sinc" for complex images with small details rem set FILTER=%FILTER%scale=1280:-1:flags=lanczos+accurate_rnd, set FILTER=%FILTER%split[a][b]; set FILTER=%FILTER%[a]palettegen=%COLORS%:reserve_transparent=0[p]; set FILTER=%FILTER%[b][p]paletteuse=%DITHER%%DIFF% set FILTER=%FILTER%" rem • число повторений: -1 = 1 раз; 0 = бесконечно; 1 = 2 раза; 2 = 3 раза... set LOOP=0 rem ====== КОНЕЦ НАСТРОЕК ====== if exist "%INPUT%" ( CALL :get_source "%INPUT%" ) else ( echo Error: input file not found. pause exit 0 ) :get_source set ATTR=%~a1 set DIRATTR=%ATTR:~0,1% if /I "%DIRATTR%" NEQ "d" set SOURCEDIR=%~dp1 if /I "%DIRATTR%" NEQ "d" set SOURCEFILE=%~n1 set INPUT= -i "%INPUT%" :get_source_end if not "%OUTPUTNAME%"=="" ( CALL :get_target %OUTPUTNAME% ) else ( set OUTPUT= "%SOURCEDIR%%~n1 - ffmpeg.gif" GOTO:get_target_end ) :get_target set TARGETDIR=%~dp1 if /I "%TARGETDIR%"=="%~dp0" ( set OUTPUT= "%SOURCEDIR%%~n1.gif" ) else ( set OUTPUT= "%TARGETDIR%%~n1.gif" ) :get_target_end if not "%START%"=="" set START= -ss %START% if not "%LENGTH%"=="" set LENGTH= -t %LENGTH% set LOOP= -loop %LOOP% set COMMAND=..\ffmpeg%START%%LENGTH%%INPUT%%FILTER%%LOOP%%OUTPUT% -y echo %COMMAND% echo. %COMMAND% echo. echo. [1] Открыть конечный файл echo. [2] Выход echo. choice /C:12 /N /M "Введите выбор: " if errorlevel 2 exit 0 if errorlevel 1 ( start "" %OUTPUT% exit 0 ) exit 0