Skip to content

Repository files navigation

Privacy Video|本地视频隐私打码工具

一个还在实验阶段的 Windows 本地视频打码工具。

做这个项目的起因很简单:录屏发布前,经常需要隐藏手机号、邮箱、账号、聊天内容和游戏昵称。剪辑软件当然能做,但逐段寻找、框选、跟踪再检查,长视频处理起来很磨人。

Privacy Video 尝试把这段流程串起来:

导入视频 → 本地OCR扫描 → 生成风险时间线 → 人工确认 → 打码导出

所有识别和渲染都在本机完成,视频不会上传到服务器。公开的社区版不需要登录或授权文件,可以完整导出视频。

现在能做什么

  • 导入视频、定位时间和预览画面;
  • 使用 RapidOCR 扫描中文与英文;
  • 检测手机号、邮箱、身份证、银行卡、QQ、微信、API Key、JWT和IP;
  • 把重复出现的风险内容合并到时间线;
  • 手动画框添加固定遮挡;
  • 框选移动区域后自动生成跟踪关键帧;
  • 提供像素马赛克、高斯模糊、纯色遮挡和毛玻璃;
  • 完整时长导出,不添加试用水印;
  • 使用 FFmpeg 保留原音频并导出;
  • 自动尝试 NVIDIA、Intel、AMD 硬件编码,失败后回退到软件编码。

游戏昵称实验

游戏昵称是目前最想继续验证的部分,暂时提供三种方式。

1. 通用动态文字

不绑定具体游戏。先收集画面里的短文本,再根据屏幕运动排除固定HUD,并拆开同一文字出现在聊天框、击杀提示和角色头顶等不同位置的轨迹。

优点是不用给每款游戏写配置,缺点也很明显:强特效完全盖住文字时,OCR没有任何信息可用,仍可能短暂漏检。

2. 血条附近名称

把文字附近的水平状态条当作额外证据。目前更适合MOBA一类画面,但并不是LOL专用规则。

3. 手动跟踪

在名称清晰的一帧框选区域,模板跟踪器会向后生成稀疏关键帧。自动检测漏掉的位置可以用它补轨。

一次实测

测试片段:LOL、1920×1080、60 FPS、21秒。

  • 通用模式扫描约60秒;
  • 生成39段候选轨迹,这不是39个不同玩家,而是被遮挡和重新出现后拆开的时间片段;
  • NVIDIA NVENC导出约12秒;
  • 固定比分、FPS和大部分HUD文字能够被排除;
  • 激烈战斗中的部分昵称仍会因特效遮挡而漏掉。

现阶段更像“自动完成大部分,再集中复核”,还不是可以完全不看结果的一键魔法。

跑起来

Windows下可以直接双击:

run.cmd

首次运行会创建 .venv 并安装依赖。手动安装方式:

python -m venv .venv
.venv\Scripts\python.exe -m pip install -e ".[ocr,dev]"
.venv\Scripts\python.exe -m privacy_video.app

运行测试

生成一段8秒的测试视频:

.venv\Scripts\python.exe tools\make_demo_video.py

执行测试:

.venv\Scripts\python.exe -m pytest -q

当前共有17项测试。

构建Windows便携版

powershell -ExecutionPolicy Bypass -File .\build.ps1

输出位置:

release/PrivacyVideo-Windows-x64.zip
release/PrivacyVideo-Windows-x64.sha256.txt

当前构建没有代码签名,Windows可能显示未知发布者。

目录

src/privacy_video/
├─ app.py               # Tk桌面界面
├─ analysis.py          # 常规隐私扫描
├─ dynamic_game_text.py # 通用动态文字聚类与轨迹
├─ game_names.py        # 血条附近昵称实验
├─ tracking.py          # 模板跟踪
├─ ocr.py               # RapidOCR适配
├─ rules.py             # 隐私字段规则
├─ renderer.py          # 遮挡渲染与FFmpeg导出
├─ models.py            # 项目、事件和关键帧模型
└─ video.py             # 视频读取与画面哈希

已知问题

  1. 通用游戏昵称检测仍会漏检和误报;
  2. 特效遮挡期间主要依赖前后关键帧插值,轨迹可能漂移;
  3. OCR首次运行需要准备模型;
  4. 长视频导出需要足够的临时磁盘空间;
  5. 目前只有Windows界面;
  6. 低置信度片段还没有独立的复核队列。

为什么放到GitHub

继续只用一段LOL录像调参数,很容易把“通用检测”做成另一套LOL专用规则。与其闭门增加更多判断,不如先把能运行的版本公开,看看它在FPS、MMO、战术竞技和其他语言界面上到底会怎样。

最有帮助的不是一句“支持”,而是一段可以公开的短样片、一组漏检时间点,或者一次针对轨迹关联的Pull Request。

现有的两个任务:

参与开发

开发约定见 CONTRIBUTING.md。Bug、想法和Pull Request都可以直接提交。

License

MIT

About

Windows本地视频隐私打码工具|OCR扫描、动态游戏昵称检测与跟踪

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages