百度智能云VOD字幕擦除

百度智能云VOD字幕擦除工具。支持从本地或网盘选取视频进行字幕擦除,支持全局/对白/自定义区域三种模式,支持批量处理文件夹中的视频,处理后可下载到本地或上传到网盘。当用户提及"字幕擦除"、"擦除字幕"、"去除字幕"时触发。

Audits

Pass

Install

openclaw skills install baidu-vod-desubtitle

百度智能云 VOD 字幕擦除 Skill

智能识别并擦除视频中的字幕区域,支持多种擦除模式和高级配置。

⚠️ 强制执行流程

禁止直接执行命令!必须按以下流程引导用户:

1. 识别意图 → 判断擦除类型(字幕/Logo/时间范围)
2. 收集参数 → 使用 Question 工具询问用户
3. 确认配置 → 展示参数让用户确认
4. 用户确认 → 才能执行命令

错误示例(禁止):

用户: 帮我擦除这个视频的字幕
Agent: [直接执行 python3 desubtitle.py video.mp4 --mode global]  ❌

正确示例:

用户: 帮我擦除这个视频的字幕
Agent: 请选择处理方式:
  [1] 单个视频
  [2] 批量处理文件夹
用户: 1
Agent: 请选择擦除方式:
  [1] 全局擦除 - 自动识别所有字幕区域
  [2] 对白擦除 - 只擦除底部对白字幕
  [3] 自定义区域 - 指定坐标擦除
用户: 1
Agent: 请提供视频文件路径:
用户: /Downloads/video.mp4
Agent: [执行命令]  ✓

触发规则

满足以下任一条件时触发:

  1. 用户提及"字幕擦除"、"擦除字幕"、"去除字幕"
  2. 用户需要处理视频中的字幕
  3. 用户需要查询或删除字幕擦除任务

Agent 参数收集指南

核心原则

  1. 简洁优先:直接询问处理方式,不绕弯子
  2. 最小必要:只收集必要参数,其他使用默认值
  3. 渐进式:从简单到复杂,避免一次性问太多
  4. 推荐优先:给出推荐选项,而非开放式问题

第一步:识别用户意图

根据用户描述,识别属于哪种场景:

用户描述关键词场景类型推荐操作
"擦除字幕"、"去除字幕"、"消字幕"字幕擦除询问处理方式和擦除方式
"擦除Logo"、"去除水印"、"去掉角标"区域擦除直接使用 manual 模式
"只擦除某一段"、"前几分钟"时间范围manual + time-range
"查任务"、"任务状态"任务查询--list/--query
"删除任务"任务删除--delete

第二步:收集必要参数

第一步:询问处理方式

交互模板:

用户: 帮我把这个视频的字幕擦除

Agent: 请选择处理方式:
  [1] 单个视频 - 处理单个视频文件
  [2] 批量处理文件夹 - 处理文件夹中的所有视频

用户: 1 或 2

第二步:收集视频路径

场景 A:单个视频

交互模板:

Agent: 请提供视频文件路径:

用户: /Downloads/video.mp4

场景 B:批量处理文件夹

交互模板:

Agent: 请提供文件夹路径(将处理该文件夹下所有视频文件):

用户: /Downloads/videos/

Agent: 正在扫描文件夹中的视频文件...
找到 5 个视频文件:
  1. video1.mp4
  2. video2.mp4
  3. video3.mp4
  4. video4.mp4
  5. video5.mp4

确认处理这些视频吗?

扫描文件夹的实现:

使用 Glob 工具扫描常见视频格式:

Glob: <文件夹路径>/**/*.mp4
Glob: <文件夹路径>/**/*.mkv
Glob: <文件夹路径>/**/*.avi
Glob: <文件夹路径>/**/*.mov
Glob: <文件夹路径>/**/*.webm

第三步:询问擦除方式

交互模板:

Agent: 请选择擦除方式:
  [1] 全局擦除 - 自动识别并擦除所有字幕区域(推荐)
  [2] 对白擦除 - 只擦除底部对白字幕,保留其他文字
  [3] 自定义区域 - 手动指定坐标擦除

用户: 1

擦除方式说明:

方式命令参数适用场景
全局擦除--mode global综艺、广告、不确定字幕位置、想擦除所有字幕
对白擦除--mode dialog电影、电视剧、访谈、只需擦除底部对白字幕
自定义区域--mode manual --areas "x,y,w,h"Logo、水印、角标、特定位置

场景 C:区域擦除(Logo/水印)

必须收集

  1. 视频来源
  2. 擦除区域坐标

交互模板:

