NVR(网络视频录像机)是一种通过网络IP摄像头录制视频、存储视频,以便于智能识别、跟踪查看的系统。
NVR在视频监控系统中起到至关重要作用,因为它能够提供集中存储、管理以及播放视频。配合人工智能视觉分析,NVR可以支持对象检测、运动检测、人脸识别、行为监测、实时警报等功能,这些技能对于实现住宅、商业环境、交通、公共场所等场景的智能化监控至关重要。
在NVR技术选型时,可以从支持摄像头数量、存储容量、具备哪些AI能力、系统可扩展性等方面进行分析。
下面推荐一些比较优秀的开源免费NVR系统
01
Frigate
https://github.com/blakeblackshear/frigate
开发语言:Python、TypeScript

Frigate是一个开源的NVR解决方案,旨在使用机器学习实习视频实时对象检测,使用OpenCV和Tensorflow在本地为IP摄像机执行实时对象检测。支持本地部署,处理视频源,确保隐私和性能。具备较高准确率和检测速度。
其功能特征包括:
实时对象检测:使用TensorFlow和其他机器学习框架进行准确的实时对象检测。
家庭助理集成:与家庭助理无缝集成,实现自动化和智能家居控制。
支持本地处理:在本地执行所有视频处理,确保隐私并减少对云的依赖。
多摄像头支持:轻松处理多个摄像头馈送。
事件记录:根据检测到的对象捕获和存储事件。
自定义检测区域:允许用户定义摄像机视野内的特定区域进行监控。
硬件加速:支持GPU加速,提高处理速度。
跨平台:与Docker兼容,使其可部署在各种平台上。
通过RTSP重新流式传输以减少与相机的连接数量
支持WebRTC、 MSE的低延迟实时视图
功能截图如下:
(1)实时仪表盘

(2)简化的审核工作流程

(3)摄像头擦洗

(4)内置遮罩和区域编辑器

02
SharpID DeepCamera
https://github.com/SharpAI/DeepCamera
开发语言:Python、TypeScript

DeepCamera旨在通过机器学习增强视频分析,能够与现有的NVR系统集成,提供物体检测、面部识别和车牌识别等高级功能。
它利用深度学习模型来提高实时识别和跟踪对象的准确性和效率。在需要高级视频分析的需求中,该工具能够提高安全性和监控能力。
DeepCamera通过人工智能驱动的视频分析系统,为用户提供了灵活、可定制的解决方案。
支持的平台包括:
Jetson Nano (ReComputer j1010)
Jetson Xavier AGX
MacOS 12.4
Windows 11
Ubuntu 20.04
03
Viseron
https://github.com/roflcoopter/viseron
开发语言:Python、TypeScript

Viseron支持多个摄像头源,允许全局监控设置,支持利用AI进行对象检测和监控,具有友好的用户界面。系统支持与智能家居等自动化平台集成。
用户可以定义针对特定区域的对象检测,检测到目标后实时发送通知,并且在事后可以轻松查看录制的镜头。
Viseron具备跨平台兼容性、可定制的存储选项以及对各种摄像头协议的支持,并且Viseron是一个完全开源的NVR解决方案,为项目定制和改造提供了较好的基础。
主要功能特征包括:
对象检测:它集成了基于AI的对象检测,例如Yolo、Dlib等,以识别和提醒用户有关特定对象,例如人,汽车或动物。
多摄像头支持:支持多个摄像头接入,以便于全方位的监控。
基于Web的用户界面:系统具有现代化的基于Web的用户界面,可轻松访问和管理摄像头源和设置。
可自定义的检测区域:用户可以在摄像机的视野内定义特定区域,以聚焦于目标检测。
快照和视频记录:Viseron在检测到物体或运动时记录快照和视频,稍后可以查看。
与智能家居系统集成:它可以与家庭助手等流行的家庭自动化平台集成,以增强智能家居安全性。
实时报警:当检测到物体时,系统可以向用户发送实时通知,允许立即响应。
结合时间轴播放视频视频:它包括一个视频播放功能,带有时间轴视图,可以轻松浏览录制的素材。
跨平台兼容性:Viseron可在各种平台上运行,包括Docker,确保部署的灵活性。
可配置的存储选项:用户可以配置记录的保存时间,根据可用资源优化存储使用。
支持多种摄像头协议:支持RTSP、ONVIF等常见摄像头协议,兼容多种IP摄像头。
低资源使用率:Viseron旨在高效运行,即使在Raspberry Pi等低功耗设备上也是如此。
04
go2rtc
https://github.com/AlexxIT/go2rtc
开发语言:Golang

go2rtc是一个免费开源摄像头流媒体应用程序,支持RTSP、WebRTC、HomeKit、FFmpeg、RTMP等。它是用Go语言开发的,因此具备跨平台性,适用于Windows、Linux和macOS。其实Frigate也是基于go2rtc开发的。
功能特性包括:
适用于所有操作系统(Windows、macOS、Linux、ARM),并且零依赖和零配置
支持多种协议、低延迟
支持RTSP、RTMP、DVRIPDVD、HTTP(FLV/MJPEG/JPEG/TS)、FLV/MJPEG/JPEG/TS等协议的输入,支持USB摄像头和其他视频来源。
支持使用FFmpeg接入任何流媒体
支持以RTSP,WebRTC,MSE/MP4,HomeKit HLS或MJPEG协议输出。
可以将任何源发布到流行的流媒体服务(YouTube,Telegram等)
是世界上第一个支持HomeKit相机流媒体的项目
在浏览器中通过WebRTC支持H265 (仅限Safari)
支持通过FFmpeg对不支持的编解码器进行动态转码
可以在一些相机与扬声器播放音频文件和直播流
多源双向编解码器
通过ngrok在局域网网络进行流传输。
可以集成到任意智能家居平台,也可以单独使用。
05
Moonfire NVR
https://github.com/scottlamb/moonfire-nvr
开发语言:Rust、TypeScript
热度:1K Star


