1、-_浅论 GB28181平台视频流武汉烽火众智数字技术有限责任公司-_目录一、 概述 .3二、 国标媒体流简介 .32.1 视频流的数据要求 .32.2 视频流编解码要求 .42.2.1 基于 H.264 的视频编、解码技术要求 .42.2.2 基于 MPEG-4 的视频编/ 、解码技术要求 .62.2.3 SIP 信令中的 SDP 内容规范 .82. 3 国标视频流示例 .10三、 实际问题浅析 .123.1 客户端解码花屏 .12-_3.2 解码器无法解码 .143.3 画面出现卡顿 .17四、 小论总结 .184.1 码流的不确定性 .184.2 以国标为本 .19-_一、 概述GB/T
2、 28181-2011 是 2011 年由中华人民共和国公安部提出,中国国家标准化管理委员会发布的国家标准。GB/T 28181-2011 的正式实施规定了安全防范影像视频监控联网系统中信息传输、交换、控制的互联结构、通信协议结构,传输、交换、控制的基本要求和安全性要求,以及控制、传输流程和协议接口等技术要求。适用于安全防范视频监控联网系统及城市监控报警联网系统的方案设计、系统检测、验收以及与之相关的设备研发、生产。虽然该标准不可能一次性解决视频监控联网系统中的所有技术规定,但是比较清晰地定义了建议的通讯模型,重要的数据格式,和既有系统的兼容性方案,以及子系统和外部系统之间的通讯模式。对大型系
3、统建设,尤其是联网的社会共享性系统建设给出了明确的、可实施的技术标准。本文主要结合贵州省国标平台项目的实施经验介绍并讨论 GB/T 28181-2011 中媒体流相关知识。二、 国标媒体流简介下面通过 GB28181-2011 中的媒体传输和编解码协议两方面,简单介绍下国标对媒体流的技术要求 1:2.1 视频流的数据要求GB/T 28181-2011 中规定媒体流在联网系统 IP 网络上传输时应采用 RFC 3550 规定的RTP 协议,提供实时数据传输中的时间戳信息及各数据流的同步;应采用 RFC 3550 规定的 RTCP 协议,为按序传输数据包提供可靠保证,提供流量控制和拥塞控制。RTP
4、 的负载应采用如下两种格式之一:1.基于 PS 封装的视音频数据基于 RTP 的 PS 封装首先按照 ISO/IEC 13818-1:2000 将视音频流封装成 PS 包,再将PS 包以负载的方式封装成 RTP 包。PS 包的主要参数设置针对本文档规定的几种视音频格式,PS 包中的流类型(stream_type)的取值如下:a) MPEG-4视频流:0x10;b) H.264视频流:0x1B;c) SVAC视频流:0x80;d) G.711音频流:0x90;e) G.722.1音频流:0x92;f) G.723.1音频流:0x93;g) G.729音频流:0x99;h) SVAC音频流:0x9
5、B。PS 包的 RTP 封装格式参照 RFC2250,RTP 的主要参数设置如下:1本节内容部分引用 GB/T28181-2011 中 4.3.6 小节、附录 C、附录 E、附录 F。-_a) 负载类型(payload type):96;b) 编码名称(encoding name):PS;c) 时钟频率(clock rate):90kHz;d) SDP描述中“m”字段的“media”项:video。2.基于 RTP 的视音频基本流封装该方式直接将视音频数据以负载的方式封装成 RTP 包。A)MPEG-4视频流的RTP封装MPEG-4视频流的RTP封装格式应符合RFC3016协议中的相关规定。M
6、PEG-4视频流RTP包的负载类型(Payload Type)标识号选定:从RFC3551协议的表5中的动态范围(96-127)中选择,建议定为97。B)H.264视频流的RTP封装H.264的RTP载荷格式应符合RFC3984中的相关规定。H.264视频流RTP包的负载类型(Payload Type)标识号选定:从RFC3551协议的表5中的动态范围(96-127)中选择,建议定为98。C)SVAC视频流的RTP封装SVAC视频流的RTP载荷格式可参照RFC3984中的相关规定。SVAC视频流RTP包的负载类型(Payload Type)标识号选定:从RFC3551协议的表5中的动态范围(9
7、6-127)中选择,建议定为99。2.2 视频流编解码要求联网系统中,对视音频编/解码的技术要求包括编/解码的档次和级别、工具选项、码流语法的规定以及比特流和解码器的一致性测试等。具体要求如下:视频编码应支持H.264、SVAC或 MPEG-4视频编码标准,视频解码应同时支持H.264、SVAC和 MPEG-4视频解码标准。2.2.1 基于 H.264 的视频编、解码技术要求2.2.1.1 H.264的档次和级别采用 H.264 标准的视频编码应至少支持 ITU-T Rec. H.264-2005 视频标准的基本档次(Baseline Profile) ,级别( Level)应至少支持到 Le
8、vel 1.3,标清应用宜扩展支持到Level 3,高清应用宜扩展支持到 Level 4;视频解码所支持的档次和级别应不低于编码支持的最高档次和级别,至少应支持到 H.264 视频标准基本档次的 Level 3;视频解码宜扩展支持 H.264 主档次(Main Profile)中的隔行扫描和 B 帧工具,且相邻两 P 帧间的 B 帧个数不大于 2。1、H.264 基本档次的选项和工具H.264 基本档次支持的选项和工具主要有:a) I 片和 P 片(Slice) ;b) 基于内容自适应的变长编码 CAVLC;c) 容错工具:FMO,ASO,RS;d) 去块效应滤波器(Deblocking Fi
9、lter) ;-_e) 多参考帧编码。采用 H.264 编码标准的视频流应为 H.264 Baseline 视频流,编码应支持上述Baseline 选项和工具中的部分或全部,可不支持容错工具;H.264 的解码至少应支持上述除容错工具外的全部选项和工具。多参考帧编码时,P 片的参考帧数一般不大于两帧。为了保证码流解析的效率,比特流中应当在每个 I 帧之前都出现相应的 SPS 和 PPS;2、H.264 级别的限制H.264 级别(Level 14)的限制如表 1 所示, 表中“-”表示未做相应的限制。表 1 H.264级别(Level 14)的限制级别 最大宏块处理速率MaxMBPS(宏块数/
10、秒)最大帧尺寸MaxFS(宏块数)最大解码图像缓冲区MaxDPB(4:2:0 视频以 1024 字节为单位)最大视频比特率 MaxBR(1000bits/s 或 1200bits/s)最大编码图像缓冲区MaxCPB(1000 bits 或1200bits)垂直运动矢量构成范围MaxVmvR(亮度帧采样)最小压缩比率MinCR两个连续宏块的最大运动矢量数MaxMvsPer2Mb1 1 485 99 148.5 64 175 -64,+63.75 2 -1.1 3 000 396 337.5 192 500 -128,+127.75 2 -1.2 6 000 396 891.0 384 1 000
11、 -128,+127.75 2 -1.3 11 880 396 891.0 768 2 000 -128,+127.75 2 -2 11 880 396 891.0 2 000 2 000 -128,+127.75 2 -2.1 19 800 792 1 782.0 4 000 4 000 -256,+255.75 2 -2.2 20 250 1 620 3 037.5 4 000 4 000 -256,+255.75 2 -3 40 500 1 620 3 037.5 10 000 10 000 -256,+255.75 2 323.1 108 000 3 600 6 750.0 14 00
12、0 14 000 -512,+511.75 4 163.2 216 000 5 120 7 680.0 20 000 20 000 -512,+511.75 4 164 245 760 8 192 12 288.0 20 000 25 000 -512,+511.75 4 16注:“-”表示未做相应的限制。3、H.264 基本档次各级别的参数限制H.264 基本档次各级别的参数限制如表 2 所示。表 2 H.264基本档次各级别的参数限制级别 最大子宏块尺寸(采样点数)1 5761.1 5761.2 5761.3 5762 5762.1 5762.2 5763 5763.1 -3.2 -_4
13、-4、H.264 各级别的最大帧率限制H.264 中 CIF、4CIF、720p HD、1080p HD 各级别(Level)的最大帧率限制如表 3 所示,表中的“-”表示未做相应的限制。其他分辨率各级别的最大帧率限制见 ITU-T Rec. H.264-2005 中的规定。表3 H.264各级别的最大帧率限制级别 最大帧尺寸(宏块)最大宏块速率(宏块数/秒)最大帧尺寸(采样点数)最大采样率(样点/秒)格式 CIF 4CIF 720p HD1080p HD亮度宽度352 704 720 1088亮度高度288 576 1280 1920总宏块数396 1584 3600 8160亮度采样点数1
14、01 376 405 504 921600 20889601 99 1485 25 344 380 160 - - -1b 99 1485 25 344 380 160 - - -1.1 396 3000 101 376 768 000 - 7.6 -1.2 396 6000 101 376 1 536 000 - 15.2 -1.3 396 11880 101 376 3 041 280 - 30.0 -2 396 11880 101 376 3 041 280 - 30.0 -2.1 792 19800 202 752 5 068 800 - 50.0 -2.2 1620 20250 41
15、4 720 5 184 000 51.1 12.83 1620 40500 414 720 10 368 000- 102.3 25.63.1 3600 108000 921600 27648000 172.0 68.2 30.03.2 5120 216000 1310720 55296000 172.0 136.4 60.04 8192 245760 2097152 62914560 172.0 155.2 68.3 30.1注:“-”表示未做相应的限制。2.2.2 基于 MPEG-4 的视频编/ 、解码技术要求2.2.2.1MPEG-4的档次和级别采用 MPEG-4 标准的视频编码应至少支
16、持 ISO/IEC 14496-2:2004 中简单档次(Simple Profile)的级别 L5(ISO/IEC 14496-2:2004/Amd.2:2005) ,即 MPEG-4 SPL5。采用MPEG-4 标准的视频解码所支持的档次和级别不应低于编码支持的最高档次和级别,宜扩展支持 MPEG-4 先进简单档次(Advanced Simple Profile)中的隔行扫描和 B 帧工具。1、MPEG-4 简单档次的工具-_MPEG-4 简单档次的工具包括:a) Basic:基本工具,又包括以下几种工具:1) I-VOP:帧内编码的矩形视频对象平面,逐行扫描的视频格式;2) P-VOP:
17、帧间编码的矩形视频对象平面,逐行扫描的视频格式;3) AC/DC Prediction:AC/DC预测;4) 4-MV:每个宏块可以有4个运动矢量;5) Unrestricted MV:不受限制的运动矢量。b) Error Resilience:容错工具,又包括以下 3 种工具:1) Slice Resynchronization:片重同步;2) Data Partitioning:数据划分;3) Reversible VLC:可逆的变长编码。c) Short Header:短头工具。MPEG-4 视频编码应支持上述简单档次的部分或全部工具,可不支持容错和短头工具;视频解码至少应支持除容错工具
18、外的简单档次的全部工具。2、MPEG-4 简单档次各级别的参数限制MPEG-4 视频编/、解码应至少支持简单档次的 L5 级别,参数限制如表 4 所示。简单档次其他各级别的参数限制见 ISO/IEC 14496-2:2004 及 ISO/IEC 14496-2:2004/Amd.2:2005中的相关规定。表 4MPEG-4简单档次 L2、L3、L5 级别的参数限制级别 L2 L3 L5典型分辨率 CIF (352288) CIF (352288) 720576最大对象数 4 4 4 每种类型的最大对象数 4个简单对象 4个简单对象 4个简单对象最大唯一量化表 1 1 1 最大视频内容验证(VM
19、V)缓冲区(宏块组) 792 792 3240最大视频复杂度验证(VCV)缓冲区(宏块) 396 396 1620视频复杂度验证(VCV)解码速率(宏块/秒) 5940 11880 40500视频复杂度验证(VCV)边界宏块解码速率(宏块/秒) 不适用 不适用 不适用最大视频缓冲验证(VBV)缓冲区总和(16 384 bits) 40 40 112最大视频对象层(VOL)视频缓冲验证( VBV)缓冲区总和(16 384 bits) 40 40 112最大视频包长度(bits) 4096 8192 16384最大目标呈现尺寸(宏块数) 不适用 不适用 不适用小波限制 不适用 不适用 不适用最大比
20、特率 (kbit/s) 128 384 8000单对象最大增强层数 不适用 不适用 不适用3、MPEG-4 的码流语法为实现联网系统中视频流的互通,采用MPEG-4标准的视频码流语法应符合ISO/IEC14496-2:2004中的规定。MPEG-4中简单档次不同级别的相应标识码见表5(见ISO/IEC14496-2:2004中的表G-1和ISO/IEC 14496-2:2004/Amd.2:2005中的规定)。表5 MPEG-4简单档次各级别的标识码-_档次/级别 标识码保留 00000000 简单档次/级别 1 00000001 简单档次/级别 2 00000010 简单档次/级别 3 00
21、000011 简单档次/级别4a 00000100简单档次/级别5 00000101保留 00000110 00000111简单档次/级别0 000010002.2.2.2 MPEG-4的一致性测试包括比特流一致性测试和解码器的一致性测试。 比特流一致性测试MPEG-4 的一致性比特流(compliant bitstream)是指实现了 ISO/IEC 14496-2:2004在通用语法中定义的所有限制的比特流,包括 ISO/IEC 14496-2:2004 中第 9 章关于档次和级别的限制。MPEG-4 的一致性比特流应满足如下测试:当使用解码软件对 MPEG-4 视频比特流进行解码时,不应
22、出现任何由比特流引起的错误或不一致。注:测试中不考虑由于传输而产生的错误。MPEG-4 的比特流一致性测试的附加测试见 ISO/IEC 14496-4:2004 中的描述。上述验证比特流一致性用到的解码软件可参考 ISO/IEC 14496-5:2001 中指定的软件。 解码器的一致性测试MPEG-4的视频解码器通常指某一特定档次和级别的解码器。MPEG-4视频解码器的一致性测试见ISO/IEC 14496-4:2004中的规定,其中简单档次L5级别的视频解码器一致性测试见ISO/IEC 14496-4:2004/Amd.10:2005的规定。验证解码器一致性用到的软件可参考ISO/IEC14
23、496-5:2001中指定的软件。满足特定档次和级别的MPEG-4视频解码器应能正确解码相应档次和级别的MPEG-4一致性比特流。2.2.3 SIP 信令中的 SDP 内容规范 SDP定义联网系统中 SIP 消息体中携带的 SDP 内容应符合 RFC 2327 - SDP Session Description Protocol 的相关要求。应有如下字段:Session description:v= (protocol version)o= (owner/creator and session identifier).s= (session name)u=* (URI of descripti
24、on)c=* (connection information - not required if included in all media)Time description:t= (time the session is active)-_Media descriptionm= (media name and transport address)c=* (connection information - optional if included at session-level)b=* (bandwidth information)a=* (zero or more media attrib
25、ute lines)y=*(SSRC)f=*(媒体描述)说明:a 字段:启用 RFC4566 中对 a 字段的定义【a=rtpmap:/ /中的,利用该属性携带编码器厂商名称(如:大华或海康编码名称 DAHUA 或 HIKVISION) 。该属性表明该流为某厂商编码器编码且是不符合本标准规定的媒体流,符合本标准规定的媒体流无需该属性。例如:a=rtpmap:96DAHUA/90000 ;a=rtpmap:96HIKVISION/90000。s 字段:使用 s 字段标识请求媒体流的操作类型。 “Play”代表实时点播;“Playback”代表历史回放;“Download ”代表文件下载。u 字段
26、:u 行应填写视音频文件的 URI。该 URI 取值有两种方式:简捷方式和普通方式。简捷方式直接采用产生该历史媒体的媒体源(如某个摄像头)的设备 ID(应符合6.1.2 的规定)以及相关参数,参数用“:”分隔;普通方式采用 http:/存储设备ID/文件夹* /文件名,/文件夹*为 0N 级文件夹。t 字段:当回放或下载时, t 行值为开始时间和结束时间,用“”分隔,时间格式见RFC 4566 的 5.9,开始时间和结束时间均为要回放或下载的音视频文件录制时间段中的某个时刻。y字段:为十进制整数字符串,表示SSRC值。格式如下:Dddddddddd(第一位为历史或实时媒体流的标识位,1为历史,0为实时) 。f字段: f = v/编码格式/分辨率/帧率/ 码率类型/码率大小a/编码格式/码率大小/采样率以实际我司平台与其他平台对接过程中的SIP信令为例,下图中为我司与某厂家平台交互时请求实时视频的信令: