【学习笔记】RTSP-Ovnif-GB28181
【学习笔记】RTSP-Ovnif-GB28181
一、RTSP_RTP_RTCP
RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议。
RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。它是创建在UDP协议上的。
RTCP是实时传输协议(RTP)的一个姐妹协议。RTP 使用一个 偶数 UDP port ;而RTCP 则使用 RTP 的下一个 port,也就是一个奇数 port。(RTCP 中的 SR (Sender Report发送端报告)控制分组包含NTP(网络时间)时间戳和RTP时间戳可用于同步音视频媒体流。)
简单理解:
RTP:视频数据传输
RTCP:视频质量控制
RTSP:视频控制(开始、暂停、快进等)
一次基本的RTSP交互过程如下,C表示客户端,S表示服务端。
1、 首先客户端连接到流媒体服务器并发送一个RTSP描述请求(DESCRIBE request)
2、 服务器通过一个SDP(Session DescriptionProtocol)描述来进行反馈(DESCRIBEresponse),反馈信息包括流数量、媒体类型等信息。
3、 客户端分析该SDP描述,并为会话中的每一个流发送一个RTSP连接建立请求
(SETUPrequest),该命令会告诉服务器用于接收媒体数据的端口
4、 服务器响应该请求(SETUP response)并建立连接之后,就开始传送媒体流(RTP包)到客户端。
5、 在播放过程中客户端还可以向服务器发送请求来控制快进、快退和暂停等。最后,客户端可发送一个终止请求(TEARDOWN request)来结束流媒体会话
拓展:编码、封装
编码格式:支持H.265、H.264、MPEG4、MJPEG等多种编码格式;
封装格式:支持HLS(直播)、RTP、TS(广播电视)、FLV(监控系统)等主流的封装格式;
一个常见的视频流程如下:
摄像机——>网络——>计算机(显示器)
从功能上来讲,是下面的流程(为了更直观加了封装流程):
采集——>编码——>封装——>传输——>解封——>解码——>显示
YUV->H.264->RTP->UDP->RTP->H.264->YUV
二、Ovnif
ONVIF(Open Network Video Interface Forum)是一个全球性的开放性标准,旨在促进网络视频设备之间的互操作性。
视频监控中:IPC摄像头就是一个服务端,它对外提供接口服务(Web Services),并使用RTSP协议传输流媒体;客户端通过ONVIF协议规定的Web Services接口可以获取摄像头的RTSP地址,并通过RTSP地址拉取视频流观看视频监控、还可以根据ONVIF协议规范的Web Services接口管理摄像头。
Web Services就是对外提供接口的一个http服务,客户端通过调用Web Services提供的接口满足自己的需求,使用的协议都是基于http的。
ONVIF就是把各个功能定义出来,并且把功能对应的Web Services接口固定下来,包括数据格式,参数等,这样就形成了一套规范,各个厂商都遵循这套规范就可以互通了。
举例:海康威视摄像头与大华 NVR 通过 ONVIF 对接时,无需关注底层协议差异,直接按标准接口交互,而纯 RTSP 对接可能因 SDP(SDP 本质上是一种文本格式的元数据描述,用于告知接收端 “流的类型、编码方式、传输参数” 等信息,类似 “流的身份证”) 描述格式不同导致媒体协商失败。
三、GB28181
参考文献:史上最全的GB/T 28181介绍(国标28181资料大全) - 知乎
国家标准。采用了基于SIP(Session Initiation Protocol)的网络视频传输协议,规范了视频监控设备之间的通信方式。这使得来自不同厂商的设备可以实现统一的通信协议,并在同一平台上实现集成和管理。
GB28181协议会话通道实际上使用的是SIP协议,并且在SIP协议的基础之上做了些私有化处理。
SIP中一个比较重要的概念是用户代理(User Agent),指的是一个SIP逻辑网络端点,用于创建、发送、接收SIP消息并管理一个SIP会话。SIP用户代理又可分为用户代理客户端UAC(User Agent Client)和用户代理服务端UAS(User Agent Server)。UAC创建并发送SIP请求,UAS接收处理SIP请求,发送SIP响应。SIP协议会与许多其它的协议协同工作,如SIP报文内容发送会话描述协议(Session Description Protocol,SDP),SDP协议描述了会话所使用流媒体细节,如:使用哪个IP端口,采用哪种编解码器等等。
SIP的一个典型用途是:SIP会话传输一些简单的经过报文的实时传输协议流,RTP本身才是语音或视频的载体。
在GB28181协议中,联网系统在进行视音频传输及控制时应建立两个传输通道: 会话通道和媒体流通道。会话通道用于在设备之间建立会话并传输系统控制命令; 媒体流通道用于传输视音频数据, 经过压缩编码的视音频流采用流媒体协议RTP/RTCP传输。GB28181协议中具体通信协议结构图如下图1所示:
会话通道中,注册、实时视音频点播、历史视音频的回放等应用的会话控制采用SIP协议IETF RFC3261中规定的REGISTER、INVITE等请求和响应方法实现, 历史视音频回放控制采用SIP扩展协议IETF RFC29765规定的INFO方法实现,前端设备控制、信息查询、报警事件通知和分发等应用的会话控制采用SIP扩展协议IETF RFC34287规定的MESSAGE方法实现。
四、备注
GB28181:虽然 GB28181 标准本身定义了一套基于 SIP 的信令交互和媒体传输机制,用于实现设备之间的互联互通,但在实际应用中,一些 GB28181 平台或设备可能会借助 RTSP 来拉取视频流。比如,当 GB28181 平台需要与只支持 RTSP 输出的设备进行对接时,就需要通过 RTSP 协议从这些设备拉取视频流,然后再将其转换为符合 GB28181 标准的格式进行处理和分发。
ONVIF:ONVIF 协议在设备发现、能力查询等过程中,会获取设备的相关信息,其中就包括设备支持的视频流地址,而这个地址很多时候就是 RTSP 地址。通过获取到的 RTSP 地址,ONVIF 客户端可以使用 RTSP 协议来拉取设备的视频流,以实现视频监控、录像回放等功能。例如,ONVIF 设备(如摄像机)会暴露一个 RTSP 端点(URL),客户端通过 ONVIF 信令获取该端点后,再使用 RTSP 协议(如发送SETUP、PLAY、TEARDOWN等请求)控制媒体流的传输。可以理解为Ovnif就是RTSP的一层高级封装吧。
五、总结
维度 | RTSP | GB28181 | ONVIF |
---|---|---|---|
协议性质 | 流媒体传输协议(IETF 国际标准) | 中国安防行业应用层标准(国家标准) | 国际设备互操作应用层标准(开放性行业标准协议) |
层级 | 应用层(RFC 2326) | 应用层(基于SIP网络视频传输协议扩展) | 应用层(基于 Web Services) |
信令机制信令层(Signaling Layer)负责建立、控制和释放媒体会话(如会话初始化、参数协商) | 文本格式命令信令命令:PLAY(开始播放)、PAUSE(暂停)、TEARDOWN(断开连接) 举例:获取媒体描述(DESCRIBE);返回关键字段:m=video(媒体类型)、a=rtpmap(编码格式 H.264)、a=control(流控制标识) 典型流程:OPTIONS查询能力 → DESCRIBE获取 SDP → SETUP建立传输通道 → PLAY启动流 → TEARDOWN断开连接。 | SIP+XML(兼容 SIP 协议框架) 举例:平台向设备请求(INVITE)实时流,设备返回 200 OK,并在 SDP 中告知媒体端口(如 RTP 端口 5004),平台通过 RTP 接收流。 | SOAP/XML(Web 服务接口) 信令通过 SOAP 协议封装为 XML 格式,用于设备发现、能力查询、流控制等。 举例:获取媒体流地址(GetStreamUri)客户端向设备服务接口发送 SOAP 请求;服务器响应(包含 RTSP URL) |
媒体传输媒体层则在会话建立后实际传输和处理媒体数据。 | 支持 RTP/UDP 或 RTCP(需配合使用) | RTP/RTCP(PS 封装或裸流) | RTSP/RTCP(可调用 RTSP 接口拉流) |
应用场景 | 通用流媒体(如视频会议、直播) | 国内安防监控系统互联 | 跨厂商安防设备互操作 |