Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement