视频压缩工具箱
文章专栏 / 批处理技巧

批量压缩视频的 5 种方法

发布于 2025-11-12 · 阅读约 16 分钟 · 视频压缩工具箱编辑部

需要压缩几十甚至上百个视频文件?手动一个个处理太慢?本文介绍5种高效的批量压缩方案,从命令行脚本到图形化工具,总有一种适合你。

方法对比

技术用户推荐FFmpeg脚本(最灵活高效);普通用户推荐HandBrake队列(操作简单);大量文件推荐Shutter Encoder(自动化程度高)。

方法一:FFmpeg 批处理脚本

FFmpeg是最强大灵活的批量压缩方案,适合技术用户。通过简单的脚本可以自动处理整个文件夹的视频。

Windows 批处理脚本

创建一个batch_compress.bat文件,内容如下:

@echo off setlocal enabledelayedexpansion mkdir compressed 2>nul for %%f in (*.mp4 *.avi *.mkv *.mov) do ( echo Processing: %%f ffmpeg -i "%%f" -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k "compressed\%%~nf_compressed.mp4" if !errorlevel! equ 0 ( echo Success: %%f ) else ( echo Failed: %%f ) ) echo All done! pause

使用方法:

  1. 把脚本文件放到视频文件夹
  2. 双击运行
  3. 压缩后的文件会保存在compressed子文件夹

Linux/Mac Shell 脚本

创建batch_compress.sh文件:

#!/bin/bash mkdir -p compressed for file in *.mp4 *.avi *.mkv *.mov; do [ -e "$file" ] || continue echo "Processing: $file" filename="${file%.*}" ffmpeg -i "$file" -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k "compressed/${filename}_compressed.mp4" if [ $? -eq 0 ]; then echo "Success: $file" else echo "Failed: $file" fi done echo "All done!"

使用方法:

  1. 给脚本执行权限:chmod +x batch_compress.sh
  2. 运行脚本:./batch_compress.sh

进阶:多种输出格式

可以根据原始分辨率选择不同的压缩参数:

#!/bin/bash mkdir -p compressed for file in *.mp4; do [ -e "$file" ] || continue # 获取分辨率 height=$(ffprobe -v error -select_streams v:0 -show_entries stream=height -of csv=p=0 "$file") filename="${file%.*}" echo "Processing: $file (${height}p)" if [ "$height" -ge 2160 ]; then # 4K视频:H.265压缩 ffmpeg -i "$file" -c:v libx265 -crf 26 -preset medium -c:a copy "compressed/${filename}_4k.mp4" elif [ "$height" -ge 1080 ]; then # 1080P:标准H.264 ffmpeg -i "$file" -c:v libx264 -crf 23 -preset medium -c:a copy "compressed/${filename}_1080p.mp4" else # 720P及以下:快速压缩 ffmpeg -i "$file" -c:v libx264 -crf 25 -preset fast -c:a copy "compressed/${filename}_720p.mp4" fi done

并行处理(加速)

利用GNU Parallel同时处理多个文件:

# 安装 parallel sudo apt install parallel # Linux brew install parallel # Mac # 并行压缩(同时处理4个文件) parallel -j 4 ffmpeg -i {} -c:v libx264 -crf 23 -preset medium -c:a copy compressed/{/.}_compressed.mp4 ::: *.mp4

在多核CPU上,并行处理可以显著提升速度。

FFmpeg脚本优势:

  • 完全自动化,设置好参数后无需人工干预
  • 可以根据文件属性动态调整参数
  • 支持并行处理,充分利用多核CPU
  • 适合集成到自动化工作流程

方法二:HandBrake 队列处理

HandBrake提供了友好的图形界面,支持队列批量处理。适合不熟悉命令行的用户。

操作步骤

  1. 打开HandBrake
  2. 添加文件到队列:
    • 点击"Open Source" → 选择第一个视频
    • 设置输出路径和压缩参数
    • 点击"Add to Queue"而不是"Start"
    • 重复上述步骤,添加所有视频到队列
  3. 批量应用预设:
    • 选择合适的预设(如"Fast 1080p30")
    • 修改任何需要的参数
    • 右键点击预设 → "Set as default"
    • 后续添加的文件会自动应用此预设
  4. 开始批量压缩:
    • 点击顶部"Queue"按钮查看队列
    • 点击"Start Queue"开始处理
    • HandBrake会按顺序处理所有文件

快速添加整个文件夹

HandBrake支持批量导入:

推荐预设

预设名称 编码器 质量 速度 适用场景
Very Fast 1080p30 H.264 中等 很快 大量文件快速处理
Fast 1080p30 H.264 良好 日常批量压缩
HQ 1080p30 Surround H.264 高质量 中等 重要视频存档
Super HQ 1080p30 H.265 极高 专业存档

自定义预设

创建自己的批量压缩预设:

  1. 按需调整所有参数(视频、音频、字幕等)
  2. 点击底部"Presets"面板
  3. 点击"Save New Preset"
  4. 命名并保存
  5. 之后批量添加时选择此预设即可

方法三:Shutter Encoder 自动监控

Shutter Encoder是一款专业的批量转码工具,支持监控文件夹自动处理新文件。

主要特性

