首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 归档 标签 关于

Show HN:CheapSecurity – 适用于 Linux SBC 的轻量级自托管 CCTV

2026-07-26 1 阅读 约8分钟阅读 zeldone
分享:
字号:
CheapSecurity 该项目提供了一个轻量级、自托管的 CCTV 解决方案,专为基于 Linux 的单板计算机 (SBC) 和标准 USB 网络摄像头而设计。它通过让您的视频数据完全由您控制,为家庭监控提供了一种经济实惠、注重隐私的替代方案。项目理念隐私第一:通过在本地存储所有素材,该系统无需第三方云订阅,并确保您的数据永远不会离开您的网络。经济高效:利用现有硬件(例如备用 Linux 板和 USB 网络摄像头)构建功能齐全的监控系统,无需重复付费。极简架构:该软件经过优化,可在低功耗设备上高效运行,即使在入门级硬件上也能确保高性能。主要特性 与硬件无关:与各种标准 USB 网络摄像头高度兼容。资源高效:专门针对基于 Linux 的主板(例如 Raspberry Pi、Orange Pi 或类似的 SBC)进行了优化。数据主权:完全控制您的存储路径、保留策略和访问方法。简单部署:专为快速设置和轻松维护而设计。功能 带网络仪表板的实时 MJPEG 流 带帧差异的运动检测 带预运动缓冲区的自动记录 运动开始时通过快照图片发送电子邮件警报 Telegram 集成:记录运动后自动上传视频 Bot 命令:/snapshot、/video <秒数>、/help 夜间模式低光增强(软件 CLAHE + 亮度/对比度增强) 录制批量操作:选择全部、发送到 Telegram、下载 ZIP、删除 按年龄、总大小和删除存储清理紧急低磁盘清理 systemd 自动启动就绪 已获得 GNU AGPLv3 许可 要求 Python 3.10 或更高版本的 OpenCV,支持 V4L2(请参阅下面的安装选项) USB 网络摄像头(默认为 /dev/video0) 可选:用于 Telegram 通知的 Telegram bot 令牌 可选:用于电子邮件警报的 SMTP 凭据 快速启动 验证 OpenCV 是否可用: python3 -c " import cv2; print(cv2.__version__) " 如果未安装 OpenCV,则您有两个选项: 选项 A — 使用系统 OpenCV 软件包(建议在 Odroid XU4 等 ARM 板上使用,其中预构建的系统软件包通常针对该板进行了优化)。选项 B — 通过 pip 安装 OpenCV(在 x86/amd64 机器上或没有可用系统包时很方便)。使用 opencv-python-headless 因为该应用程序不需要 GUI。创建并激活虚拟环境并安装应用程序: 选项 A:系统 OpenCV(推荐用于 ARM) 这将创建一个可以查看系统站点包的 venv,因此系统 cv2 在 venv 中可用。 cd $HOME /CheapSecurity python3 -m venv venv --system-site-packages source venv/bin/activate pip install -e 。选项 B:通过 pip 安装所有内容 如果您没有系统 OpenCV 或者更喜欢独立的 venv,请使用此选项。 cd $HOME /CheapSecurity python3 -m venv venv source venv/bin/activate pip install opencv-python-headless pip install -e 。注意:在某些较旧的 ARM 板上,pip opencv-python-headless 轮可能不可用或可能很慢。如果发生这种情况,请从发行版的软件包管理器安装 OpenCV 并使用选项 A。找到您的网络摄像头设备(通常为 /dev/video0 ): v4l2-ctl --list-devices 将 config.json.example 复制到 config.json 并编辑它: cp config.json.example config.json nano config.json 设置摄像头设备、分辨率和帧速率 如果需要电子邮件警报,请填写 SMTP 凭据 如果需要,请填写 Telegram 机器人令牌和聊天 ID Telegram 上传安全性:config.json 列在 .gitignore 中,并且绝不能提交。它包含密码和令牌。始终编​​辑 config.json ,而不是 config.json.example 。如果添加新设置,请更新这两个文件,以便示例保持同步。运行应用程序: ./venv/bin/python -m Cheapsecurity.app 在浏览器中打开仪表板: http://:5000 配置 编辑 config.json : 部分键 描述 摄像头设备 V4L2 设备索引 ( 0 = /dev/video0 ) 摄像头宽度 , 高度 , fps 捕获分辨率和帧速率 摄像头 night_mode 启用低光增强摄像头 night_mode_fps 夜间模式下的目标 FPS(摄像头可能会忽略此)摄像头night_mode_gain 夜间模式下的目标模拟增益(摄像机可能会忽略此) 摄像机 night_mode_brightness 夜间模式下摄像机的亮度增强 night_mode_contrast 夜间模式下的对比度增强 运动阈值 像素差异阈值 (0-255) 运动 min_area 触发运动的最小轮廓区域(全分辨率像素) 运动 Cooldown_seconds 运动停止后继续录制 运动比例 运动检测的缩小因子(节省 CPU) 录制目录 保存视频的录制位置 max_duration_seconds一个剪辑记录的最大长度 pre_buffer_seconds 剪辑记录编解码器中包含运动之前的秒数 启用首选 FourCC 编解码器(对于低 CPU 的 MJPG,对于较小的文件的 mp4v)通知 发送有关运动通知的电子邮件警报 smtp SMTP 服务器、端口、用户名、密码、来自以下位置的 TLS 通知
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