ONVIF⽹络摄像头(IPC)客户端开发—ONVIF介绍
1.前⾔:
⽹上已经有很多关于ONVIF开发的资料,这⾥概括介绍⼀下ONVIF协议以及介绍⼀下我⾃⼰在开发ONVIF⽹络摄像头的⼀些流程和经验,做个开发记录和经验总结,以备将来查看,也可供他⼈参考。如有错误,欢迎你的留⾔纠正,让我们共同成长。系列博客包括:
未完...
2.ONVIF:
3.技术框架:
ONVIF规范中设备管理和控制部分所定义的接⼝均以Web Services的形式提供。每⼀个⽀持ONVIF规范的终端设备均须提供与功能相应的Web Service。ONVIF中的其他部分⽐如⾳视频流则通过RTP/RTSP进⾏。
在ONVIF⽹络摄像头开发中,也就是包括了Web Server 和RTSP这两⼤部分,这两⼤部分的依赖不是⾮常⼤,在嵌⼊式设备中,可能没有⾜够的硬件资源来运⾏第三⽅多媒体处理库,⽐如FFmpeg,这时需要⾃⼰来封装RTSP流媒体传输协议。可以先从Web Server 中获取到了RTSP的URL之后,然后再通过这个URL来开发RTSP,这样可以去除对Web Server的依赖,简化程序的开发。
Web Server:
获取IPC的基本信息(⼚家信息、版本信息等);
修改IPC的系统⽇期、时间;
webserver接口开发修改IPC的⽹络配置(IP、⼦⽹掩码等);
获取/修改IPC摄像头的各种参数(视频分辨率、码率、帧率、OSD,云台控制等);
RTSP:
RTSP启动、停⽌⾳视频流等
RTP接收⾳视频流数据等
RTCP汇报RTP传输情况等
3.1 Web Server
Web Services,它即是⼀种⽹络服务。当你的系统完成⼀个通⽤的功能以后,如果你想让别⼈使⽤你的功能的话,那么你就可以发布成为Web Services服务,别⼈就可以通过⽹络远程调⽤到你的服务接⼝。它能够让各个系统之间的对接变得:快捷、⽅便、廉价。
实现Web Services常⽤的框架有:REST、SOAP、JavaScript、XML-PRC等,我们这⾥使⽤的SOAP框架。
3.1.1 SOAP
SOAP(Simple Object Access Protoco,简单对象访问协议),是TCP/IP协议体系中的⼀个应⽤层协议,它是在HTTP基础之上实现的。
SOAP协议 = RPC机制 + HTTP传输协议 + XML数据格式
SOAP的两个主要设计⽬标是「简单性」和「可扩展性」,SOAP的设计正是围绕这两点展开的,这是它的优点:
SOAP使⽤RPC机制,体现了「简单性」。让客户端调⽤Web Service的接⼝看起来像本地调⽤⼀样,确实很简单。
SOAP 使⽤ HTTP 传送 XML,体现了「可扩展性」。尽管HTTP 不是有效率的通讯协议,⽽且 XML 还需要额外的⽂件解析(parse),两者使得交易的速度⼤⼤低于其它⽅案。但是XML 是⼀个开放、
健全、有语义的讯息机制,⽽ HTTP 成熟、稳定、⼜能避免许多关于防⽕墙的问题,从⽽使SOAP得到了⼴泛的应⽤。
使⽤ONVIF的缺点有:
HTTP是短连接的,都是客户端请求,服务端应答,这种模式导致服务端⽆法实时推送数据给客户端,只有像Socket那样的长连接才能保证实时通讯。
HTTP有包头,⽽且XML全部⽤⽂本⽂件来传输数据,效率会⽐较低,如果你对流量、传输效率要求极
⾼,那么你应该多考虑其它的⽅式,⽽不要⽤ SOAP。
3.2RTSP
RTSP(Real-Time Stream Protocol )是⼀种基于⽂本的应⽤层协议,在语法及⼀些消息参数等⽅⾯,RTSP协议与HTTP协议类似,它们同样属于应⽤层。
1. RTSP被⽤于建⽴的控制媒体流的传输,它为多媒体服务扮演“⽹络远程控制”的⾓⾊。RTSP本⾝并不⽤于传送媒体流数据。媒体数
据的传送可通过RTP/RTCP等协议来完成。RTP和RTCP协议是基于TCP和UDP协议的基础上的⼀种协议,它们同样属于传输层的协议。
2. RTP是实时传输协议(Real-Time Transport Protocol)的缩写。是针对多媒体数据流的实时传输协议。通常建⽴在UDP协议之
上,也可以建⽴在TCP协议之上。有⼈将其归为应⽤层协议,也有⼈将其归为传输层协议,这都是可以的。
3. RTCP是实时控制协议(Real-Time Control Protocol)的缩写。RTCP通常与RTP配合使⽤,⽤以管理传输质量在当前进程之间的
交换信息。在RTP会话期间,各参与者周期性的传送RTCP包,RTCP包中包含已发送数据包的数量、丢失的数据包的数量等统计资料。服务器可以利⽤这些信息动态的改变传输速率,甚⾄改变有效载荷的类型。RTP和RTCP配合使⽤,可以有效且以最⼩的开销达到最佳传输效率,⾮常适合传送实时流。
⽤⼀句简单的话总结:RTSP发起/终结流媒体、RTP传输流媒体数据 、RTCP对RTP进⾏控制,同步。
致谢:
对ONVIF中Web Server端的开发有⾮常详细的介绍

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。