GB/T28181实时视频传输模式介绍

GB/T28181实时视频传输模式介绍

1. 概述

在GB/T28181-2022版本中增加了基于TCP的视频传输的两种模式:主动模式和被动模式,UDP是面向端口的无连接方式,无所谓主动和被动。下面分别介绍下各种模式的概念。

  • UDP模式:在《GB/T28181流媒体相关协议详解》的文章中,以详细介绍了此种模式,由国标平台先开启UDP端口监听,发起INVITE时,在SDP媒体描述信息中携带国标服务器的流媒体接收端口,设备测通过此端口主动向国标服务器发送RTP流。
  • TCP被动模式:国标平台侧发起INVTIE请求时携带的SDP中包含a=setup:passive,表示为被动模式,视频连接建立时由设备测主动发起连接,国标平台侧开启TCP监听端口,被动接收设备侧发起的TCP连接。
  • TCP主动模式:国标平台侧发起INVTIE请求时携带的SDP中包含a=setup:active,表示为主动模式,视频连接建立时由国标平台侧主动发起TCP连接,设备测开启TCP监听端口。

有关TCP模式传输流媒体数据的封包方式及SDP相关SDP描述信息参照规范《rfc4571.Framing Real-time Transport Protocol (RTP) and RTP Control Protocol (RTCP) Packets over Conn》,关注,发送:协议规范,获取相关协议。

2. 28181视频传输模式

2.1 UDP被动模式

28181默认的视频流申请协议时基于UDP的通信,老版本的28181协议仅支持此种模式,其通过平台侧绑定UDP端口,设备测主动发送RTP视频流到国标平台,实现视频的传输,此模式在《GB/T28181流媒体相关协议详解》有详细介绍,这里就不再介绍。

2.2 TCP被动模式

TCP被动模式,首先服务器发送INVITE请求时,携带的SDP中媒体描述信息中传输方式为TCP/RTP/AVP,且包含a=setup:passive,表示为被动模式,视频连接建立时由设备测主动发起连接,国标平台被动接收连接,流程图如下图所示:
1

视频会话交互消息实例:

  1. 国标平台发送INVITE请求:
INVITE sip:[email protected]:5060;transport=udp SIP/2.0
Via: SIP/2.0/UDP 10.45.12.83:5061;rport=5061;branch=z9hG4bK17911100
From: <sip:34020000002000000001@3402000000>;tag=828911100
To: <sip:[email protected]:5060>
Call-ID: 580910568
CSeq: 7 INVITE
Max-Forwards: 70
User-Agent: Easy SIP Server
Content-Length: 257
Content-Type: application/sdp
Contact: <sip:[email protected]:5061>
Subject: 34020000001320000002:0200000002,34020000002000000001:0

v=0
o=34020000002000000001 0 0 IN IP4 10.45.12.83
s=Play
c=IN IP4 10.45.12.83
t=0 0
m=video 30000 TCP/RTP/AVP 96 98 97
a=recvonly
a=rtpmap:96 PS/90000
a=rtpmap:98 H264/90000
a=rtpmap:97 MPEG4/90000
a=setup:passive
a=connection:new
y=0200000002

这里媒体描述信息中传输协议类型为:TCP/RTP/AVP,表示TCP传输,视频流传输端口号为30000,携带a=setup:passive表示被动模式。

  1. 设备测发送200 OK响应:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.45.12.83:5061;rport=5061;branch=z9hG4bK17911100
From: <sip:34020000002000000001@3402000000>;tag=828911100
To: <sip:[email protected]:5060>;tag=1748018096
Call-ID: 580910568
CSeq: 7 INVITE
Contact: <sip:[email protected]:5060>
Content-Type: application/sdp
User-Agent: IP Camera
Content-Length:   203

v=0
o=34020000001110000002 791 791 IN IP4 10.45.12.141
s=Play
c=IN IP4 10.45.12.141
t=0 0
m=video 15060 TCP/RTP/AVP 96
a=setup:active
a=sendonly
a=rtpmap:96 PS/90000
a=filesize:0
y=0200000002

从设备测响应的协议,可以看出,设备侧发送的流媒体为音视频,源端端口为15060,传输方式为TCP,rtp负载类型为96,这里响应携带的a=setup:active,对于设备测是主动发起连接,时主动模式,对于平台侧就是被动模式。

  1. 国标平台发起ACK:
