用途:把一条视频重建成「只有画面和声音」的干净文件,源片元数据一概不搬。走白名单而非黑名单:只带画面一条流、声音一条流,其余一律不要,隐私保证来自结构而非枚举。
主要能力:脚本位于 {baseDir}/scripts/video-scrub.mjs,零依赖,node 直接运行。默认 copy 模式(画面逐字节照搬、音频重编),可选 encode 模式(完整重编码);音频两种模式都重编,因为 AAC 版本号写在 DSE 里,-c:a copy 抹不掉。四个 profile:obs(默认)、quicktime、screencapture、bare(什么都不写,隐私强度最高)。
使用方式: 先看源片:node {baseDir}/scripts/video-scrub.mjs inspect <video> 清理:node {baseDir}/scripts/video-scrub.mjs scrub <video> -o out.mp4 验收:node {baseDir}/scripts/video-scrub.mjs verify <源> <输出> 一条龙:node {baseDir}/scripts/video-scrub.mjs run <video> -o out.mp4 常用参数:--mode encode、--profile bare、--crf 18(仅 encode 有意义)、--date 2026-01-01T00:00:00Z。
关键机制:ffmpeg 默认会搬容器 tag 并自动挑流,需用 -map_metadata -1 与 -map 0:v:0 -map 0:a:0? 摁住,后者是 GoPro/DJI 遥测轨的唯一防线。验收把源片所有元数据字符串当针做字节级扫描,共 12 道门。
限制:不去除水印(鲁棒像素水印重编码也杀不掉)、不改画面内容、不伪造设备型号和 GPS、不做批量目录扫描、不处理非 mp4/mov 容器。HDR 源片一律不删 SEI,以免掉色或丢内嵌字幕。自测:node {baseDir}/scripts/selftest.mjs。