清理 AI 视频元数据 video-scrub
分享 AI 视频前,清理文件中的元数据。video-scrub 可清理原片的位置、设备、时间等信息,输出新文件,并检查是否还有残留。
可用于 Claude Code · Codex
前置要求
- Node.js >= 18
- FFmpeg
- FFprobe
概览
你会得到什么
- 清理原片元数据后的新视频文件,以及对应的验证报告。
- 提供保留视频编码的 copy 模式和重新编码的 encode 模式;两种模式都会重新编码音频。
适用场景
- 分享或交付视频前,检查并清理文件中的元数据。
不适用
- 去除画面水印或鲁棒像素水印,也不能保证平台不再识别出 AI 生成内容。
教程
安装技能,检查运行环境
AI 视频导出后,文件里可能还带着生成工具、创建时间等信息。元数据指文件里携带的这类信息,不是画面里的文字或水印。video-scrub 会重新封装视频,只选取第一条视频流和第一条音频流,并检查原片信息是否残留;它也能处理其他来源的视频。
本例用一条 MP4 视频,输出一个新文件。原片保留,方便对比。
-
在终端检查依赖:
node --version ffmpeg -version ffprobe -versionNode.js 需为 18 或更高版本,另外两条命令应能显示版本。安装脚本只创建技能链接,不会替你安装这些依赖。缺少时,先从 Node.js 下载页和 FFmpeg 下载页选择适合系统的安装方式,再重新检查版本。
-
运行本页安装区的命令,只安装
video-scrub。脚本会检测 Claude Code 和 Codex 的配置目录,把技能链接到对应目录。需要明确指定时,在仓库根目录二选一运行:./scripts/install.sh --claude video-scrub ./scripts/install.sh --codex video-scrub脚本显示目标目录已链接到仓库内的
skills/video-scrub,即安装完成。保留这个仓库目录,后续更新可在其中执行git pull。 -
接下来两种方式选一种即可:想让 AI 代为执行,就在新的 Claude Code 或 Codex 会话中发送本页“用法”中的需求,换成自己的文件路径;想直接处理文件,就按下一节的终端命令操作。
检查原片,清理并验证输出
以下命令均在 reelbench-skills 仓库根目录执行。将 input.mp4 换成实际路径;路径包含空格时保留引号。
-
先检查原片:
node skills/video-scrub/scripts/video-scrub.mjs inspect "/absolute/path/input.mp4"查看报告中有哪些位置、设备、时间或编码工具信息,以及是否有额外音轨、字幕或 HDR 信息。原片不一定包含每一种信息,报告里没有位置字段,并不代表命令没有生效。
-
清理并自动验证,保存为一个尚不存在的新文件:
node skills/video-scrub/scripts/video-scrub.mjs run "/absolute/path/input.mp4" -o "/absolute/path/input-clean.mp4" --mode copy --profile barecopy不重新编码视频画面;音频仍会重新编码为 AAC,可能有音质损失,当前脚本没有保留原音频编码的选项。对音质敏感时,保留原片并试听对比。--profile决定输出文件写入哪些工具和时间信息。本例使用bare,不额外写入录屏工具标记或创建时间;默认的obs会保留 FFmpeg 封装工具标记、标准音视频流名称,并写入新的创建时间。只想减少文件信息时,沿用本例的bare即可。run会先处理文件,再列出元数据残留、流构成、时长、能否解码等检查结果。✓表示该项通过,✗表示失败,–表示跳过并附原因。末尾的✅ … 道门全过表示脚本检查通过;❌ … 道门红了表示存在失败项,此时退出码为 1。跳过不等于检查过,仍需阅读原因;不要只凭输出文件已经生成就判断成功。 -
如需再次验证同一份输出,使用相同模式和配置:
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,替换输入和输出路径后重新检查结果。