Created
October 11, 2025 13:58
-
-
Save cornradio/dfaec9b0e9f7648b80fff92871df9bd5 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| @echo off | |
| setlocal enabledelayedexpansion | |
| :: 设置 FFmpeg 的路径,如果已添加到环境变量则无需修改 | |
| :: 如果未添加到环境变量,请修改为你的 FFmpeg 可执行文件的完整路径,例如: | |
| :: set "FFMPEG_PATH=C:\Program Files\ffmpeg\bin\ffmpeg.exe" | |
| set "FFMPEG_PATH=ffmpeg.exe" | |
| :: 源文件夹 (要压缩的 MP4 文件所在目录) | |
| set "SOURCE_DIR=E:\素材" | |
| :: 目标文件夹 (压缩后文件保存的目录) | |
| set "OUTPUT_DIR=E:\素材\压缩" | |
| :: 压缩参数 (可根据需要调整 CRF 值和 preset) | |
| :: -crf 28: 建议的视频质量控制参数,值越小质量越高文件越大。范围18-30尝试。 | |
| :: -preset slow: 压缩速度与文件大小的平衡,越慢压缩效果越好,但耗时。 | |
| set "FFMPEG_PARAMS=-c:v hevc_nvenc -cq 30 -preset p5 -c:a aac -b:a 96k -vf scale=1920:-1" | |
| echo. | |
| echo ========================================================= | |
| echo 开始批量压缩 MP4 文件 | |
| echo 源目录: %SOURCE_DIR% | |
| echo 目标目录: %OUTPUT_DIR% | |
| echo 压缩参数: %FFMPEG_PARAMS% | |
| echo ========================================================= | |
| echo. | |
| :: 检查 FFmpeg 是否可用 | |
| where %FFMPEG_PATH% >nul 2>nul | |
| if %errorlevel% neq 0 ( | |
| echo 错误:FFmpeg 未找到!请确保 FFmpeg 已添加到系统环境变量, | |
| echo 或在脚本中手动设置 FFMPEG_PATH 变量为 FFmpeg 可执行文件的完整路径。 | |
| echo. | |
| pause | |
| goto :eof | |
| ) | |
| :: 创建输出目录 (如果不存在) | |
| if not exist "%OUTPUT_DIR%" ( | |
| echo 创建输出目录: %OUTPUT_DIR% | |
| mkdir "%OUTPUT_DIR%" | |
| ) | |
| :: 遍历源文件夹中的所有 MP4 文件 | |
| for %%f in ("%SOURCE_DIR%\*.mp4") do ( | |
| set "INPUT_FILE=%%f" | |
| set "OUTPUT_FILE=!OUTPUT_DIR!\%%~nf_compressed.mp4" | |
| echo. | |
| echo ---------------------------------------------------- | |
| echo 正在处理文件: !INPUT_FILE! | |
| echo 目标文件: !OUTPUT_FILE! | |
| echo ---------------------------------------------------- | |
| :: 执行 FFmpeg 压缩 | |
| "%FFMPEG_PATH%" -i "!INPUT_FILE!" %FFMPEG_PARAMS% "!OUTPUT_FILE!" | |
| if %errorlevel% equ 0 ( | |
| echo 成功压缩: !INPUT_FILE! | |
| ) else ( | |
| echo 错误:压缩 !INPUT_FILE! 失败! | |
| ) | |
| echo. | |
| ) | |
| echo. | |
| echo ========================================================= | |
| echo 所有 MP4 文件处理完毕! | |
| echo ========================================================= | |
| echo. | |
| pause | |
| endlocal |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment