1.扫盲

1.1 IPC和NVR的区别

IPC是IP Camera,即网络摄像头。
拉流客户端。就是NVR是Network Video Record,即网络视频录像机,就是支持保存回放监控录像的服务器。更通用一点,就

传统数据流:

IPC(拍摄) → 网络传输 → NVR(存储/管理) → 用户(查看/回放)

随着家用摄像头的兴起,云存储逐渐流行,家用一般不会单独弄一个存储服务器,而是由厂家提供租用式的云服务:

IPC + SD卡 + 云服务

随着AI的兴起,AI也逐渐加入到摄像头的基本功能中:

IPC + SD卡 + 云服务+AI

1.2 IPC基础

  • 国内主流IPC厂家:海康,大华,宇视等。
  • IPC对外的数据流有主流和子流之分。主流画质高,用于保存。子流画质低,用于预览。

1.3 音视频系统应用架构

有两种:

  • C/S架构:传统架构,需要安装特定的客户端软件。
  • B/S架构:更轻便和流行的架构,在网页中完成一切视频处理,技术更新。

围绕应用架构展开设计的,应用为王。就是所有音视频技术都

2. 协议

2.1 ONVIF协议

ONVIF协议就是网络摄像头控制协议。

2.1.1 架构

架构图:

在这里插入图片描述
先学习一下什么是Web Service:

  • Web Service:根据我的理解,Web Service和它的名字一样,是一套网络服务标准规范,通过这个协议,网络上的节点可以发现服务,调用服务,就是这么简单。SOAP是调用协议(SOAP=XML+HTTP/STMP+RPC),WSDL是接口头文件。和互联网的微服务架构基本上是一个东西。每个技术都各司其职,都只负责消除一个层级的挑战。
  • Onvif协议:理解什么是Web Services

可能有的人会问了,为什么用Web Service,为什么不用RESTful API,直接用Get/Post+Json也好啊,为什么搞这么复杂?我也有这个疑问,看看AI怎么说:

在这里插入图片描述
总的来说,就是Web Service更专业,优点大于缺点。特定场景下,不是RESTful API不行,而是Web Service更好。

2.1.2 协议规范:一手资料

学习协议最好要有一手资料,二手资料水平层次不齐,就像是犹抱琵琶半遮面一样,学得云里雾里。

  • Onvif Specifications:官方定义的网络摄像头服务接口,就是接口文档,按照接口文档去调用对应的接口,控制摄像头,我们的目的就达到了。

下面是官方的图:
ONVIF接口
html文件。就是实际上就这么多接口而已。接口定义文件,官方也给写好了,直接拿来生成代码,就可以用了,很简单吧?有人说不对啊,怎么wsdl在浏览器里看起来是一个页面?其实这是浏览器渲染的效果,右键查看网页源代码,就可以看到,其实网页是一个wsdl文件,而不

2.1.3 实操

大致架构已经清楚,但没有动手实操过,等于是半懂不懂。下面是实操的教程:

强调两点:

  • gsoap生成代码过程分两步:用wsdlh,先根据wsdl生成头文件;再用soapcpp2,将头文件生成cpp记录。
  • 总体编程逻辑:ws服务发现->获取服务地址->获取能力->获取子服务地址->调用->结束

2.2. GB28181

2.2.1 最新版本

GB/T 28181-2016已被废止,新的标准GB/T 28181-2022于2023年7月1日正式实施。新国标全文下载地址:

既是标准又是教程,建议全文阅读。

2.3 RTSP/RTCP/RTP协议簇

2.4 SIP协议

2.5 协议串讲

3. 流媒体格式

4.开发框架和工具

4.1 WebRTC

4.2 FFmpeg

4.3 流媒体服务器

4.3.1 ZLMediaKit

基于C++的开源流媒体服务器,国产。

4.3.2 SRS

基于C++的开源流媒体服务器,国产。

4.3.3 EasyDarwin

基于Go的RTSP 流媒体服务器,能力稍弱,适合学习和测试,国产。

4.3.4 Monibuca

基于Go的开源流媒体服务器,国产。

4.3.5 RED5

基于Java的老牌流媒体服务器,技巧比较老,性能一般,非国产。

posted on 2025-09-15 19:47  lxjshuju  阅读(16)  评论(0)    收藏  举报