开源倾情奉献:基于.NET打造IP智能网络视频监控系统(一)开放源代码
本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载。
开源倾情奉献系列链接
- 开源倾情奉献:基于.NET打造IP智能网络视频监控系统(一)开放源代码
- 开源倾情奉献:基于.NET打造IP智能网络视频监控系统(二)基础类库介绍
- 开源倾情奉献:基于.NET打造IP智能网络视频监控系统(三)命令行工具集
- 开源倾情奉献:基于.NET打造IP智能网络视频监控系统(四)服务端介绍
- 开源倾情奉献:基于.NET打造IP智能网络视频监控系统(五)客户端介绍
这是什么系统?
OptimalVision(OV)网络视频监控系统(Video Surveillance System),是一套基于.NET、C#、WCF、WPF等技术构建的IP网络视频监控系统。设计与实现该系统的初衷是希望在家用电脑中部署该系统,连接本地或局域网设备,通过浏览器或手机客户端浏览宝宝实时视频,也就是俗称的“宝宝在线”或“家庭看护”。
详情参考博文《基于.NET打造IP智能网络视频监控系统》。

更多系统截图请参考博文《基于.NET打造IP智能网络视频监控系统》。
为什么开源?
由于业余时间总是有限,完成系统中的服务、配置、采集、传输和桌面GUI部分后,继续完成后续移动客户端的动力与兴趣明显减弱,尤其是宝宝出生后的很长一段时间内基本没有进展,逐渐地演变为演练和测试所关注技术和模式的实验性项目。
总结了几点开放源代码的原因:
- 社区分享。独乐乐不如众乐乐,孤独腐朽的代码没有意义,与社区分享和探讨也是一种乐趣。
- 精力有限。利用业余时间构建,挤占的是陪家人和孩子的时间,要不也不会积累了三年。
- 知识积累。据说自己查看六个月前写的代码,如果感觉需要改进,则就成长了。
- 拓展视野。个人的视角总是短视,接受更多人的批评与指正,可以促进学习和拓展视野。
代码在哪里?
代码托管在 GitHub 网站,所有代码基于 Microsoft .NET Framework 4.0 编译。
代码目录结构
下面是源代码目录结构:
- assets - 系统使用到的资源,例如图片等
- bin - 系统编译输出目录
- Debug - Debug模式输出目录
- build - 编译系统脚本
- docs - 系统设计和文档
- lib - 系统引用的类库
- src - 系统代码
- Crust - MVVM模式框架(改编自 MVVM Light Toolkit)
- Foundation - 系统基础类库(参考《开源倾情奉献:基于.NET打造IP智能网络视频监控系统(二)基础类库介绍》)
- Knifer - 命令行工具集(参考《开源倾情奉献:基于.NET打造IP智能网络视频监控系统(三)命令行工具集》)
- Rukbat - 视频监控系统代码
- Common - 前端和后端通用代码
- Service - WCF服务代码(参考《开源倾情奉献:基于.NET打造IP智能网络视频监控系统(四)服务端介绍》)
- GUI - WPF客户端代码(参考《开源倾情奉献:基于.NET打造IP智能网络视频监控系统(五)客户端介绍》)
- tests- 各种测试
- tools - 各种工具,例如清理编译目录脚本等
参考了哪些类库?
下面罗列了系统所学习、引用、参考、改编、摘抄的开源类库的不完全列表。
- AForge.NET
- Accord.NET
- NAudio
- nVLC
- Speex
- C# WebServer
- FFmpeg
- FFmpeg.NET
- Flowplayer
- iSpy
- ZoneMinder
- ONVIF Device Manager
- Google GData
- GMap.NET
- Json.NET
- Dynamic Json
- Hammock
- AutoMapper
- SocialKit / LightRest
- Microsoft Enterprise Library
- Microsoft Unity
- System.Data.SQLite
- RavenDB
- RaptorDB
- MongoDB
- MongoDB C# Driver
- Windows Presentation Foundation (WPF)
- MVVM Light Toolkit
- Caliburn.Micro
- MEFedMVVM
- MVVM Foundation
- Phoenix MVVM
- WPF MediaKit
- WPF Multiple Document Interface (MDI)
- MDI Container for WPF
- AvalonDock
- WPF Google Map Control
- WPFSpark
- WPF 3DTools
- Odyssey WPF Controls
- Extended WPF Toolkit™ Community Edition
- Calendar Control in WPF
- patterns & practices: Prism
- Facebook Developer Toolkit
- Microsoft Health Common User Interface (CUI)
- Mahapps.Metroa UI Toolkit for WPF
- Spark View Engine
- ReactiveUI
- CommonServiceLocator
- Ninject
- StructureMap
- NetMQ
- FunnelWeb
- Quartz.NET
- Task Scheduler Engine
- SuperSocket
- CommonLibrary.NET
- NSubstitute
GitHub 本周上榜,感谢各位朋友的支持。