Moonfire NVR是一个开源的安全摄像头网络录像机。它将IP摄像头的H.264 over-RTSP数据流以混合模式保存到磁盘(视频帧保存到磁盘的目录中,其他数据则保存到SQLite3数据库)。并且可以在任意时候生成Mp4文件,无需对视频帧进行解码、分析或者重新编码,因此消耗CPU也比较少。在RaspberryPI2 上处理6个1080p/30FPS的流媒体,CPU的使用率不到10%。
主要功能特性包括:
高效的视频录制:Moonfire NVR经过优化,可以在最小的资源使用环境下高效地录制来自IP摄像机的视频流。
基于Web的用户界面:它提供了一个友好的Web用户界面,便于管理和监控摄像机的源和记录。
多摄像头支持:NVR同时支持多个摄像头,允许全局监控设置。
基于时间的搜索:用户可以按特定时间间隔搜索录像,从而轻松快速找到相关镜头。
支持H.264和H.265:Moonfire NVR支持H.264和H.265视频编解码器,这两种编解码器通常用于高效视频编码。
自动删除:系统会根据用户定义的保留策略,通过清理旧记录来自动释放磁盘空间。可配置的录制质量:用户可以调整录制质量设置,以平衡存储要求和视频清晰度。
跨平台兼容性:可在各种平台部署,包括Linux和Docker,确保部署的灵活性。
安全访问控制:支持HTTPS和用户身份验证,确保系统的安全访问。
低延迟流媒体:提供低延迟视频流媒体,可实现实时监控和快速响应。
事件检测:它包括基本的事件检测功能,使用户能够根据视频源中的特定事件获得通知或触发操作。
06
iSpy
https://github.com/ispysoftware/iSpy
开发语言:C#

iSpy是一款开源视频监控软件,支持无限个数的摄像头设备。它具有先进
的运动和音频检测,可定制的警报,PTZ控制和云集成。
该平台可通过插件进行扩展,并通过Web界面提供远程管理。iSpy兼容ONVIF设备,可以部署在Windows上,也可以通过Docker部署在其他系统上。
iSpy的功能特点
支持多摄像头:支持无限数量的相机和设备。
运动检测:先进的运动检测功能,可配置的灵敏度。
音频检测:监控和记录音频触发。
Web监控界面:提供基于Web的界面,用于远程监控和管理。
云端整合:支援云端储存及透过iSpyConnect服务进行远端存取。
警报和警告:可通过电子邮件、短信或推送通知自定义警报。
ONVIF支持:与ONVIF摄像机和设备兼容。
支持调度:根据时间或者视频对象检测内容录制视频。
PTZ控制:支持云台摄像机控制。
跨平台:可在Windows上使用,并通过Docker用于其他平台。
插件和扩展:可通过插件扩展以获得更多功能。
07
Camera.UI
https://github.com/seydx/camera.ui
开发语言:JavaScript(Vue)

Camera.UI是一个基于Vue框架的Web系统,可以管理多个摄像头、具备运动检测能力、支持ONVIF、支持HomeKit集成,具备安全访问控制能力,提供了可定制的警报功能,支持通过Docker在各种平台上高效运行。
功能特征:
基于Web的界面:用于管理和查看摄像头源的简单且响应迅速的Web UI。
多摄像头支持:同时支持多个摄像头。
ONVIF兼容性:与符合ONVIF标准的相机兼容。
运动检测:包括运动检测功能。
HomeKit集成:与Apple HomeKit无缝集成。
可自定义警报:可配置的运动事件警报和通知。
录制管理:管理视频录制和存储的选项。
用户身份验证:通过用户身份验证实现安全访问。
跨平台:在Docker上运行,可以部署在各种平台上。
低资源使用率:针对资源消耗进行了优化。
08
SentryShot
https://github.com/SentryShot/sentryshot
开发语言:Rust、TypeScript

SentryShot是一个开源的NVR解决方案,支持多个摄像头、支持视频录制和播放,具有运动检测和实时通知功能。提供了基于Web的管理界面。具备跨平台兼容,较低的资源占用率。
功能特征:
基于Web的界面:提供基于Web的界面,便于监控和管理。
多摄像头支持:同时支持多个摄像头馈送。
运动检测:包括运动检测功能。
实时警报:当检测到运动时发送实时警报。
录制和回放:提供视频录制与回放功能。
跨平台兼容性:可以部署在各种平台上,包括Docker。
可自定义设置:允许自定义检测区域和记录设置。
低资源使用率:旨在实现轻量化和资源效率。
另外,还有一些NVR开源项目这里没有一一列出介绍。
以下是几个项目在AI特性、操作系统支持以及开源协议方面的比较,为技术选型提供参考。
