batch_encode.py — HandBrake 批量转码脚本¶
功能¶
- 递归扫描源目录下所有
.mkv文件 - 调用 HandBrakeCLI 使用自定义预设 + NVIDIA NVENC 硬件编码转码为
.mp4 - 保持源目录的子目录结构输出
- 先输出到
.tmp临时文件,转换成功后再重命名为.mp4,避免中断产生残缺文件 - 已存在的输出文件自动跳过,支持断点续传
- 遇到错误立即终止,不继续处理后续文件
使用前准备¶
1. 安装 HandBrake¶
下载 CLI 后将 HandBrakeCLI.exe 放到本体安装目录下(如 D:\Program Files\HandBrake\)。
2. 导出预设¶
- 打开 HandBrake GUI
- 配置好你想要的参数(分辨率、码率、滤镜等)
- 点击 Presets → Add New Preset 保存为预设(如
720p-h264) - 右键该预设 → Export → 导出为 JSON 文件
3. 修改配置¶
编辑 batch_encode.py 顶部的配置区域:
| 变量 | 说明 |
|---|---|
SOURCE_DIR |
源目录,会递归扫描其下所有 mkv |
OUTPUT_DIR |
输出目录 |
HANDBRAKE_CLI |
HandBrakeCLI.exe 路径 |
PRESET_JSON_PATH |
上一步导出的预设 JSON 文件路径 |
4. 运行¶
| Bash | |
|---|---|
编码器¶
默认使用 nvenc_h264(NVIDIA NVENC H.264 硬件编码)。如需修改,调整 --encoder 参数,或修改 json 中的VideoEncoder 配置:
nvenc_h264— H.264(兼容性最好)nvenc_h265— H.265/HEVC(更高压缩率)nvenc_h265_10bit— 10-bit H.265(更高画质)x264— CPU 软件编码
注意事项¶
- 首次运行前先在 HandBrake GUI 中测试预设是否正常
- 确保磁盘空间充足(临时文件和最终文件同时存在)
- 强制中断后,
.tmp残留文件会在下次启动时自动清理