跳到主要内容
中文
← 技能
技能 · 代码仓库

清理 AI 视频元数据 video-scrub

分享 AI 视频前,清理文件中的元数据。video-scrub 可清理原片的位置、设备、时间等信息,输出新文件,并检查是否还有残留。

  • video
  • metadata
  • privacy
  • agent-skill

可用于 Claude Code · Codex

前置要求

  • Node.js >= 18
  • FFmpeg
  • FFprobe

概览

你会得到什么

  • 清理原片元数据后的新视频文件,以及对应的验证报告。
  • 提供保留视频编码的 copy 模式和重新编码的 encode 模式;两种模式都会重新编码音频。

适用场景

  • 分享或交付视频前,检查并清理文件中的元数据。

不适用

  • 去除画面水印或鲁棒像素水印,也不能保证平台不再识别出 AI 生成内容。

教程

安装技能,检查运行环境

AI 视频导出后,文件里可能还带着生成工具、创建时间等信息。元数据指文件里携带的这类信息,不是画面里的文字或水印。video-scrub 会重新封装视频,只选取第一条视频流和第一条音频流,并检查原片信息是否残留;它也能处理其他来源的视频。

本例用一条 MP4 视频,输出一个新文件。原片保留,方便对比。

  1. 在终端检查依赖:

    node --version
    ffmpeg -version
    ffprobe -version

    Node.js 需为 18 或更高版本,另外两条命令应能显示版本。安装脚本只创建技能链接,不会替你安装这些依赖。缺少时,先从 Node.js 下载页和 FFmpeg 下载页选择适合系统的安装方式,再重新检查版本。

  2. 运行本页安装区的命令,只安装 video-scrub。脚本会检测 Claude Code 和 Codex 的配置目录,把技能链接到对应目录。需要明确指定时,在仓库根目录二选一运行:

    ./scripts/install.sh --claude video-scrub
    ./scripts/install.sh --codex video-scrub

    脚本显示目标目录已链接到仓库内的 skills/video-scrub,即安装完成。保留这个仓库目录,后续更新可在其中执行 git pull。

  3. 接下来两种方式选一种即可:想让 AI 代为执行,就在新的 Claude Code 或 Codex 会话中发送本页“用法”中的需求,换成自己的文件路径;想直接处理文件,就按下一节的终端命令操作。

检查原片,清理并验证输出

以下命令均在 reelbench-skills 仓库根目录执行。将 input.mp4 换成实际路径;路径包含空格时保留引号。

  1. 先检查原片:

    node skills/video-scrub/scripts/video-scrub.mjs inspect "/absolute/path/input.mp4"

    查看报告中有哪些位置、设备、时间或编码工具信息,以及是否有额外音轨、字幕或 HDR 信息。原片不一定包含每一种信息,报告里没有位置字段,并不代表命令没有生效。

  2. 清理并自动验证,保存为一个尚不存在的新文件:

    node skills/video-scrub/scripts/video-scrub.mjs run "/absolute/path/input.mp4" -o "/absolute/path/input-clean.mp4" --mode copy --profile bare

    copy 不重新编码视频画面;音频仍会重新编码为 AAC,可能有音质损失,当前脚本没有保留原音频编码的选项。对音质敏感时,保留原片并试听对比。

    --profile 决定输出文件写入哪些工具和时间信息。本例使用 bare,不额外写入录屏工具标记或创建时间;默认的 obs 会保留 FFmpeg 封装工具标记、标准音视频流名称,并写入新的创建时间。只想减少文件信息时,沿用本例的 bare 即可。

    run 会先处理文件,再列出元数据残留、流构成、时长、能否解码等检查结果。✓ 表示该项通过,✗ 表示失败,– 表示跳过并附原因。末尾的 ✅ … 道门全过 表示脚本检查通过;❌ … 道门红了 表示存在失败项,此时退出码为 1。跳过不等于检查过,仍需阅读原因;不要只凭输出文件已经生成就判断成功。

  3. 如需再次验证同一份输出,使用相同模式和配置:

    node skills/video-scrub/scripts/video-scrub.mjs verify "/absolute/path/input.mp4" "/absolute/path/input-clean.mp4" --mode copy --profile bare

    验证报告只覆盖脚本能检查的项目,不代表能通过平台的 AI 内容检测。

选择处理模式,检查画面、声音与字幕

先播放刚输出的视频,对照原片检查声音、画面方向、颜色和时长。这个流程只保留第一条视频流和第一条音频流,不保留独立字幕轨或其他音轨;需要多语言音轨或可切换字幕时,不要直接用它替换完整交付文件。

需要重新编码时

默认的 copy 模式适合保留原有画质。确实需要重新编码视频时,可以另存一个版本:

node skills/video-scrub/scripts/video-scrub.mjs run "/absolute/path/input.mp4" -o "/absolute/path/input-encoded.mp4" --mode encode --profile bare --crf 18

--crf 控制重新编码的画质,仅对 encode 模式有意义。重新编码会增加耗时,也可能改变画质。仅清理元数据时,先用 copy;需要重新编码视频时,再选择 encode。

遇到 HDR 或内嵌字幕时

SEI 是视频编码流中的附加信息,可能包含 HDR 信息、内嵌字幕或编码工具标识。脚本遇到 HDR 时不会删除这部分 SEI,以免影响色彩;若因此报告标识残留,先查看报告说明。内嵌字幕也可能受到 SEI 清理影响,应逐段检查,不要把检查通过等同于字幕完整保留。

换成自己的视频时,先检查是否有多音轨、字幕或 HDR,并按上面的限制判断是否适合这条处理路线。普通单音轨视频可沿用 copy 和 bare,替换输入和输出路径后重新检查结果。