batch-process · git:20260828.21694dd · 2026-08-28 · sha256 86e85cdbf537235c

batch-process git:20260828.21694ddA

Immutable. This exact content is served forever at /api/v1/blob/86e85cdbf537235c.

---
name: batch-process
description: "批量处理:对一个目录里的一批图片/视频/音频统一套用同一操作——批量压缩、加水印、转格式、缩放、转比例、音量归一化等。当用户说 批量处理、批量压缩、批量加水印、批量转格式、一批图片/视频、给这个文件夹、全部转成、批量缩放、批量转竖版、整个目录 时使用。基于 shared/scripts/batch_process.py(委派 image_ops/video_ops/audio_ops)。与 image-editing/video-editing/audio-editing 区别:那些处理单文件,本 SKILL 批量套用到整个目录。"
layer: general
---

# 批量处理(目录级)

> 对整个目录的图片/视频/音频统一套用同一操作。走 `skills/shared/scripts/batch_process.py`,
> 逐个委派给对应确定性脚本(image_ops / video_ops / audio_ops)。

> 单文件处理见 image-editing / video-editing / audio-editing;本 SKILL 是它们的**目录批量版**。

## 输入

| 字段 | 必填 | 说明 |
|------|------|------|
| 目录 | 是 | 待处理文件所在目录 |
| 类型 | 是 | `image` / `video` / `audio`(决定用哪个 ops 脚本 + 文件筛选) |
| 操作 | 是 | ops 子命令(如 resize/compress/watermark/aspect/convert/normalize) |
| 操作参数 | 视操作 | 写在 `--` 之后,原样透传给 ops 脚本 |

## 输出(默认 `<目录>/batch_out/`)

- 处理后的同名文件;报告成功/失败数。

## 执行

脚本路径(相对项目根):`skills/shared/scripts/batch_process.py`(`run -h` / `list -h`)。

```bash
# 先预览会处理哪些文件
python skills/shared/scripts/batch_process.py list --dir imgs --type image

# 批量压缩图片到 500KB
python skills/shared/scripts/batch_process.py run --dir imgs --type image --op compress \
  --out-dir out -- --max-kb 500

# 批量加水印
python skills/shared/scripts/batch_process.py run --dir imgs --type image --op watermark \
  -- --text "@我的账号" --position bottom-right

# 批量视频转竖版 9:16
python skills/shared/scripts/batch_process.py run --dir clips --type video --op aspect \
  --out-dir out -- --ratio 9:16 --mode pad

# 批量音频转 mp3(改扩展名用 --ext)
python skills/shared/scripts/batch_process.py run --dir raw --type audio --op convert \
  --out-dir out --ext .mp3 -- --bitrate 192k
```

## 可用操作(透传给 ops 脚本,`<脚本> <op> -h` 看参数)

- **image**(image_ops):resize / crop / pad / convert / compress / watermark / round / thumbnail
- **video**(video_ops):compress / aspect / watermark / speed / gif / frame
- **audio**(audio_ops):convert / normalize / denoise / fade / speed / trim

## 规则

1. 先 `list` 预览文件范围,确认无误再 `run`。
2. `--` 之后的参数原样透传给 ops 脚本;不确定参数先跑单文件版(image-editing 等)验证一次。
3. 改输出格式用 `--ext`(如 `.mp3`/`.png`),否则沿用原扩展名。
4. 批处理串行执行(避免高负载);量大时耐心等,失败文件会单独列出不中断整体。
5. 默认输出到 `<目录>/batch_out/`,不覆盖原文件。

## 参考来源

复用项目既有确定性脚本(image_ops/video_ops/audio_ops),本 SKILL 只做目录遍历 + 逐文件
委派 + 结果汇总,不重复实现处理逻辑。