用户: 帮我去掉视频左上角的Logo

Agent: 请提供Logo区域的坐标(格式: x,y,宽度,高度):
  - x: Logo左边距离视频左边的像素
  - y: Logo上边距离视频上边的像素
  - 宽度: Logo的宽度
  - 高度: Logo的高度

提示:可以用视频播放器截图,在图片编辑器中查看像素坐标。

用户: 50,30,200,80

Agent: 收到,Logo区域: (50,30) 宽200 高80
确认执行吗?

用户: 确认

Agent: [执行: --mode manual --areas "50,30,200,80"]

场景 D:时间范围擦除

必须收集

  1. 视频来源
  2. 擦除区域坐标
  3. 开始时间
  4. 结束时间

交互模板:

用户: 只擦除视频前30秒的字幕

Agent: 好的,时间范围擦除需要指定区域坐标。
请提供字幕区域的坐标(格式: x,y,宽度,高度):

用户: 0,900,1920,60

Agent: 收到,将擦除前30秒的区域 (0,900,1920,60)。
确认执行吗?

用户: 确认

Agent: [执行: --mode manual --areas "0,900,1920,60" --time-range 0 30000]

第三步:确认配置

收集完参数后,展示配置让用户确认:

单个视频:

Agent: 确认以下配置:
  - 视频文件: /Downloads/video.mp4
  - 擦除方式: 全局擦除
  - 输出目录: ./output

确认执行吗?

批量处理:

Agent: 确认以下配置:
  - 处理模式: 批量处理
  - 视频数量: 5 个
  - 擦除方式: 全局擦除
  - 输出目录: ./output

确认执行吗?

参数收集决策树

用户请求
    │
    ├─ 查询任务? ──────────────────────► --list / --query
    │
    ├─ 删除任务? ──────────────────────► --delete
    │
    └─ 处理视频?
         │
         ├─ 处理方式?
         │    ├─ 单个视频 ──► 获取视频文件路径
         │    └─ 批量处理 ──► 获取文件夹路径 → 扫描视频文件 → 展示列表确认
         │
         ├─ 擦除什么?
         │    ├─ "字幕" ──► 询问擦除方式
         │    │    ├─ 全局擦除 ──► --mode global
         │    │    ├─ 对白擦除 ──► --mode dialog
         │    │    └─ 自定义区域 ──► --mode manual + 询问坐标
         │    │
         │    ├─ "Logo/水印" ──► --mode manual + 询问坐标
         │    │
         │    └─ "某段时间" ──► --mode manual + areas + time-range
         │
         └─ 确认执行
              │
              ├─ 来自网盘? ──► 询问是否上传回网盘
              │
              └─ 执行命令

推荐参数组合

组合 1:全局擦除(推荐)

python3 scripts/desubtitle.py <视频> --mode global

适用场景:综艺、广告、不确定字幕位置、想擦除所有字幕 特点:智能识别并擦除所有字幕区域

组合 2:对白擦除

python3 scripts/desubtitle.py <视频> --mode dialog

适用场景:电影、电视剧、访谈节目 特点:只擦除底部对白字幕,保留其他文字

组合 3:自定义区域擦除

python3 scripts/desubtitle.py <视频> --mode manual --areas "x,y,w,h"

适用场景:去除特定位置的Logo、水印、角标

组合 4:批量处理

python3 scripts/desubtitle.py video1.mp4 video2.mp4 video3.mp4 --mode global

适用场景:批量处理多个视频文件 特点:所有视频使用相同的擦除模式


常见问题处理

Q1:用户不知道选哪种擦除方式

Agent: 请选择擦除方式:
  [1] 全局擦除 - 自动识别并擦除所有字幕区域(推荐)
  [2] 对白擦除 - 只擦除底部对白字幕,保留其他文字
  [3] 自定义区域 - 手动指定坐标擦除

用户: 不知道选哪个

Agent: 建议选择 [1] 全局擦除,会自动识别所有字幕区域,适用于大多数场景。

Q2:用户不知道坐标

用户: 我要擦除Logo,但不知道坐标

Agent: 您可以:
  1. 用视频播放器截图
  2. 在图片编辑器(如PS、画图)中打开截图
  3. 查看Logo左上角的坐标(x,y)和尺寸(宽,高)

或者告诉我Logo的大概位置:
  [1] 左上角
  [2] 右上角
  [3] 左下角
  [4] 右下角

用户: 右上角

Agent: 请告诉我Logo大概占视频宽高的比例?
  例如:宽200像素,高50像素

用户: 宽150,高40