ACK sip:[email protected]:5060;transport=udp SIP/2.0
Via: SIP/2.0/UDP 10.45.12.83:5061;rport=5061;branch=z9hG4bK940911118
From: <sip:34020000002000000001@3402000000>;tag=828911100
To: <sip:[email protected]:5060>;tag=1748018096
Call-ID: 580910568
CSeq: 7 ACK
Max-Forwards: 70
User-Agent: Easy SIP Server
Content-Length: 0
  1. 视频传输通道的建立

1
从上图可以看出,TCP连接由设备侧发起SYN,向服务侧30000端口发起连接,源端端口为15060

  1. RTP流基于TCP的传输

TCP通道建立后,RTP流基于TCP通道进行传输,RTP传输负载类型为96,SSRC为0200000002,其封装方式参照:《rfc4571》,音视频封装格式为PS,有关PS封包格式、RTP/RTCP封装方式,在以前的文章中已经详细介绍过,可关注,发送:rtp,获取rtp相关文章,发送消息ps,获取ps相关文章,这里不做介绍。
在这里插入图片描述
通过wireshark抓包解析出来的传输的TCP负载如上图所示。根据rfc4571,RTP通过tcp传输时,需要带有两个字节的长度,表示rtp数据的长途,实例中为0x0584=1412,表示rtp数据包的长度为1412字节。接下来就是rtp包,解析rtp包头可知,其payload=0x60=96,ssrc=0x0bebc202=0200000002,rtp负载为ps流。

2.3 TCP主动模式

28181视频传输主动模式,除了建立TCP连接的方向是由国标平台主动向设备侧发起TCP连接之外,其他流程与被动模式一致,其流程如下:
1

交互消息实例如下:

  1. 国标平台发送INVITE请求:
INVITE sip:[email protected]:5060;transport=udp SIP/2.0
Via: SIP/2.0/UDP 10.45.12.83:5061;rport=5061;branch=z9hG4bK782121095
From: <sip:34020000002000000001@3402000000>;tag=910121095
To: <sip:[email protected]:5060>
Call-ID: 968120567
CSeq: 11 INVITE
Max-Forwards: 70
User-Agent: Easy SIP Server
Content-Length: 256
Content-Type: application/sdp
Contact: <sip:[email protected]:5061>
Subject: 34020000001320000002:0200000002,34020000002000000001:0

v=0
o=34020000002000000001 0 0 IN IP4 10.45.12.83
s=Play
c=IN IP4 10.45.12.83
t=0 0
m=video 30001 TCP/RTP/AVP 96 98 97
a=recvonly
a=rtpmap:96 PS/90000
a=rtpmap:98 H264/90000
a=rtpmap:97 MPEG4/90000
a=setup:active
a=connection:new
y=0200000002

SDP携带a=setup:active,表示主动模式,视频通道源端口为30001,TCP/RTP/AVP表示TCP传输。

  1. 设备测发送200 OK响应:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.45.12.83:5061;rport=5061;branch=z9hG4bK782121095
From: <sip:34020000002000000001@3402000000>;tag=910121095
To: <sip:[email protected]:5060>;tag=155643556
Call-ID: 968120567
CSeq: 11 INVITE
Contact: <sip:[email protected]:5060>
Content-Type: application/sdp
User-Agent: IP Camera
Content-Length:   206

v=0
o=34020000001110000002 2136 2136 IN IP4 10.45.12.141
s=Play
c=IN IP4 10.45.12.141
t=0 0
m=video 15060 TCP/RTP/AVP 96
a=setup:passive
a=sendonly
a=rtpmap:96 PS/90000
a=filesize:0
y=0200000002

从SDP中可知,设备端视频传输的TCP监听端口为15060,被动模式。

  1. 国标平台发起ACK:
ACK sip:[email protected]:5060;transport=udp SIP/2.0
Via: SIP/2.0/UDP 10.45.12.83:5061;rport=5061;branch=z9hG4bK304121113
From: <sip:34020000002000000001@3402000000>;tag=910121095
To: <sip:[email protected]:5060>;tag=155643556
Call-ID: 968120567
CSeq: 11 ACK
Max-Forwards: 70
User-Agent: Easy SIP Server
Content-Length: 0
  1. 视频传输通道的建立:

视频通道的TCP连接,由国标平台主动发起发起SYN,向设备端发起连接建立请求。
1

  1. RTP流基于TCP的传输:

rtp传输与被动模式一致,wireshark抓包如下:
1


关注,发送:28181,获取28181更多相关文章

猜你喜欢

转载自blog.csdn.net/water1209/article/details/134142271