Код:
@echo off
color 0A
chcp 65001
setlocal enabledelayedexpansion
SET "FFMPEG_PATH=ffmpeg.exe"
SET "FORMATS=*.mp4 *.avi *.mkv *.mov *.flv *.wmv"
SET "VIDEO_BITRATE=8000k"
:: ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, placebo
SET "PRESET=ultrafast"
SET "MAX_SIZE=1920"
if not exist "%FFMPEG_PATH%" (
echo FFmpeg не найден!
pause
exit /b
)
for %%f in (%FORMATS%) do (
set "input=%%f"
set "output_temp=%%~nf_temp.mp4"
set "output_final=%%~nf_converted.mp4"
for /f "tokens=1,2 delims=x " %%a in ('%ffmpeg_path% -i "%%f" 2^>^&1') do (
set "width=%%a"
set "height=%%b"
)
if !width! gtr !height! (
set "scale_width=%MAX_SIZE%"
set "scale_height=-1"
) else (
set "scale_width=-1"
set "scale_height=%MAX_SIZE%"
)
"%FFMPEG_PATH%" -i "!input!" -vf "scale=!scale_width!:!scale_height!" -c:v libx264 -b:v !VIDEO_BITRATE! -c:a copy -preset !PRESET! -pass 1 -an -f mp4 NUL
"%FFMPEG_PATH%" -i "!input!" -vf "scale=!scale_width!:!scale_height!" -c:v libx264 -b:v !VIDEO_BITRATE! -c:a copy -preset !PRESET! -pass 2 "!output_temp!"
move /Y "!output_temp!" "!output_final!"
)
endlocal