《GBT 28181-2016 公共安全视频监控联网系统信息传输、交换、控制技术要求》增加了有关TCP流媒体传输的要求,目的是解决UDP传输网络质量要求高、容易丢包导致的卡顿、花屏等问题。
首先,协议流程是没有变化的,跟2011版还是一样,所以直接看下抓包对比吧。
其实就是m和a字段做了增加说明:
a字段有下列格式: ——a字段可携带倍速参数,用于文件下载时控制下载进度。格式如下: a=downloadspeed:下载倍速(取值为整型) ——a字段可携带文件大小参数,用于下载时的进度计算。格式如下: a=filesize:文件大小(单位:Byte) ——a字段可携带setup、connection作为TCP连接协商参数,用于TCP方式传输媒体流服务端、客户端的协商,协商机制参考IETF RFC4571的定义。格式如下: a=setup:TCP连接方式(表示本SDP发送者在RTP over TCP连接建立时是主动还是被动发起TCP连接,“active”为主动,“passive”为被动。) a=connection:new (表示采用RTP over TCP传输时新建或重用原来的TCP连接,可固定采用新建TCP连接的方式。) ——a字段可携带SVC参数,用于视频传输时的分辨率或帧频控制。格式如下: a=svcspace:空域编码方式(取值为整型。空域编码方式,取值0:不使用;1:1级增强(1个增强层);2:2级增强(2个增强层);3:3级增强(3个增强层)) a=svctime:时域编码方式(取值为整型。时域编码方式,取值0:不使用;1:1级增强(1个增强层);2:2级增强(2个增强层);3:3级增强(3个增强层))
m字段:m字段描述媒体的媒体类型,端口,传输层协议,负载类型等内容。媒体类型采用“video”标识传输视频或视音频混合内容,采用“audio”标识传输音频内容;传输方式采用“RTP/AVP”标识传输层协议为RTP over UDP,采用“TCP/RTP/AVP”标识传输层协议为RTP over TCP。 例如: “m=video 6000 RTP/AVP 96”标识媒体类型为视频或视音频,传输端口为6000,采用RTP over UDP传输方式,负载类型为96。 “m=video 6000 TCP/RTP/AVP 96”标识媒体类型为视频或视音频,传输端口为6000,采用RTP over TCP传输方式,负载类型为96。 “m=audio 8000 RTP/AVP 8”标识媒体类型为音频,传输端口为8000,采用RTP over UDP传输方式,负载类型为8。