Bluecherry 介绍与选型指南
Bluecherry(Linux 自托管 NVR 网络视频录像机,C++/PHP/MySQL)介绍与选型指南:项目身份与 v3 开源/v4 买断授权脉络、bc-server+nginx+MySQL 架构、功能特性、同类对比(ZoneMinder/Shinobi/Frigate)与选型建议,官方渠道溯源(2026-10-28)。
Bluecherry 介绍与选型指南
目标:全面认识 Bluecherry 这款 Linux 自托管 NVR 网络视频录像机,掌握其架构、功能、授权模式与同类产品的定位差异,为自建视频监控系统选型提供依据。本篇为认知篇,全部信息来自官方渠道联网溯源(查询日期 2026-10-28),不含本地实测内容;部署、配置与运维的实测内容见后续三篇。
一、环境信息
本篇信息来源与查询环境说明:
| 项目 | 内容 |
|---|---|
| 查询日期 | 2026-10-28 |
| 官网 | https://www.bluecherrydvr.com |
| 服务端源码仓库 | https://github.com/bluecherrydvr/bluecherry-apps |
| 客户端源码仓库 | https://github.com/bluecherrydvr/unity |
| 官方社区论坛 | https://forums.bluecherrydvr.com |
| 社区频道 | Matrix #bluecherry:matrix.org、Discord discord.gg/Cx2FeVE(两网实时互通) |
| 官方安装引导 | https://install.bluecherrydvr.com/packages |
| 取证方式 | 官网首页/下载页、GitHub 组织仓库页、官方论坛发布帖(均为当日实际访问取证) |
💡 技术拓展:NVR(Network Video Recorder,网络视频录像机)与 VMS(Video Management System,视频管理系统)常被混用。NVR 的核心职责是「拉取摄像头视频流 → 落盘存储 → 提供回放」,强调录像的可靠性;VMS 则在此基础上叠加更多管理面能力(多级用户、电视墙、门禁联动等)。Bluecherry 官方自称 video surveillance system,功能上是一个带完整 Web 管理面的 NVR,介于纯录像机与大型 VMS 之间。
二、软件概述
2.1 项目身份
Bluecherry 是一款运行在 Linux 服务器上的自托管网络视频录像机(NVR),视频全部保存在本地存储,不依赖云服务,官方口号是 "Your cameras. Your recordings. Your control."(你的摄像头、你的录像、你的控制权)。
项目的几个关键身份信息(2026-10-28 实查):
| 维度 | 信息 |
|---|---|
| 服务端技术栈 | C++(录像核心 bc-server)+ PHP(Web 管理界面)+ MySQL/MariaDB(元数据)+ nginx(Web 前端) |
| 服务端许可 | GPLv2(GitHub 仓库 bluecherrydvr/bluecherry-apps) |
| 服务端最新稳定版 | 3.1.14(2025-08-31 发布,官方论坛发布公告) |
| 当前规模 | 276 stars / 80 forks(GitHub 仓库页实查,2026-10-28) |
| 客户端 | Flutter 跨平台客户端 bluecherrydvr/unity(GPLv3),另有旧版 C++ 桌面客户端 bluecherrydvr/bluecherry-client |
| 商业主体 | Bluecherry(创始人 Curtis Hall),2025 年宣布回归全职开发 |
| 部署形态 | 官方 .deb 包(APT 仓库)/ Docker Compose 脚本 |
2.2 发展脉络
Bluecherry 是开源视频监控领域的老牌项目,发展史上有明显的三个阶段:
- 商业硬件时代(约 2010—2016):Bluecherry 公司销售配套的 PCIe 视频采集卡(solo6x10 芯片,内核驱动仓库
bluecherrydvr/solo6x10至今仍在),软件与硬件绑定,采用商业授权。 - 低谷与重启(约 2017—2024):项目一度放缓。2025 年 8 月发布服务端 3.1.14,官方公告明确 "License system has been removed - this is now a free and open source release"(授权系统已移除,转为免费开源版本),设备数量限制代码也已在源码中移除(
checkLimitDevices()恒返回 true)。 - v4 时代(2025 至今):官网宣布 "BLUECHERRY IS BACK"(回归活跃开发)。Version 4 处于 Community Preview 阶段,引入新 Web UI、事件证据包(incident evidence bundles)与本地车辆/人员检测;商业模式调整为前 4 路摄像头免费、每增加一路 10 美元买断(perpetual,永久授权)、无订阅费。
💡 技术拓展:Bluecherry 的授权模式属于典型的「核心开源 + 新版商业」双轨制:v3.1.x 是完整的免费开源版本(GPLv2),可以无限制地自托管使用;v4 的增值能力(本地 AI 检测等)则通过买断制授权回收成本。选型时应明确自己用的是哪个大版本——本专栏后续三篇均基于 v3.1.14 实测,属于完全免费开源的一支。
三、核心架构
3.1 组件构成
Bluecherry 服务端由四个协作组件构成(依据官方仓库与发行包结构整理):
| 组件 | 技术 | 职责 |
|---|---|---|
| bc-server | C++(基于 libav/ffmpeg 库) | 核心守护进程:RTSP 拉流、移动侦测、持续/事件录像、MP4 落盘、RTSP 转发流、HLS 直播流、存储阈值管理 |
| Web 管理界面 | PHP + nginx + PHP-FPM | 设备管理、录像计划、用户权限、事件回放、系统设置(HTTPS 7001 端口) |
| MySQL/MariaDB | 关系数据库 | 元数据中心:设备、用户、事件、媒体索引、全局配置(24 张表) |
| rrdtool | 时序数据库 | 3.1.14 起新增的系统监控图表(CPU/内存/磁盘历史曲线) |
3.2 数据流与端口
一次典型的录像流程:
RTSP 摄像头 ──RTSP拉流──▶ bc-server ──移动侦测/计划判定──▶ MP4 录像落盘
│ (按 年/月/日/设备ID 分层)
├──▶ RTSP 转发流(7002 端口,/live/<设备ID>,供客户端直连观看)
└──▶ HLS 切片(Web 实时预览用)
Web 浏览器 ──HTTPS 7001──▶ nginx + PHP ──读写──▶ MySQL(事件/媒体索引)
核心端口与访问入口(官方发行包默认值):
| 端口 | 协议 | 用途 |
|---|---|---|
| 7001 (TCP) | HTTPS | Web 管理界面与回放(nginx 承载,默认自签名证书) |
| 7002 (TCP) | RTSP | 摄像头流转发/重分发(客户端观看直播,需认证) |
| 3306 (TCP) | MySQL | 数据库(仅本机访问的默认收口) |
3.3 摄像头接入方式
Bluecherry 支持两类视频源,这也是它作为 NVR 的硬件前置要求:
- 网络摄像头(主推):RTSP 协议直连,支持 ONVIF 自动发现(内置 Node.js ONVIF 实现
bluecherrydvr/onvif),填写 IP、端口、RTSP 路径即可接入,可选主/副码流双流配置; - 本地采集卡(传统):V4L2 设备,历史上主要服务自家 solo6x10 系列 PCIe 采集卡,面向模拟摄像头场景。
没有摄像头也能验证功能:任何能产出标准 RTSP 流的软件源都可以充当"虚拟摄像头"(如 ffmpeg 的 testsrc 合成流),本专栏 B2/D1 两篇正是用 ffmpeg 合成 RTSP 流完成全链路实测的,这是无硬件条件下验证 NVR 的标准做法。
四、功能特性
依据官网特性区与 3.1.14 版本公告(2026-10-28 溯源):
| 功能 | 说明 |
|---|---|
| 持续录像 | 7×24 小时按周计划(168 小时格)逐设备/逐全局配置,单文件时长上限可配(默认 900 秒轮转) |
| 移动侦测录像 | 服务端软件侦测(基于帧差/时序分析),可配置灵敏度区域图(motion map)、最小/最大触发面积、预录与后录缓冲(默认各 3 秒) |
| 双流支持 | 主码流录像 + 副码流预览,节省带宽与解码压力 |
| RTSP 转发流 | 摄像头流在 7002 端口重分发,桌面/移动客户端直连观看,减轻摄像头并发压力 |
| HLS 实时预览 | Web 端实时观看默认走 HLS(G_LIVEVIEW_VIDEO_METHOD=HLS) |
| 事件系统 | 录像事件/系统事件分级(info/warn/alrm/crit),支持事件标签、评论、归档 |
| 用户权限 | 多用户 + 细粒度权限位(Web 访问、设备列表、PTZ、录像计划、备份等),支持通知时间计划 |
| 通知 | 邮件通知(SMTP)、移动端推送、Webhook 出站调用 |
| 存储治理 | 多存储路径按优先级管理,95% 高水位触发清理至 90%,数据库与文件系统自动同步(防"孤儿"索引) |
| 系统监控 | 3.1.14 起内置 rrdtool 图表 + JSON Stats API(/ajax/stats.php)与健康检查接口(/ajax/health.php/ping) |
| PTZ 控制 | 支持预置位管理(PTZPresets) |
| 客户端矩阵 | Windows/macOS/Linux 桌面 + Android/iOS 移动端(Flutter 客户端 unity) |
3.1.14 版本公告中的关键修复/改进(原文摘录,2026-10-28):录像与流系统的空指针保护(防段错误)、PHP mysqli 连接致命错误修复、HLS 清理竞态修复、线程互斥锁超时保护、数据库超时防死循环、TP-Link 等问题摄像头的音频流校验、VM 恢复后缺失录像的扫描补录脚本、XML 统计接口替换为健壮的 JSON API。
五、快速开始(最小可用示例)
以下流程来自官方下载页与官方安装引导脚本(溯源,未在本篇验证;本专栏 B2 篇在真实环境逐条实测过):
- 准备一台受支持的发行版:Ubuntu 20.04/22.04/24.04 或 Debian 11/12(官方脚本还支持 Linux Mint 21.x/22.x);
- 执行官方一键引导脚本(自动完成官方 APT 源配置、PHP 7.4 依赖与 bluecherry 包安装):
curl -s https://install.bluecherrydvr.com/packages | sudo bash
- 安装完成后访问
https://<服务器IP>:7001(HTTPS),默认管理员账号admin/bluecherry,登录后立即修改密码; - 在设备管理中添加 RTSP 摄像头(IP + 端口 + RTSP 路径),默认计划即 7×24 持续录像,录像文件落盘于
/var/lib/bluecherry/recordings。
Docker Compose 形态官方同样提供引导脚本(配套 MariaDB 与持久化卷):
curl -s https://install.bluecherrydvr.com/docker | sudo bash
六、适用场景与限制
6.1 适用场景
- 中小规模本地化监控:8~64 路摄像头规模的商铺、仓库、家庭、园区,要求录像数据不出内网;
- 有全平台客户端诉求:需要桌面 + 手机客户端(而非纯浏览器访问)的私有监控;
- 传统 NVR 使用习惯:持续录像 + 移动侦测的 classic NVR 工作流,计划式管理,不依赖 AI;
- Debian/Ubuntu 标准化交付:官方 .deb + systemd 托管,适合纳入标准化运维流程(见本专栏《Bluecherry .deb 裸机部署实战》)。
6.2 限制与注意
- 摄像头硬件是硬前置:没有 RTSP 摄像头(或合成的 RTSP 流源)就没有可录像的输入,选型前先盘点摄像头协议(RTSP/ONVIF);
- v3 无内置 AI 检测:v3.1.x 只提供服务端移动侦测,人员/车辆识别要等 v4(或外挂);
- 平台支持面较窄:官方仅发行 Debian/Ubuntu 系 .deb 包,CentOS/RHEL 系无官方包;
- Web 管理面为自签名 HTTPS:正式环境需要自行替换证书(发行包已内置 ssl 目录与证书脚本);
- 移动侦测为软件实现:多路高分辨率同时侦测对 CPU 有要求,核数与主频需按路数预留(官方未给出量化基准,建议实测,参见本专栏后续运维篇的实测环境)。
七、同类选型对比
7.1 量化对比表
同类自托管 NVR/VMS 对比(信息为各官方仓库/官网 2026-10-28 前后状态,星数为 shields.io 实时徽章):
| 维度 | Bluecherry | ZoneMinder | Shinobi | Frigate |
|---|---|---|---|---|
| GitHub 星数 | ||||
| 技术栈 | C++ + PHP + MySQL | C++ + PHP + MySQL/MariaDB | Node.js + MySQL | Python + go2rtc |
| 许可 | GPLv2(v3 全免费开源,v4 买断制增值) | GPLv2 | GPLv3(Open)/ 商业(Pro) | MIT(核心)+ 许可证限制条款 |
| 定位 | 传统完整 NVR(录像可靠性优先) | 老牌开源 NVR/VMS(2002 年起) | 中间件式多用户 NVR | AI 实时物体检测 NVR |
| 侦测能力 | 服务端移动侦测 + 周计划录像 | Zone 区域移动侦测(可联动) | 移动侦测 + 内嵌事件 API | 内置 AI 模型实时检测人/车/宠物等 |
| AI 支持 | v3 无,v4 规划本地车辆/人员检测 | 无内置(靠外挂) | 无内置(靠外挂) | 原生核心能力(Coral/OpenVINO/CPU TPU 加速) |
| 客户端 | 桌面三平台 + Android/iOS | Web 为主 + 第三方 zmNinja | Web 为主 | Web 为主 + Home Assistant 深度集成 |
| 部署形态 | 官方 .deb / Docker Compose | .deb / RPM / 容器 | .deb / 容器 | 容器为主(官方 Compose) |
| 授权/商业模式 | v3 免费;v4 前 4 路免费 + $10/路买断 | 社区免费 + 商业支持 | Open 免费;Pro 按节点收费 | 完全免费(Bluesky 许可争议见官方说明) |
Frigate 的详细选型与部署实测可参考站内专栏:《Frigate 0.18.2 介绍与选型指南》、《Frigate 0.18.2 Docker Compose 部署指南》。
7.2 选型建议
- 要"传统 NVR 的完整闭环"(录像 + 计划 + 客户端 + 权限)且团队熟悉 Debian/Ubuntu:选 Bluecherry,一条 .deb 安装路径走到底,运维模型与普通系统服务一致;
- 要 AI 物体检测(人/车识别、告警降噪):优先 Frigate,AI 是其原生核心能力;Bluecherry 需等 v4;
- 要多租户/多用户分权运营:Shinobi 的中间件式架构更贴合;
- 要 Zone 级精细化侦测联动与最长社区沉淀:ZoneMinder 生态最老牌,但 Web 体验与部署复杂度都更"古典";
- 数据主权优先:四者皆可自托管,Bluecherry 的差异化在于"本地存储 + 无云依赖"被写进产品主张,且客户端矩阵完整。
八、参考链接
- Bluecherry 官网(产品特性/定价/客户端下载):https://www.bluecherrydvr.com
- 服务端源码仓库 bluecherry-apps:https://github.com/bluecherrydvr/bluecherry-apps
- 官方论坛服务端 3.1.14 发布公告(2025-08-31):https://forums.bluecherrydvr.com/t/server-release-3-1-14/1050
- 官方 APT 安装引导脚本:https://install.bluecherrydvr.com/packages
- Flutter 客户端 unity 仓库:https://github.com/bluecherrydvr/unity
- Docker Compose 引导脚本:https://install.bluecherrydvr.com/docker
- 官方社区论坛:https://forums.bluecherrydvr.com