本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载。
开源倾情奉献:基于.NET打造IP智能网络视频监控系统(一)开放源代码的更多相关文章
- 基于.NET打造IP智能网络视频监控系统
开源倾情奉献:基于.NET打造IP智能网络视频监控系统(一)开放源代码 开源倾情奉献系列链接 开源倾情奉献:基于.NET打造IP智能网络视频监控系统(一)开放源代码 开源倾情奉献:基于.NET打造 ...
- 【实践】如何利用tensorflow的object_detection api开源框架训练基于自己数据集的模型(Windows10系统)
如何利用tensorflow的object_detection api开源框架训练基于自己数据集的模型(Windows10系统) 一.环境配置 1. Python3.7.x(注:我用的是3.7.3.安 ...
- EasySwoole+ElasticSearch打造 高性能 小视频服务系统
EasySwoole+ElasticSearch打造高性能小视频服务 第1章 课程概述 第2章 EasySwoole框架快速上手 第3章 性能测试 第4章 玩转高性能消息队列服务 第5章 小视频服务平 ...
- 嵌入式应用开发第四阶段-基于rk3399的视频监控系统
一.需求分析 伴随着嵌入式技术.图像处理技术和无线网络传输技术的发展,传统模拟视频监控系统和基于PC的远程视频监控系统由于自身的不足,已经无法满足现代社会应用中不断涌现出来的新需求,于是基于嵌入式技术 ...
- 开源视频监控系统:iSpy
iSpy是一个开源的视频监控软件,目前已经支持中文.自己用了一下,感觉还是很好用的.翻译了一下它的介绍. iSpy将PC变成一个完整的安全和监控系统 iSpy使用您的摄像头和麦克风来检测和记录声音或运 ...
- 优秀开源项目之一:视频监控系统iSpy
iSpy是一个开源的视频监控软件,目前已经支持中文.自己用了一下,感觉还是很好用的.翻译了一下它的介绍. iSpy将PC变成一个完整的安全和监控系统 iSpy使用您的摄像头和麦克风来检测和记录声音或运 ...
- 基于Android的远程视频监控系统(含源码)
基本过程是android作为socket客户端将采集到的每一帧图像数据发送出去,PC作为服务器接收并显示每一帧图像实现远程监控.图片如下(后来PC端加了个拍照功能)... (PS.刚学android和 ...
- 基于 HTML5 WebGL 的低碳工业园区监控系统
前言 低碳工业园区的建设与推广是我国推进工业低碳转型的重要举措,低碳工业园区能源与碳排放管控平台是低碳工业园区建设的关键环节.如何对园区内的企业的能源量进行采集.计量.碳排放核算,如何对能源消耗和碳排 ...
- Qt编写视频监控画面分割界面(开源)
其实qt应用在安防领域还是蛮多的,尤其是视频监控系统,但是网上几乎没有看到qt做的最基础的视频监控画面分割的demo,今天特意花几分钟提取出来,开源放出来.欢迎大家多多点赞!源码下载:点击打开链接 运 ...
随机推荐
- Python学习(基础简绍)
今天终于开始了python的学习,至于python的历史我就不说了,百度百科中太详细了,我这里说就是关公面前耍大刀,太自不量力了,所以,废话不多说,直接讲讲我惊天学习Python的收获吧. 1.Pyt ...
- C# 序列化反序列化
序列化,就是格式化,是把一个对象以某种格式进行呈现.主要有三种,1.二进制序列化,2.XML序列化,3.JavaScript序列化. 下面讲一下二进制序列化的过程 1.在需要序列化的类的前面,标记 ...
- sql update多表联合更新
update tabA set PrintTag=c.dp_state from tabA a inner join tabB b on a.Code=b.design inner join tabC ...
- 基本套接字编程(7) -- udp篇
1. UDP概述 UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互 ...
- javascript code snippet -- 保留小数点位数
js1.5以上可以利用toFixed(x) ,可指定数字截取小数点后 x位 for example : //round "original" to two decimals var ...
- nodejs研究笔记
首先呢,安装 1:安装mongodb-win32-x86_64-3.2.5-signed.msi 2:手动创建目录 如 C:\data\db 及 C:\data\dbConf 3:管理员身份运行 cm ...
- gc roots 垃圾回收
gc roots包括以下几个: 虚拟机栈(栈桢中的本地变量表)中的引用对象 方法区中的类静态属性引用的对象 方法区中的常量引用的对象 本地方法栈中JNI(即native方法)的引用的对象 java,c ...
- 如何定制Activity的标题栏
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.main); //自定义标题栏 mW ...
- android开源系列之——xUtils 开源库
http://blog.csdn.net/lijunhuayc/article/details/40585607
- Bootstrap的安装
在了解了HTML和CSS.JS之后,我咨询了之前做过这一块的学长,得知了Bootstrap的存在. Bootstrap (Web前端CSS框架) Bootstrap,来自 Twitter,是目前很受欢 ...