一个名为 CheapSecurity 的开源项目在 Hacker News 上吸引了开发者的目光。它是一套轻量级、完全自托管的监控录像系统,专门面向运行 Linux 的单板计算机和普通 USB 摄像头设计,其核心理念是将监控数据的控制权完全交还给用户,同时摆脱重复订阅费用。

项目在隐私保护上走得非常彻底:所有录像均保存在本地,绝不借助第三方云服务,数据也永远不会离开你自己的网络。你可以利用手头闲置的一块 Linux 开发板和一只 USB 摄像头就搭建起一个功能齐全的安防系统,不存在任何持续消费。整套软件针对低功耗设备深度优化,能够在入门级硬件上流畅运行,并号称具备极高的硬件兼容性,支持市面上大多数标准 USB 摄像头。

打开网易新闻 查看精彩图片

在功能清单中,CheapSecurity 提供了基于 MJPEG 的实时视频流和一套网页控制面板。它的运动检测引擎采用帧差法,触发后可自动录像,并带有一段预录制缓冲,确保不会漏掉事件发生前的画面。报警机制支持邮件通知,运动开始的瞬间会发送一张截图快照。它还内建了 Telegram 集成,录像文件会自动上传到 Telegram,同时提供 /snapshot、/video 和 /help 三个机器人命令,方便随时用聊天工具获取实时画面或回放视频。

针对夜间低光照环境,软件加入了一个基于 CLAHE(限制对比度自适应直方图均衡化)并配合亮度与对比度增强的软件算法,在不依赖外部补光灯的情况下提升暗部细节。录像管理方面,支持批量操作:可以一次性选中多条录像,一键发送到 Telegram、打包下载为 ZIP 文件或直接删除;存储清理策略允许按保留天数、总占用空间两个维度自动清理,并在磁盘空间极端不足时启动紧急清理,确保系统运行不受影响。项目已内置 systemd 自启动配置,部署后即可随板子一同开机运行,整个代码库采用 GNU AGPLv3 许可证发布。

系统环境要求并不高:需要 Python 3.10 或更高版本,以及具备 V4L2 支持的 OpenCV。核心硬件就是一只默认路径为 /dev/video0 的 USB 摄像头;如果需要联动 Telegram,则额外准备一个 Bot Token,邮件告警则需要 SMTP 凭据。部署的第一步是验证 OpenCV 是否可用,开发者给出了两种安装路径:推荐在 ARM 开发板(如 Odroid XU4)上使用发行版自带的 OpenCV 包,因为这些预编译版本通常针对板子进行过深度优化;在 x86/amd64 机器或没有系统级包时,则通过 pip 拉取 opencv-python-headless,因为应用本身不需要任何 GUI 组件。

在虚拟环境设置上,项目也细分了两种情况。若系统已安装了 OpenCV,可以直接建立一个能访问系统 site-packages 的虚拟环境,如此一来,系统级的 cv2 模块就能在虚拟环境中继续使用;若选择纯 pip 安装,则流程更加清晰——创建好普通虚拟环境后,依次安装 opencv-python-headless 和项目本身即可。但要注意,某些较旧的 ARM 开发板可能无法获得 opencv-python-headless 的预编译 wheel,这种情况下只能走系统包安装的方式。

CheapSecurity 的出现,恰好踩在了家庭监控从付费云服务向本地化、隐私化过渡的时间点上。它无意挑战成熟的 NVR 厂商,而是用一套极简、透明且不依赖外部平台的技术方案,给出了一个明确信号:用你手边已有的硬件,就能建成一个完全由你说了算的监控系统。