批量压缩操作

  1. 添加文件:
    • 拖拽视频文件到窗口
    • 或点击"Choose files"选择多个文件
  2. 选择输出格式:
    • 在"Function"下拉菜单选择压缩方案
    • 推荐:"H.264"或"H.265"
  3. 调整参数:
    • 质量:拖动滑块调整CRF值
    • 分辨率:可选择缩小到1080P/720P
    • 码率:支持CBR/VBR模式
  4. 设置输出路径:
    • 点击"Choose"选择输出文件夹
    • 勾选"Same as source"保存到原位置
  5. 开始处理:
    • 点击"Start function"
    • 软件会依次处理所有文件

监控文件夹模式

设置自动处理工作流:

  1. 勾选"Watch folder for new files"
  2. 选择要监控的文件夹
  3. 设置好压缩参数
  4. 点击"Start function"
  5. 任何放入该文件夹的新视频会自动压缩

这对于定期处理手机导出视频、监控录像等场景非常实用。

方法四:视频批处理工具

除了上述方案,还有一些专门的批量处理工具值得推荐。

4.1 Xmedia Recode (Windows)

免费的德国软件,功能强大:

批量操作:

  1. 点击"打开文件"添加多个视频
  2. 选择输出格式和设备
  3. 调整视频参数(可应用于全部)
  4. 点击"编码"开始批量处理

4.2 格式工厂 (Windows)

国产老牌转换工具,界面简单:

4.3 Adapter (Mac)

macOS上最好用的免费转换工具:

方法五:云端批量压缩

适合没有高性能电脑或需要在手机上操作的用户。

5.1 CloudConvert

专业的在线转换服务:

使用流程:

  1. 访问cloudconvert.com
  2. 点击"Select Files"上传视频
  3. 选择输出格式(MP4/H.264)
  4. 点击齿轮图标调整质量
  5. 可以继续添加更多文件
  6. 点击"Start Conversion"
  7. 完成后下载所有文件

5.2 Compress.com

专注视频压缩的在线工具:

5.3 注意事项

5种方法对比

方法 难度 灵活性 速度 成本 适用场景
FFmpeg脚本 极高 免费 技术用户、自动化需求
HandBrake 中等 中等 免费 普通用户、中等批量
Shutter Encoder 免费 大量文件、自动监控
批处理工具 中等 中等 免费 Windows用户、简单需求
云端服务 极低 部分收费 无本地电脑、少量文件

批量压缩最佳实践

1. 先测试后批量

用一个样本文件测试参数效果,满意后再批量处理:

2. 分类处理

不同类型视频用不同参数:

3. 保留原文件

批量压缩时建议:

4. 合理命名

设置清晰的文件命名规则:

5. 监控进度

批量处理时注意:

常见问题

批量压缩时如何跳过已处理的文件?

在脚本中添加检查逻辑:

for file in *.mp4; do output="compressed/${file%.*}_compressed.mp4" if [ -f "$output" ]; then echo "Skipping (already exists): $file" continue fi # 压缩命令... done

如何处理不同格式的输入文件?

脚本中匹配多种扩展名:

for file in *.{mp4,avi,mkv,mov,wmv,flv}; do [ -e "$file" ] || continue # 统一输出为MP4 ffmpeg -i "$file" ... "output/${file%.*}.mp4" done

批量压缩会损坏文件吗?

极少情况下可能出现问题:

如何限制批量压缩的CPU占用?

FFmpeg可以限制线程数:

ffmpeg -i input.mp4 -threads 4 -c:v libx264 ... output.mp4

或者在脚本中控制并发数量(见并行处理部分)。

批量压缩时如何保留原始文件信息?

使用-map_metadata参数:

ffmpeg -i input.mp4 -map_metadata 0 -c:v libx264 ... output.mp4

这会保留创建时间、作者、标题等元数据。

推荐组合方案:

  • 日常少量文件(<20) → HandBrake队列
  • 定期批量处理(20-100) → Shutter Encoder
  • 大规模自动化(100+) → FFmpeg脚本 + 并行处理
  • 混合类型文件 → 按类型分组 + 不同参数处理

进阶:自动化工作流

定时批量压缩

设置定时任务自动压缩新视频:

Linux Cron任务:

# 编辑crontab crontab -e # 每天凌晨2点执行压缩脚本 0 2 * * * /path/to/batch_compress.sh

Windows任务计划程序:

  1. 打开"任务计划程序"
  2. 创建基本任务
  3. 设置触发器(每天、每周等)
  4. 操作:启动程序 → 选择批处理脚本

云端自动处理

使用API实现自动化:

# CloudConvert API示例(Python) import cloudconvert cloudconvert.configure(api_key='your_api_key') job = cloudconvert.Job.create(payload={ 'tasks': { 'import-my-file': { 'operation': 'import/upload' }, 'convert-my-file': { 'operation': 'convert', 'input': 'import-my-file', 'output_format': 'mp4', 'options': { 'video_codec': 'h264', 'crf': 23 } } } })

批量压缩视频的关键是选对工具和设置好参数。对于大多数用户,HandBrake和Shutter Encoder的图形界面已经足够强大;而技术用户可以通过FFmpeg脚本获得最大的灵活性和效率。无论选择哪种方法,记得先测试参数,再批量处理,并保留原文件直到确认质量满意。

#批量压缩 #FFmpeg脚本 #HandBrake #批处理 #自动化

相关文章

← 返回文章列表