Agent: 好的,右上角Logo,宽150高40。
假设视频是1920x1080,Logo坐标大约是:
  x=1770, y=0, width=150, height=40

确认使用这个坐标吗?

Q3:批量处理时文件夹中没有视频

Agent: 正在扫描文件夹中的视频文件...
未找到视频文件。请确认文件夹路径正确,且包含以下格式的视频:
  .mp4, .mkv, .avi, .mov, .webm

请重新提供文件夹路径:

执行命令模板

单个视频

export BAIDU_VOD_AK='xxx' && export BAIDU_VOD_SK='xxx' && \
python3 scripts/desubtitle.py <视频路径> --mode <模式>

批量处理

export BAIDU_VOD_AK='xxx' && export BAIDU_VOD_SK='xxx' && \
python3 scripts/desubtitle.py <视频1> <视频2> <视频3> --mode <模式>

完整命令(所有参数)

export BAIDU_VOD_AK='xxx' && export BAIDU_VOD_SK='xxx' && \
python3 scripts/desubtitle.py <视频路径> \
  --mode <global|dialog|manual> \
  --model <v3|v4> \
  --areas "x,y,w,h" \
  --time-range <开始ms> <结束ms> \
  --output-dir <输出目录> \
  --upload-netdisk \
  --netdisk-dir <网盘目录>

示例对话

示例 1:单个视频

用户: 帮我把 /Downloads/movie.mp4 的字幕擦除

Agent: 请选择处理方式:
  [1] 单个视频
  [2] 批量处理文件夹

用户: 1

Agent: 请选择擦除方式:
  [1] 全局擦除 - 自动识别并擦除所有字幕区域(推荐)
  [2] 对白擦除 - 只擦除底部对白字幕,保留其他文字
  [3] 自定义区域 - 手动指定坐标擦除

用户: 2

Agent: 确认配置:
  - 视频文件: /Downloads/movie.mp4
  - 擦除方式: 对白擦除
  - 输出目录: ./output

确认执行吗?

用户: 确认

Agent: 正在处理...
[执行: --mode dialog]
✓ 处理完成,结果已保存到: ./output/desubtitled_movie.mp4

示例 2:批量处理

用户: 帮我擦除一个文件夹里所有视频的字幕

Agent: 请选择处理方式:
  [1] 单个视频
  [2] 批量处理文件夹

用户: 2

Agent: 请提供文件夹路径:

用户: /Downloads/videos/

Agent: 正在扫描文件夹中的视频文件...
找到 3 个视频文件:
  1. ep01.mp4
  2. ep02.mp4
  3. ep03.mp4

请选择擦除方式:
  [1] 全局擦除(推荐)
  [2] 对白擦除
  [3] 自定义区域

用户: 1

Agent: 确认配置:
  - 处理模式: 批量处理
  - 视频数量: 3 个
  - 擦除方式: 全局擦除
  - 输出目录: ./output

确认执行吗?

用户: 确认

Agent: 正在批量处理...
[执行: ep01.mp4 ep02.mp4 ep03.mp4 --mode global]
✓ 全部处理完成

示例 3:Logo擦除

用户: 帮我去掉视频左上角的Logo

Agent: 请提供Logo区域的坐标(格式: x,y,宽度,高度):

用户: 20,20,180,60

Agent: 确认配置:
  - 擦除区域: (20,20) 宽180 高60
  - 擦除方式: 自定义区域

确认执行吗?

用户: 确认

Agent: [执行: --mode manual --areas "20,20,180,60"]
✓ 处理完成

前置条件

1. VOD 凭证

export BAIDU_VOD_AK="your_access_key"
export BAIDU_VOD_SK="your_secret_key"

获取方式:

  1. 登录 百度智能云控制台
  2. 开通 智能点播平台 VOD
  3. 安全认证 获取 AK/SK

2. 网盘功能(可选)

如需从网盘下载或上传到网盘,需要:

  1. 安装 bdpan CLI
  2. 执行 bdpan login 登录

处理时间

  • 单个视频:约 5-15 分钟(取决于视频长度)
  • 批量处理:按视频数量累计
  • 可使用 --no-wait 参数不等待,稍后查询任务状态

注意事项

  1. 文件大小限制:单个文件 ≤ 5GB
  2. 支持格式:mp4/mpeg/mpg/dat/avi/mov/asf/wmv/navi/3gp/real video/mkv/flv/f4v/rmvb/rmhd/webm/hddvd/blue-ray/qsv/ts/mxf
  3. 费用:按处理时长计费
  4. 白名单:字幕擦除需要白名单权限,如提示"权限不足"请联系百度智能云开通

API 参考