handbrake支持五种批量处理方式:一、gui队列添加后启动;二、cli扫描目录自动转码;三、json队列文件导入导出;四、windows for循环脚本;五、linux/macos条件化shell脚本。

如果您已安装HandBrake并希望一次性处理多个视频文件,但仍在逐个点击“开始编码”,则说明尚未启用其内置的队列批处理机制。以下是实现高效批量转换的多种操作路径:
一、GUI界面添加任务至队列并启动
该方式适用于不熟悉命令行、需直观确认每个文件参数的新手用户。HandBrake图形界面底部的队列区可暂存多个独立转码任务,并按顺序自动执行,避免重复操作界面。
1、点击左上角“Open Source”按钮,选择第一个视频文件(支持MP4、MKV、AVI等常见格式)。
2、在右侧“Presets”面板中选择合适预设,例如Fast 1080p30(兼顾速度与画质)或iPhone & iPod Touch(适配移动设备)。
3、切换至“Destination”标签页,点击“Browse”设置输出路径及文件名,确保目录存在且有写入权限。
4、点击窗口下方“Add to Queue”按钮,当前配置将作为一个任务加入队列列表。
5、重复步骤1–4,为其余视频文件分别设置参数并添加至同一队列。
6、确认队列中所有任务无误后,点击底部“Start Queue”按钮,HandBrake将按添加顺序依次执行转码。
二、命令行批量导入指定目录下所有视频
该方式适用于需处理大量同类型文件(如一个文件夹内含50个MP4)的场景,无需逐个加载,由HandBrakeCLI自动扫描并生成任务,显著减少人工干预。
1、打开终端(macOS/Linux)或命令提示符/PowerShell(Windows)。
2、切换至目标视频所在目录,例如:cd /home/user/videos(Linux/macOS)或cd C:\Users\Name\Videos(Windows)。
3、执行以下命令,对当前目录所有.mp4文件应用“Fast 1080p30”预设并输出为MKV格式:
HandBrakeCLI --preset "Fast 1080p30" --format mkv --input "*.mp4" --output "./output/%(title)s.mkv"
4、若需保留原始文件名结构并自动创建output子目录,可先运行:mkdir -p output(Linux/macOS)或mkdir output(Windows)。
5、执行后,HandBrakeCLI将逐个读取匹配文件,完成转码后自动进入下一个,全程无交互等待。
三、通过JSON队列文件导入导出实现跨设备复用
该方式适用于需在多台机器间同步相同批量任务、或需版本化保存转码配置的进阶用户。HandBrake队列以标准JSON格式存储,可手动编辑、脚本生成或备份迁移。
1、在GUI中完成至少一个任务的全部设置后,点击“Add to Queue”,再点击队列区右下角“Export Queue”按钮。
2、保存为my_batch.json,该文件包含输入路径、预设名、输出路径、优先级等完整字段。
3、在另一台已安装HandBrake的电脑上,启动程序后点击队列区“Import Queue”,选择该JSON文件即可还原全部任务。
4、也可使用命令行直接加载:运行HandBrakeCLI --queue-import-file "my_batch.json",系统将解析并立即开始队列处理。
5、修改JSON时须确保“Path”字段为绝对路径,且源文件仍存在于对应位置,否则任务将因Source not found报错跳过。
四、使用FOR循环脚本实现Windows原生批处理
该方式绕过HandBrakeGUI和CLI的队列机制,直接调用HandBrakeCLI.exe生成独立进程,适合需精细控制每个任务启动时机或集成至现有运维流程的用户。
1、新建文本文件,重命名为batch_convert.bat。
2、用记事本打开,粘贴以下内容(假设HandBrakeCLI安装在默认路径):
FOR /F "tokens=*" %%G IN ('DIR /B /S *.mp4') DO "C:\Program Files\HandBrake\HandBrakeCLI.exe" -i "%%G" -o "%%~dpnG_converted.mp4" --preset="Fast 1080p30"
3、保存后双击运行,系统将遍历当前目录及所有子目录中的.mp4文件,逐一调用CLI转码。
4、每条命令生成独立日志,若某文件转码失败,不影响后续文件执行,错误信息将直接显示在命令行窗口中。
5、如需限制仅处理当前目录(不含子目录),将/S参数删除即可。
五、基于Shell脚本在Linux/macOS中实现条件化批量处理
该方式利用系统级文件筛选能力,支持按大小、修改时间、分辨率等元数据过滤,避免对小文件或新文件重复转码,提升资源利用率。
1、新建文件handbrake_batch.sh,赋予执行权限:chmod +x handbrake_batch.sh。
2、脚本内容如下(示例:仅转码大于100MB且分辨率高于720p的MP4文件):
find . -name "*.mp4" -size +100M -exec ffprobe -v quiet -show_entries stream=width,height -of csv=p=0 {} \; | awk -F',' '$1>1280 && $2>720 {print FILENAME}' | while read f; do HandBrakeCLI --preset "High Profile" -i "$f" -o "${f%.mp4}_hq.mp4"; done
3、运行前确保系统已安装ffprobe(来自ffmpeg包),用于提取视频分辨率信息。
4、脚本执行时,find定位大文件,ffprobe校验分辨率,awk筛选合格项,最终交由HandBrakeCLI处理。
5、每个匹配文件生成独立输出,文件名追加“_hq”后缀,原始文件保持不变。











