bat 批处理实现 FFmpeg 命令压缩 MP4

视频拖放到 BAT 上执行,结果输出到原视频目录
@echo off
chcp 65001 >nul 2>&1 # 支持中文路径:: ==================== 配置FFmpeg路径(必改!)====================
:: 请将下面的路径替换为你电脑中ffmpeg.exe的实际位置
:: 示例:set "ffmpeg_path=D:\ProgramFiles\ffmpeg\bin\ffmpeg.exe"
set "ffmpeg_path=D:\ProgramFiles\ffmpeg\bin\ffmpeg.exe"
:: ================================================================:: 检查FFmpeg文件是否存在
if not exist "%ffmpeg_path%" (echo 未找到FFmpeg!请检查路径是否正确:echo %ffmpeg_path%pauseexit /b 1
):: 检查是否拖放了文件
if "%~1"=="" (echo 请将视频文件拖放到本脚本上!pauseexit /b 1
):: 获取输入文件的路径、文件名和扩展名
set "input_file=%~1"
set "output_dir=%~dp1"
set "file_name=%~n1"
set "file_ext=%~x1":: 输出文件名:原文件名 + _compressed + 原扩展名
set "output_file=%output_dir%%file_name%_compressed%file_ext%":: 执行压缩命令
echo 正在压缩:%input_file%
echo 输出路径:%output_file%
echo 请等待压缩完成..."%ffmpeg_path%" -hide_banner -loglevel error -i "%input_file%" ^-c:v libx265 -crf 28 -preset medium ^-c:a aac -b:a 128k ^-pix_fmt yuv420p ^-vf "scale=-2:720" ^"%output_file%":: 检查压缩是否成功
if %errorlevel% equ 0 (echo 压缩完成!文件已保存至:echo %output_file%
) else (echo 压缩失败!请检查视频文件是否正常。if exist "%output_file%" del "%output_file%" # 删除可能的损坏文件
)pause
