This commit is contained in:
Stian 2024-12-28 17:22:40 +01:00
parent 3fd7e78089
commit 4da6ee54c9

View File

@ -1,360 +1,358 @@
@ECHO OFF @ECHO OFF
:: Description: Video to GIF/APNG/WEBP converter :: Description: Video to GIF/APNG/WEBP converter
:: By: MDHEXT, Nabi KaramAliZadeh, Pathduck :: By: MDHEXT, Nabi KaramAliZadeh, Pathduck
:: Version: 6.0 :: Version: 6.0
:: Url: https://github.com/Pathduck/vid2ani/ forked from https://github.com/MDHEXT/video2gif :: Url: https://github.com/Pathduck/vid2ani/ forked from https://github.com/MDHEXT/video2gif
:: What this script is based on: http://blog.pkh.me/p/21-high-quality-gif-with-ffmpeg.html :: What this script is based on: http://blog.pkh.me/p/21-high-quality-gif-with-ffmpeg.html
:: License: GNU General Public License v3.0 (GPLv3) :: License: GNU General Public License v3.0 (GPLv3)
:: Enable delayed variable expension :: Enable delayed variable expension
SETLOCAL ENABLEDELAYEDEXPANSION SETLOCAL ENABLEDELAYEDEXPANSION
:: Colors :: Colors
SET OFF= SET OFF=
SET GREEN= SET GREEN=
SET YELLOW= SET YELLOW=
SET RED= SET RED=
SET CYAN= SET CYAN=
:: Storing Paths :: Storing Paths
SET input="%~1" SET input="%~1"
SET vid="%~dpnx1" SET vid="%~dpnx1"
SET output=%~dpn1 SET output=%~dpn1
:: Setting the path to the Working Directory :: Setting the path to the Working Directory
SET WD=%TEMP%\VID2ANI SET WD=%TEMP%\VID2ANI
:: Checking for blank input or help commands :: Checking for blank input or help commands
IF %input% == "" GOTO :help_message IF %input% == "" GOTO :help_message
IF %input% == "-?" GOTO :help_message IF %input% == "-?" GOTO :help_message
IF %input% == "/?" GOTO :help_message IF %input% == "/?" GOTO :help_message
IF %input% == "help" GOTO :help_message IF %input% == "help" GOTO :help_message
IF %input% == "--help" GOTO :help_message IF %input% == "--help" GOTO :help_message
:: Clearing all variables :: Clearing all variables
SET "scale=" SET "scale="
SET "fps=" SET "fps="
SET "mode=" SET "mode="
SET "dither=" SET "dither="
SET "bayerscale=" SET "bayerscale="
SET "filetype=" SET "filetype="
SET "start_time=" SET "start_time="
SET "end_time=" SET "end_time="
SET "webp_lossy=" SET "webp_lossy="
SET "colormax=" SET "colormax="
SET "version=" SET "version="
SET "build=" SET "build="
SET "loglevel=" SET "loglevel="
GOTO :varin GOTO :varin
:varin :varin
:: Using SHIFT command to go through the input and storing each setting into its own variable :: Using SHIFT command to go through the input and storing each setting into its own variable
IF NOT "%~1" =="" ( IF NOT "%~1" =="" (
IF "%~1" =="-r" SET "scale=%~2" & SHIFT IF "%~1" =="-r" SET "scale=%~2" & SHIFT
IF "%~1" =="-f" SET "fps=%~2" & SHIFT IF "%~1" =="-f" SET "fps=%~2" & SHIFT
IF "%~1" =="-m" SET "mode=%~2" & SHIFT IF "%~1" =="-m" SET "mode=%~2" & SHIFT
IF "%~1" =="-d" SET "dither=%~2" & SHIFT IF "%~1" =="-d" SET "dither=%~2" & SHIFT
IF "%~1" =="-b" SET "bayerscale=%~2" & SHIFT IF "%~1" =="-b" SET "bayerscale=%~2" & SHIFT
IF "%~1" =="-t" SET "filetype=%~2" & SHIFT IF "%~1" =="-t" SET "filetype=%~2" & SHIFT
IF "%~1" =="-o" SET "output=%~dpn2" & SHIFT IF "%~1" =="-o" SET "output=%~dpn2" & SHIFT
IF "%~1" =="-s" SET "start_time=%~2" & SHIFT IF "%~1" =="-s" SET "start_time=%~2" & SHIFT
IF "%~1" =="-e" SET "end_time=%~2" & SHIFT IF "%~1" =="-e" SET "end_time=%~2" & SHIFT
IF "%~1" =="-c" SET "colormax=%~2" & SHIFT IF "%~1" =="-c" SET "colormax=%~2" & SHIFT
IF "%~1" =="-l" SET "webp_lossy=%~2" & SHIFT IF "%~1" =="-l" SET "webp_lossy=%~2" & SHIFT
IF "%~1" =="-v" SET "loglevel=%~2" & SHIFT IF "%~1" =="-v" SET "loglevel=%~2" & SHIFT
IF "%~1" =="-k" SET "errorswitch=1" IF "%~1" =="-k" SET "errorswitch=1"
IF "%~1" =="-p" SET "picswitch=1" IF "%~1" =="-p" SET "picswitch=1"
SHIFT & GOTO :varin SHIFT & GOTO :varin
) )
GOTO :help_check_2 GOTO :help_check_2
:help_check_2 :help_check_2
:: Noob proofing the script to prevent it from breaking should critical settings not be defined :: Noob proofing the script to prevent it from breaking should critical settings not be defined
IF NOT DEFINED scale SET "scale=-1" IF NOT DEFINED scale SET "scale=-1"
IF NOT DEFINED fps SET fps=15 IF NOT DEFINED fps SET fps=15
IF NOT DEFINED mode SET mode=1 IF NOT DEFINED mode SET mode=1
IF NOT DEFINED dither SET dither=0 IF NOT DEFINED dither SET dither=0
IF NOT DEFINED filetype SET "filetype=gif" IF NOT DEFINED filetype SET "filetype=gif"
IF NOT DEFINED loglevel SET "loglevel=error" IF NOT DEFINED loglevel SET "loglevel=error"
GOTO :safchek GOTO :safchek
:safchek :safchek
:: Setting a clear range of acceptable setting values and noob proofing bayerscale :: Setting a clear range of acceptable setting values and noob proofing bayerscale
:: Output file type :: Output file type
echo %filetype% | findstr /r "\<gif\> \<png\> \<apng\> \<webp\>" >nul echo %filetype% | findstr /r "\<gif\> \<png\> \<apng\> \<webp\>" >nul
IF %errorlevel% NEQ 0 ( IF %errorlevel% NEQ 0 (
ECHO %RED%Not a valid file type: %filetype%%OFF% ECHO %RED%Not a valid file type: %filetype%%OFF%
GOTO :EOF GOTO :EOF
) )
IF "%filetype%"=="png" SET filetype=apng IF "%filetype%"=="png" SET filetype=apng
IF "%filetype%"=="apng" SET output=%output%.png IF "%filetype%"=="apng" SET output=%output%.png
IF "%filetype%"=="webp" SET output=%output%.webp IF "%filetype%"=="webp" SET output=%output%.webp
IF "%filetype%"=="gif" SET output=%output%.gif IF "%filetype%"=="gif" SET output=%output%.gif
:: Palettegen :: Palettegen
IF %mode% GTR 3 ( IF %mode% GTR 3 (
ECHO %RED%Not a valid palettegen mode%OFF% ECHO %RED%Not a valid palettegen mode%OFF%
GOTO :EOF GOTO :EOF
) ELSE IF %mode% LSS 1 ( ) ELSE IF %mode% LSS 1 (
ECHO %RED%Not a valid palettegen mode%OFF% ECHO %RED%Not a valid palettegen mode%OFF%
GOTO :EOF GOTO :EOF
) )
:: Dithering :: Dithering
IF %dither% GTR 8 ( IF %dither% GTR 8 (
ECHO %RED%Not a valid dither algorithm%OFF% ECHO %RED%Not a valid dither algorithm%OFF%
GOTO :EOF GOTO :EOF
) ELSE IF %dither% LSS 0 ( ) ELSE IF %dither% LSS 0 (
ECHO %RED%Not a valid dither algorithm%OFF% ECHO %RED%Not a valid dither algorithm%OFF%
GOTO :EOF GOTO :EOF
) )
:: Bayerscale :: Bayerscale
IF DEFINED bayerscale ( IF DEFINED bayerscale (
IF !bayerscale! GTR 5 ( IF !bayerscale! GTR 5 (
ECHO %RED%Not a valid bayerscale value%OFF% ECHO %RED%Not a valid bayerscale value%OFF%
GOTO :EOF GOTO :EOF
) ELSE IF !bayerscale! LSS 0 ( ) ELSE IF !bayerscale! LSS 0 (
ECHO %RED%Not a valid bayerscale value%OFF% ECHO %RED%Not a valid bayerscale value%OFF%
GOTO :EOF GOTO :EOF
) )
IF !bayerscale! LEQ 5 ( IF !bayerscale! LEQ 5 (
IF %dither% NEQ 1 ( IF %dither% NEQ 1 (
ECHO %RED%This setting only works with bayer dithering%OFF% ECHO %RED%This setting only works with bayer dithering%OFF%
GOTO :EOF GOTO :EOF
) )
) )
) )
:: Lossy WEBP :: Lossy WEBP
IF DEFINED webp_lossy ( IF DEFINED webp_lossy (
IF NOT "%filetype%" == "webp" ( IF NOT "%filetype%" == "webp" (
ECHO %RED%Lossy is only valid for filetype webp%OFF% ECHO %RED%Lossy is only valid for filetype webp%OFF%
GOTO :EOF GOTO :EOF
) ELSE IF !webp_lossy! GTR 100 ( ) ELSE IF !webp_lossy! GTR 100 (
ECHO %RED%Not a valid lossy quality value%OFF% ECHO %RED%Not a valid lossy quality value%OFF%
GOTO :EOF GOTO :EOF
) ELSE IF !webp_lossy! LSS 0 ( ) ELSE IF !webp_lossy! LSS 0 (
ECHO %RED%Not a valid lossy quality value%OFF% ECHO %RED%Not a valid lossy quality value%OFF%
GOTO :EOF GOTO :EOF
) )
) )
:: Noob Proofing clipping :: Noob Proofing clipping
IF DEFINED start_time ( IF DEFINED start_time (
IF DEFINED end_time SET "trim=-ss !start_time! -to !end_time!" IF DEFINED end_time SET "trim=-ss !start_time! -to !end_time!"
IF NOT DEFINED end_time ( IF NOT DEFINED end_time (
ECHO %RED%Please input the end time%OFF% ECHO %RED%Please input the end time%OFF%
GOTO :EOF GOTO :EOF
) )
) )
IF NOT DEFINED start_time ( IF NOT DEFINED start_time (
IF DEFINED end_time ( IF DEFINED end_time (
ECHO %RED%Please input the start time%OFF% ECHO %RED%Please input the start time%OFF%
GOTO :EOF GOTO :EOF
) )
) )
GOTO :script_start GOTO :script_start
:script_start :script_start
:: Storing FFmpeg version string :: Storing FFmpeg version string
FOR /F "delims=" %%a in ('ffmpeg -version') DO ( FOR /F "delims=" %%a in ('ffmpeg -version') DO (
IF NOT DEFINED version ( IF NOT DEFINED version (
SET "version=%%a" SET "version=%%a"
) ELSE IF NOT DEFINED build ( ) ELSE IF NOT DEFINED build (
SET "build=%%a" SET "build=%%a"
) )
) )
:: Displaying FFmpeg version string and creating the working directory :: Displaying FFmpeg version string and creating the working directory
ECHO %YELLOW%%version%%OFF% ECHO %YELLOW%%version%%OFF%
ECHO %YELLOW%%build%%OFF% ECHO %YELLOW%%build%%OFF%
ECHO %GREEN%Output file:%OFF% %output% ECHO %GREEN%Output file:%OFF% %output%
ECHO %GREEN%Creating working directory...%OFF% ECHO %GREEN%Creating working directory...%OFF%
MD "%WD%" MD "%WD%"
:palettegen :palettegen
:: Putting together command to generate palette :: Putting together command to generate palette
SET palette=%WD%\palette SET palette=%WD%\palette
SET frames=%palette%_%%05d SET frames=%palette%_%%05d
SET filters=fps=%fps%,scale=%scale%:-1:flags=lanczos SET filters=fps=%fps%,scale=%scale%:-1:flags=lanczos
:: Palettegen mode :: Palettegen mode
IF %mode% EQU 1 SET encode=palettegen=stats_mode=diff IF %mode% EQU 1 SET encode=palettegen=stats_mode=diff
IF %mode% EQU 2 SET encode="palettegen=stats_mode=single" IF %mode% EQU 2 SET encode="palettegen=stats_mode=single"
IF %mode% EQU 3 SET encode=palettegen IF %mode% EQU 3 SET encode=palettegen
:: Max colors :: Max colors
IF DEFINED colormax ( IF DEFINED colormax (
IF %mode% LEQ 2 SET "mcol=:max_colors=%colormax%" IF %mode% LEQ 2 SET "mcol=:max_colors=%colormax%"
IF %mode% EQU 3 SET "mcol==max_colors=%colormax%" IF %mode% EQU 3 SET "mcol==max_colors=%colormax%"
) )
:: Executing command to generate palette :: Executing command to generate palette
ECHO %GREEN%Generating palette...%OFF% ECHO %GREEN%Generating palette...%OFF%
echo ffmpeg -v %loglevel% %trim% -i %vid% -vf "%filters%,%encode%%mcol%" -y "%frames%.png" ffmpeg -v %loglevel% %trim% -i %vid% -vf "%filters%,%encode%%mcol%" -y "%frames%.png"
ffmpeg -v %loglevel% %trim% -i %vid% -vf "%filters%,%encode%%mcol%" -y "%frames%.png"
:: Checking if the palette file is in the Working Directory, if not cleaning up
:: Checking if the palette file is in the Working Directory, if not cleaning up IF NOT EXIST "%palette%_00001.png" (
IF NOT EXIST "%palette%_00001.png" ( IF NOT EXIST "%palette%.png" (
IF NOT EXIST "%palette%.png" ( ECHO %RED%Failed to generate palette file%OFF%
ECHO %RED%Failed to generate palette file%OFF% GOTO :cleanup
GOTO :cleanup )
) )
)
:: Setting variables to put the encode command together
:: Setting variables to put the encode command together :: Checking for Error Diffusion if using Bayer Scale and adjusting the command accordingly
:: Checking for Error Diffusion if using Bayer Scale and adjusting the command accordingly IF %mode% EQU 1 SET decode=paletteuse
IF %mode% EQU 1 SET decode=paletteuse IF %mode% EQU 2 SET "decode=paletteuse=new=1"
IF %mode% EQU 2 SET "decode=paletteuse=new=1" IF %mode% EQU 3 SET decode=paletteuse
IF %mode% EQU 3 SET decode=paletteuse
:: Error diffusion
:: Error diffusion IF DEFINED errorswitch (
IF DEFINED errorswitch ( IF %mode% EQU 1 SET "errordiff==diff_mode=rectangle"
IF %mode% EQU 1 SET "errordiff==diff_mode=rectangle" IF %mode% EQU 2 SET "errordiff=:diff_mode=rectangle"
IF %mode% EQU 2 SET "errordiff=:diff_mode=rectangle" IF %mode% EQU 3 SET "errordiff==diff_mode=rectangle"
IF %mode% EQU 3 SET "errordiff==diff_mode=rectangle" )
)
:: WEBP pixel format and lossy quality
:: WEBP pixel format and lossy quality IF "%filetype%" == "webp" (
IF "%filetype%" == "webp" ( IF DEFINED webp_lossy (
IF DEFINED webp_lossy ( SET "webp_lossy=-lossless 0 -pix_fmt yuva420p -quality %webp_lossy%"
SET "webp_lossy=-lossless 0 -pix_fmt yuva420p -quality %webp_lossy%" ) ELSE SET "webp_lossy=-lossless 1"
) ELSE SET "webp_lossy=-lossless 1" )
)
:: Dither algorithm
:: Dither algorithm IF %dither% EQU 0 SET ditheralg=none
IF %dither% EQU 0 SET ditheralg=none IF %dither% EQU 1 SET ditheralg=bayer
IF %dither% EQU 1 SET ditheralg=bayer IF %dither% EQU 2 SET ditheralg=heckbert
IF %dither% EQU 2 SET ditheralg=heckbert IF %dither% EQU 3 SET ditheralg=floyd_steinberg
IF %dither% EQU 3 SET ditheralg=floyd_steinberg IF %dither% EQU 4 SET ditheralg=sierra2
IF %dither% EQU 4 SET ditheralg=sierra2 IF %dither% EQU 5 SET ditheralg=sierra2_4a
IF %dither% EQU 5 SET ditheralg=sierra2_4a IF %dither% EQU 6 SET ditheralg=sierra3
IF %dither% EQU 6 SET ditheralg=sierra3 IF %dither% EQU 7 SET ditheralg=burkes
IF %dither% EQU 7 SET ditheralg=burkes IF %dither% EQU 8 SET ditheralg=atkinson
IF %dither% EQU 8 SET ditheralg=atkinson
IF NOT %mode% EQU 2 (
IF NOT %mode% EQU 2 ( IF DEFINED errorswitch SET ditherenc=:dither=!ditheralg!
IF DEFINED errorswitch SET ditherenc=:dither=!ditheralg! IF NOT DEFINED errorswitch SET ditherenc==dither=!ditheralg!
IF NOT DEFINED errorswitch SET ditherenc==dither=!ditheralg! ) ELSE SET ditherenc=:dither=!ditheralg!
) ELSE SET ditherenc=:dither=!ditheralg!
:: Checking for Bayer Scale and adjusting command
:: Checking for Bayer Scale and adjusting command IF NOT DEFINED bayerscale SET "bayer="
IF NOT DEFINED bayerscale SET "bayer=" IF DEFINED bayerscale SET bayer=:bayer_scale=%bayerscale%
IF DEFINED bayerscale SET bayer=:bayer_scale=%bayerscale%
:: Executing the encoding command
:: Executing the encoding command ECHO %GREEN%Encoding animation...%OFF%
ECHO %GREEN%Encoding animation...%OFF% ffmpeg -v %loglevel% %trim% -i %vid% -thread_queue_size 512 -i "%frames%.png" -lavfi "%filters% [x]; [x][1:v] %decode%%errordiff%%ditherenc%%bayer%" -f %filetype% %webp_lossy% -loop 0 -plays 0 -y "%output%"
echo ffmpeg -v %loglevel% %trim% -i %vid% -thread_queue_size 512 -i "%frames%.png" -lavfi "%filters% [x]; [x][1:v] %decode%%errordiff%%ditherenc%%bayer%" -f %filetype% %webp_lossy% -loop 0 -plays 0 -y "%output%"
ffmpeg -v %loglevel% %trim% -i %vid% -thread_queue_size 512 -i "%frames%.png" -lavfi "%filters% [x]; [x][1:v] %decode%%errordiff%%ditherenc%%bayer%" -f %filetype% %webp_lossy% -loop 0 -plays 0 -y "%output%" :: Checking if file was created and cleaning up if not
IF NOT EXIST "%output%" (
:: Checking if file was created and cleaning up if not ECHO %RED%Failed to generate animation%OFF%
IF NOT EXIST "%output%" ( GOTO :cleanup
ECHO %RED%Failed to generate animation%OFF% )
GOTO :cleanup
) :: Starting default Photo Viewer
IF DEFINED picswitch START "" "%output%"
:: Starting default Photo Viewer
IF DEFINED picswitch START "" "%output%" :cleanup
:: Cleaning up
:cleanup ECHO %GREEN%Deleting temporary files...%OFF%
:: Cleaning up RMDIR /S /Q "%WD%"
ECHO %GREEN%Deleting temporary files...%OFF% ECHO %YELLOW%Done.%OFF%
RMDIR /S /Q "%WD%" ENDLOCAL
ECHO %YELLOW%Done.%OFF% GOTO :EOF
ENDLOCAL
GOTO :EOF :help_message
:: Print usage message
:help_message ECHO:
:: Print usage message ECHO %GREEN%Video to GIF/APNG/WEBP converter v6.0%OFF%
ECHO: ECHO %CYAN%By MDHEXT, Nabi KaramAliZadeh, Pathduck%OFF%
ECHO %GREEN%Video to GIF/APNG/WEBP converter v6.0%OFF% ECHO:
ECHO %CYAN%By MDHEXT, Nabi KaramAliZadeh, Pathduck%OFF% ECHO You can download this fork from here:
ECHO: ECHO %CYAN%https://github.com/Pathduck/vid2ani/%OFF%
ECHO You can download this fork from here: ECHO You can download the original release here:
ECHO %CYAN%https://github.com/Pathduck/vid2ani/%OFF% ECHO %CYAN%https://github.com/NabiKAZ/video2gif%OFF%
ECHO You can download the original release here: ECHO This tool uses ffmpeg, you can download that here:
ECHO %CYAN%https://github.com/NabiKAZ/video2gif%OFF% ECHO %CYAN%https://www.ffmpeg.org/download.html%OFF%
ECHO This tool uses ffmpeg, you can download that here: ECHO This tool wouldn't be possible without the research listed here:
ECHO %CYAN%https://www.ffmpeg.org/download.html%OFF% ECHO %CYAN%https://blog.pkh.me/p/21-high-quality-gif-with-ffmpeg.html%OFF%
ECHO This tool wouldn't be possible without the research listed here: ECHO:
ECHO %CYAN%https://blog.pkh.me/p/21-high-quality-gif-with-ffmpeg.html%OFF% ECHO %GREEN%Usage:%OFF%
ECHO: ECHO vid2ani [input_file] [Arguments]
ECHO %GREEN%Usage:%OFF% ECHO:
ECHO vid2ani [input_file] [Arguments] ECHO %GREEN%Arguments:%OFF%
ECHO: ECHO:
ECHO %GREEN%Arguments:%OFF% ECHO -t Output file type.
ECHO: ECHO %YELLOW%Valid: 'gif' (default), 'png', 'webp'.%OFF%
ECHO -t Output file type. ECHO:
ECHO %YELLOW%Valid: 'gif' (default), 'png', 'webp'.%OFF% ECHO -o Output file.
ECHO: ECHO %YELLOW%The default is the same name as the input video.%OFF%
ECHO -o Output file. ECHO:
ECHO %YELLOW%The default is the same name as the input video.%OFF% ECHO -r Scale or size.
ECHO: ECHO %CYAN%Width of the animation in pixels.%OFF%
ECHO -r Scale or size. ECHO %YELLOW%The default is the same scale as the original video.%OFF%
ECHO %CYAN%Width of the animation in pixels.%OFF% ECHO:
ECHO %YELLOW%The default is the same scale as the original video.%OFF% ECHO -s Start time of the animation %CYAN%(HH:MM:SS.MS)%OFF%
ECHO: ECHO:
ECHO -s Start time of the animation %CYAN%(HH:MM:SS.MS)%OFF% ECHO -e End time of the animation %CYAN%(HH:MM:SS.MS)%OFF%
ECHO: ECHO:
ECHO -e End time of the animation %CYAN%(HH:MM:SS.MS)%OFF% ECHO -f Framerate in frames per second.
ECHO: ECHO %YELLOW%The default is 15.%OFF%
ECHO -f Framerate in frames per second. ECHO:
ECHO %YELLOW%The default is 15.%OFF% ECHO -d Dithering algorithm to be used.
ECHO: ECHO %YELLOW%The default is 0 (None).%OFF%
ECHO -d Dithering algorithm to be used. ECHO:
ECHO %YELLOW%The default is 0 (None).%OFF% ECHO -b Bayer Scale setting.
ECHO: ECHO %CYAN%This can only be used when Bayer dithering is applied.
ECHO -b Bayer Scale setting. ECHO %YELLOW%Range 0 - 5, default is 2.%OFF%
ECHO %CYAN%This can only be used when Bayer dithering is applied. ECHO:
ECHO %YELLOW%Range 0 - 5, default is 2.%OFF% ECHO -m Palettegen mode - one of 3 modes listed below.
ECHO: ECHO %YELLOW%The default is 1 (diff).%OFF%
ECHO -m Palettegen mode - one of 3 modes listed below. ECHO:
ECHO %YELLOW%The default is 1 (diff).%OFF% ECHO -c The maximum amount of colors useable per palette.
ECHO: ECHO %YELLOW%Range 3 - 256 (default)%OFF%
ECHO -c The maximum amount of colors useable per palette. ECHO:
ECHO %YELLOW%Range 3 - 256 (default)%OFF% ECHO -k Enables paletteuse error diffusion.
ECHO: ECHO:
ECHO -k Enables paletteuse error diffusion. ECHO -l Enable lossy WebP compression and quality.
ECHO: ECHO %CYAN%The default for WebP is lossless.%OFF%
ECHO -l Enable lossy WebP compression and quality. ECHO %YELLOW%Range 0 - 100, default 75.%OFF%
ECHO %CYAN%The default for WebP is lossless.%OFF% ECHO:
ECHO %YELLOW%Range 0 - 100, default 75.%OFF% ECHO -v Set FFmpeg log level, for troubleshooting.
ECHO: ECHO %YELLOW%The default log level is 'error'%OFF%
ECHO -v Set FFmpeg log level, for troubleshooting. ECHO:
ECHO %YELLOW%The default log level is 'error'%OFF% ECHO -p Opens the resulting animation in your default Photo Viewer.
ECHO: ECHO:
ECHO -p Opens the resulting animation in your default Photo Viewer.
ECHO: ECHO %GREEN%Dithering Mode%OFF%
ECHO 0: None
ECHO %GREEN%Dithering Mode%OFF% ECHO 1: Bayer
ECHO 0: None ECHO 2: Heckbert
ECHO 1: Bayer ECHO 3: Floyd Steinberg
ECHO 2: Heckbert ECHO 4: Sierra2
ECHO 3: Floyd Steinberg ECHO 5: Sierra2_4a
ECHO 4: Sierra2 ECHO 6: Sierra3
ECHO 5: Sierra2_4a ECHO 7: Burkes
ECHO 6: Sierra3 ECHO 8: Atkinson
ECHO 7: Burkes ECHO:
ECHO 8: Atkinson ECHO %GREEN%Palettegen Modes%OFF%
ECHO: ECHO 1: diff - only what moves affects the palette
ECHO %GREEN%Palettegen Modes%OFF% ECHO 2: single - one palette per frame
ECHO 1: diff - only what moves affects the palette ECHO 3: full - one palette for the whole animation
ECHO 2: single - one palette per frame ECHO:
ECHO 3: full - one palette for the whole animation ECHO %GREEN%About Bayerscale%OFF%
ECHO: ECHO When bayer dithering is selected, the Bayer Scale option defines the
ECHO %GREEN%About Bayerscale%OFF% ECHO scale of the pattern (how much the crosshatch pattern is visible).
ECHO When bayer dithering is selected, the Bayer Scale option defines the ECHO A low value means more visible pattern for less banding, a higher value
ECHO scale of the pattern (how much the crosshatch pattern is visible). ECHO means less visible pattern at the cost of more banding.
ECHO A low value means more visible pattern for less banding, a higher value ECHO:
ECHO means less visible pattern at the cost of more banding. ECHO %GREEN%People who made this project come to fruition%OFF%
ECHO: ECHO ubitux, Nabi KaramAliZadeh, and the very kind and patient people in the
ECHO %GREEN%People who made this project come to fruition%OFF% ECHO Batch Discord Server. Without these people's contributions, this script
ECHO ubitux, Nabi KaramAliZadeh, and the very kind and patient people in the ECHO would not be possible. Thank you all for your contributions and
ECHO Batch Discord Server. Without these people's contributions, this script ECHO assistance^^!
ECHO would not be possible. Thank you all for your contributions and GOTO :EOF
ECHO assistance^^!
GOTO :EOF