|
@echo off |
|
setlocal enabledelayedexpansion |
|
|
|
if not exist "exports" mkdir "exports" |
|
|
|
echo Compression Method: |
|
echo 1. Target a video quality |
|
echo 2. Target a video resolution |
|
echo 3. Target a max bitrate |
|
echo 4. Customize all (quality + resolution + bitrate) |
|
set /p METHOD=Enter method number: |
|
if "%METHOD%"=="" set METHOD=1 |
|
|
|
:: تنظیمات پیشفرض |
|
set QUALITY=21 |
|
set WIDTH= |
|
set HEIGHT= |
|
set BITRATE= |
|
|
|
if "%METHOD%"=="1" goto QUALITY_METHOD |
|
if "%METHOD%"=="2" goto RESOLUTION_METHOD |
|
if "%METHOD%"=="3" goto BITRATE_METHOD |
|
if "%METHOD%"=="4" goto CUSTOM_METHOD |
|
|
|
:QUALITY_METHOD |
|
echo Select Quality (0-51): |
|
echo 18 Best (large size) |
|
echo 21 Good (medium) [default] |
|
echo 28 Okay (small) |
|
set /p QUALITY=Enter quality number: |
|
if "%QUALITY%"=="" set QUALITY=21 |
|
goto RUN_COMPRESSION |
|
|
|
:RESOLUTION_METHOD |
|
echo Select Preset Size: |
|
echo 1. 144p (256x144) |
|
echo 2. 240p (352x240) |
|
echo 3. 360p (480x360) |
|
echo 4. 480p (720x480) |
|
echo 5. 720p (1280x720) [default] |
|
echo 6. 1080p (1920x1080) |
|
echo 7. 1440p (2560x1440) |
|
echo 8. 4k (3840x2160) |
|
set /p RESOLUTION=Choose resolution (1-8): |
|
if "%RESOLUTION%"=="" set RESOLUTION=5 |
|
|
|
if "%RESOLUTION%"=="1" set WIDTH=256& set HEIGHT=144 |
|
if "%RESOLUTION%"=="2" set WIDTH=352& set HEIGHT=240 |
|
if "%RESOLUTION%"=="3" set WIDTH=480& set HEIGHT=360 |
|
if "%RESOLUTION%"=="4" set WIDTH=720& set HEIGHT=480 |
|
if "%RESOLUTION%"=="5" set WIDTH=1280& set HEIGHT=720 |
|
if "%RESOLUTION%"=="6" set WIDTH=1920& set HEIGHT=1080 |
|
if "%RESOLUTION%"=="7" set WIDTH=2560& set HEIGHT=1440 |
|
if "%RESOLUTION%"=="8" set WIDTH=3840& set HEIGHT=2160 |
|
goto RUN_COMPRESSION |
|
|
|
:BITRATE_METHOD |
|
echo Choose max bitrate (kbps): |
|
echo 1000 - Low quality, small size |
|
echo 2500 - Medium quality, medium size [default] |
|
echo 5000 - High quality, large size |
|
set /p BITRATE=Enter max bitrate: |
|
if "%BITRATE%"=="" set BITRATE=2500 |
|
goto RUN_COMPRESSION |
|
|
|
:CUSTOM_METHOD |
|
echo -- Customize all settings -- |
|
|
|
echo Select Quality (0-51): |
|
echo 18 Best (large size) |
|
echo 21 Good (medium) [default] |
|
echo 28 Okay (small) |
|
set /p QUALITY=Enter quality number: |
|
if "%QUALITY%"=="" set QUALITY=21 |
|
|
|
echo Select Preset Size: |
|
echo 1. 144p (256x144) |
|
echo 2. 240p (352x240) |
|
echo 3. 360p (480x360) |
|
echo 4. 480p (720x480) |
|
echo 5. 720p (1280x720) [default] |
|
echo 6. 1080p (1920x1080) |
|
echo 7. 1440p (2560x1440) |
|
echo 8. 4k (3840x2160) |
|
set /p RESOLUTION=Choose resolution (1-8): |
|
if "%RESOLUTION%"=="" set RESOLUTION=5 |
|
|
|
if "%RESOLUTION%"=="1" set WIDTH=256& set HEIGHT=144 |
|
if "%RESOLUTION%"=="2" set WIDTH=352& set HEIGHT=240 |
|
if "%RESOLUTION%"=="3" set WIDTH=480& set HEIGHT=360 |
|
if "%RESOLUTION%"=="4" set WIDTH=720& set HEIGHT=480 |
|
if "%RESOLUTION%"=="5" set WIDTH=1280& set HEIGHT=720 |
|
if "%RESOLUTION%"=="6" set WIDTH=1920& set HEIGHT=1080 |
|
if "%RESOLUTION%"=="7" set WIDTH=2560& set HEIGHT=1440 |
|
if "%RESOLUTION%"=="8" set WIDTH=3840& set HEIGHT=2160 |
|
|
|
echo Choose max bitrate (kbps): |
|
echo 1000 - Low quality, small size |
|
echo 2500 - Medium quality, medium size [default] |
|
echo 5000 - High quality, large size |
|
set /p BITRATE=Enter max bitrate: |
|
if "%BITRATE%"=="" set BITRATE=2500 |
|
goto RUN_COMPRESSION |
|
|
|
:RUN_COMPRESSION |
|
:: Ask for optional suffix |
|
set /p EXTRA_SUFFIX=Enter optional suffix (press Enter to skip): |
|
|
|
echo Starting compression... |
|
|
|
for %%i in (*.mp4 *.mov *.avi *.mkv *.webm) do ( |
|
if "%METHOD%"=="1" ( |
|
if "!EXTRA_SUFFIX!"=="" ( |
|
ffmpeg -i "%%i" -vcodec libx265 -crf %QUALITY% "exports\%%~ni.mp4" |
|
) else ( |
|
ffmpeg -i "%%i" -vcodec libx265 -crf %QUALITY% "exports\%%~ni_!EXTRA_SUFFIX!.mp4" |
|
) |
|
) else if "%METHOD%"=="2" ( |
|
if "!EXTRA_SUFFIX!"=="" ( |
|
ffmpeg -i "%%i" -vcodec libx265 -vf "scale=%WIDTH%:%HEIGHT%" "exports\%%~ni.mp4" |
|
) else ( |
|
ffmpeg -i "%%i" -vcodec libx265 -vf "scale=%WIDTH%:%HEIGHT%" "exports\%%~ni_!EXTRA_SUFFIX!.mp4" |
|
) |
|
) else if "%METHOD%"=="3" ( |
|
if "!EXTRA_SUFFIX!"=="" ( |
|
ffmpeg -i "%%i" -vcodec libx265 -b:v %BITRATE%k "exports\%%~ni.mp4" |
|
) else ( |
|
ffmpeg -i "%%i" -vcodec libx265 -b:v %BITRATE%k "exports\%%~ni_!EXTRA_SUFFIX!.mp4" |
|
) |
|
) else if "%METHOD%"=="4" ( |
|
if "!EXTRA_SUFFIX!"=="" ( |
|
ffmpeg -i "%%i" -vcodec libx265 -crf %QUALITY% -vf "scale=%WIDTH%:%HEIGHT%" -b:v %BITRATE%k "exports\%%~ni.mp4" |
|
) else ( |
|
ffmpeg -i "%%i" -vcodec libx265 -crf %QUALITY% -vf "scale=%WIDTH%:%HEIGHT%" -b:v %BITRATE%k "exports\%%~ni_!EXTRA_SUFFIX!.mp4" |
|
) |
|
) |
|
) |
|
|
|
echo DONE - Files saved in "exports" folder. |
|
pause |