GB28181中的视频流培训教材.docx

上传人:b****3 文档编号:3840787 上传时间:2022-11-25 格式:DOCX 页数:22 大小:1.21MB
下载 相关 举报
GB28181中的视频流培训教材.docx_第1页
第1页 / 共22页
GB28181中的视频流培训教材.docx_第2页
第2页 / 共22页
GB28181中的视频流培训教材.docx_第3页
第3页 / 共22页
GB28181中的视频流培训教材.docx_第4页
第4页 / 共22页
GB28181中的视频流培训教材.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

GB28181中的视频流培训教材.docx

《GB28181中的视频流培训教材.docx》由会员分享,可在线阅读,更多相关《GB28181中的视频流培训教材.docx(22页珍藏版)》请在冰豆网上搜索。

GB28181中的视频流培训教材.docx

GB28181中的视频流培训教材

 

浅论GB28181平台视频流

 

烽火众智数字技术有限责任公司

 

一、概述

GB/T28181-2011是2011年由中华人民国公安部提出,中国国家标准化管理委员会发布的国家标准。

GB/T28181-2011的正式实施规定了安全防影像视频监控联网系统息传输、交换、控制的互联结构、通信协议结构,传输、交换、控制的基本要求和安全性要求,以及控制、传输流程和协议接口等技术要求。

适用于安全防视频监控联网系统及城市监控报警联网系统的方案设计、系统检测、验收以及与之相关的设备研发、生产。

虽然该标准不可能一次性解决视频监控联网系统中的所有技术规定,但是比较清晰地定义了建议的通讯模型,重要的数据格式,和既有系统的兼容性方案,以及子系统和外部系统之间的通讯模式。

对大型系统建设,尤其是联网的社会共享性系统建设给出了明确的、可实施的技术标准。

本文主要结合省国标平台项目的实施经验介绍并讨论GB/T28181-2011中媒体流相关知识。

二、国标媒体流简介

下面通过GB28181-2011中的媒体传输和编解码协议两方面,简单介绍下国标对媒体流的技术要求:

2.1视频流的数据要求

GB/T28181-2011中规定媒体流在联网系统IP网络上传输时应采用RFC3550规定的RTP协议,提供实时数据传输中的时间戳信息及各数据流的同步;应采用RFC3550规定的RTCP协议,为按序传输数据包提供可靠保证,提供流量控制和拥塞控制。

RTP的负载应采用如下两种格式之一:

1.基于PS封装的视音频数据

基于RTP的PS封装首先按照ISO/IEC13818-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音频流:

0x9B。

PS包的RTP封装格式参照RFC2250,RTP的主要参数设置如下:

a)负载类型(payloadtype):

96;

b)编码名称(encodingname):

PS;

c)时钟频率(clockrate):

90kHz;

d)SDP描述中“m”字段的“media”项:

video。

2.基于RTP的视音频基本流封装

该方式直接将视音频数据以负载的方式封装成RTP包。

A)MPEG-4视频流的RTP封装

MPEG-4视频流的RTP封装格式应符合RFC3016协议中的相关规定。

MPEG-4视频流RTP包的负载类型(PayloadType)标识号选定:

从RFC3551协议的表5中的动态围(96-127)中选择,建议定为97。

B)H.264视频流的RTP封装

H.264的RTP载荷格式应符合RFC3984中的相关规定。

H.264视频流RTP包的负载类型(PayloadType)标识号选定:

从RFC3551协议的表5中的动态围(96-127)中选择,建议定为98。

C)SVAC视频流的RTP封装

SVAC视频流的RTP载荷格式可参照RFC3984中的相关规定。

SVAC视频流RTP包的负载类型(PayloadType)标识号选定:

从RFC3551协议的表5中的动态围(96-127)中选择,建议定为99。

2.2视频流编解码要求

联网系统中,对视音频编/解码的技术要求包括编/解码的档次和级别、工具选项、码流语法的规定以及比特流和解码器的一致性测试等。

具体要求如下:

视频编码应支持H.264、SVAC或MPEG-4视频编码标准,视频解码应同时支持H.264、SVAC和MPEG-4视频解码标准。

2.2.1基于H.264的视频编、解码技术要求

2.2.1.1H.264的档次和级别

采用H.264标准的视频编码应至少支持ITU-TRec.H.264-2005视频标准的基本档次(BaselineProfile),级别(Level)应至少支持到Level1.3,标清应用宜扩展支持到Level3,高清应用宜扩展支持到Level4;视频解码所支持的档次和级别应不低于编码支持的最高档次和级别,至少应支持到H.264视频标准基本档次的Level3;视频解码宜扩展支持H.264主档次(MainProfile)中的隔行扫描和B帧工具,且相邻两P帧间的B帧个数不大于2。

1、H.264基本档次的选项和工具

H.264基本档次支持的选项和工具主要有:

a)I片和P片(Slice);

b)基于容自适应的变长编码CAVLC;

c)容错工具:

FMO,ASO,RS;

d)去块效应滤波器(DeblockingFilter);

e)多参考帧编码。

采用H.264编码标准的视频流应为H.264Baseline视频流,编码应支持上述Baseline选项和工具中的部分或全部,可不支持容错工具;H.264的解码至少应支持上述除容错工具外的全部选项和工具。

多参考帧编码时,P片的参考帧数一般不大于两帧。

为了保证码流解析的效率,比特流中应当在每个I帧之前都出现相应的SPS和PPS;

2、H.264级别的限制

H.264级别(Level1~4)的限制如表1所示,表中“-”表示未做相应的限制。

表1H.264级别(Level1~4)的限制

级别

最大宏块处理速率

MaxMBPS

(宏块数/秒)

最大帧尺寸

MaxFS

(宏块数)

最大解码图像缓冲区

MaxDPB

(4:

2:

0视频以1024字节为单位)

最大视频比特率

MaxBR

(1000bits/s或1200bits/s)

最大编码图像缓冲区MaxCPB

(1000bits或1200bits)

垂直运动矢量构成围

MaxVmvR

(亮度帧采样)

最小压缩比率

MinCR

两个连续宏块的最大运动矢量数

MaxMvsPer2Mb

1

1485

99

148.5

64

175

[-64,+63.75]

2

-

1.1

3000

396

337.5

192

500

[-128,+127.75]

2

-

1.2

6000

396

891.0

384

1000

[-128,+127.75]

2

-

1.3

11880

396

891.0

768

2000

[-128,+127.75]

2

-

2

11880

396

891.0

2000

2000

[-128,+127.75]

2

-

2.1

19800

792

1782.0

4000

4000

[-256,+255.75]

2

-

2.2

20250

1620

3037.5

4000

4000

[-256,+255.75]

2

-

3

40500

1620

3037.5

10000

10000

[-256,+255.75]

2

32

3.1

108000

3600

6750.0

14000

14000

[-512,+511.75]

4

16

3.2

216000

5120

7680.0

20000

20000

[-512,+511.75]

4

16

4

245760

8192

12288.0

20000

25000

[-512,+511.75]

4

16

注:

“-”表示未做相应的限制。

3、H.264基本档次各级别的参数限制

H.264基本档次各级别的参数限制如表2所示。

表2H.264基本档次各级别的参数限制

级别

最大子宏块尺寸(采样点数)

1

576

1.1

576

1.2

576

1.3

576

2

576

2.1

576

2.2

576

3

576

3.1

-

3.2

-

4

-

4、H.264各级别的最大帧率限制

H.264中CIF、4CIF、720pHD、1080pHD各级别(Level)的最大帧率限制如表3所示,表中的“-”表示未做相应的限制。

其他分辨率各级别的最大帧率限制见ITU-TRec.H.264-2005中的规定。

表3H.264各级别的最大帧率限制

级别

最大帧尺寸

(宏块)

最大宏块速率

(宏块数/秒)

最大帧尺寸

(采样点数)

最大采样率(样点/秒)

格式

CIF

4CIF

720pHD

1080pHD

亮度宽度

352

704

720

1088

亮度高度

288

576

1280

1920

总宏块数

396

1584

3600

8160

亮度采样点数

101376

405504

921600

2088960

1

99

1485

25344

380160

-

-

-

1b

99

1485

25344

380160

-

-

-

1.1

396

3000

101376

768000

-

7.6

-

1.2

396

6000

101376

1536000

-

15.2

-

1.3

396

11880

101376

3041280

-

30.0

-

2

396

11880

101376

3041280

-

30.0

-

2.1

792

19800

202752

5068800

-

50.0

-

2.2

1620

20250

414720

5184000

51.1

12.8

3

1620

40500

414720

10368000

-

102.3

25.6

3.1

3600

108000

921600

27648000

172.0

68.2

30.0

3.2

5120

216000

1310720

55296000

172.0

136.4

60.0

4

8192

245760

2097152

62914560

172.0

155.2

68.3

30.1

注:

“-”表示未做相应的限制。

2.2.2基于MPEG-4的视频编/、解码技术要求

2.2.2.1MPEG-4的档次和级别

采用MPEG-4标准的视频编码应至少支持ISO/IEC14496-2:

2004中简单档次(SimpleProfile)的级别L5(ISO/IEC14496-2:

2004/Amd.2:

2005),即MPEG-4SPL5。

采用MPEG-4标准的视频解码所支持的档次和级别不应低于编码支持的最高档次和级别,宜扩展支持MPEG-4先进简单档次(AdvancedSimpleProfile)中的隔行扫描和B帧工具。

1、MPEG-4简单档次的工具

MPEG-4简单档次的工具包括:

a)Basic:

基本工具,又包括以下几种工具:

1)I-VOP:

帧编码的矩形视频对象平面,逐行扫描的视频格式;

2)P-VOP:

帧间编码的矩形视频对象平面,逐行扫描的视频格式;

3)AC/DCPrediction:

AC/DC预测;

4)4-MV:

每个宏块可以有4个运动矢量;

5)UnrestrictedMV:

不受限制的运动矢量。

b)ErrorResilience:

容错工具,又包括以下3种工具:

1)SliceResynchronization:

片重同步;

2)DataPartitioning:

数据划分;

3)ReversibleVLC:

可逆的变长编码。

c)ShortHeader:

短头工具。

MPEG-4视频编码应支持上述简单档次的部分或全部工具,可不支持容错和短头工具;视频解码至少应支持除容错工具外的简单档次的全部工具。

2、MPEG-4简单档次各级别的参数限制

MPEG-4视频编/、解码应至少支持简单档次的L5级别,参数限制如表4所示。

简单档次其他各级别的参数限制见ISO/IEC14496-2:

2004及ISO/IEC14496-2:

2004/Amd.2:

2005中的相关规定。

表4MPEG-4简单档次L2、L3、L5级别的参数限制

级别

L2

L3

L5

典型分辨率

CIF(352×288)

CIF(352×288)

720×576

最大对象数

4

4

4

每种类型的最大对象数

4个简单对象

4个简单对象

4个简单对象

最大唯一量化表

1

1

1

最大视频容验证(VMV)缓冲区(宏块组)

792

792

3240

最大视频复杂度验证(VCV)缓冲区(宏块)

396

396

1620

视频复杂度验证(VCV)解码速率(宏块/秒)

5940

11880

40500

视频复杂度验证(VCV)边界宏块解码速率(宏块/秒)

不适用

不适用

不适用

最大视频缓冲验证(VBV)缓冲区总和(16384bits)

40

40

112

最大视频对象层(VOL)视频缓冲验证(VBV)缓冲区总和(16384bits)

40

40

112

最大视频包长度(bits)

4096

8192

16384

最大目标呈现尺寸(宏块数)

不适用

不适用

不适用

小波限制

不适用

不适用

不适用

最大比特率(kbit/s)

128

384

8000

单对象最大增强层数

不适用

不适用

不适用

3、MPEG-4的码流语法

为实现联网系统中视频流的互通,采用MPEG-4标准的视频码流语法应符合ISO/IEC14496-2:

2004中的规定。

MPEG-4中简单档次不同级别的相应标识码见表5(见ISO/IEC14496-2:

2004中的表G-1和ISO/IEC14496-2:

2004/Amd.2:

2005中的规定)。

表5MPEG-4简单档次各级别的标识码

档次/级别

标识码

保留

00000000

简单档次/级别1

00000001

简单档次/级别2

00000010

简单档次/级别3

00000011

简单档次/级别4a

00000100

简单档次/级别5

00000101

保留

00000110−00000111

简单档次/级别0

00001000

2.2.2.2MPEG-4的一致性测试

包括比特流一致性测试和解码器的一致性测试。

●比特流一致性测试

MPEG-4的一致性比特流(compliantbitstream)是指实现了ISO/IEC14496-2:

2004在通用语法中定义的所有限制的比特流,包括ISO/IEC14496-2:

2004中第9章关于档次和级别的限制。

MPEG-4的一致性比特流应满足如下测试:

当使用解码软件对MPEG-4视频比特流进行解码时,不应出现任何由比特流引起的错误或不一致。

注:

测试中不考虑由于传输而产生的错误。

MPEG-4的比特流一致性测试的附加测试见ISO/IEC14496-4:

2004中的描述。

上述验证比特流一致性用到的解码软件可参考ISO/IEC14496-5:

2001中指定的软件。

●解码器的一致性测试

MPEG-4的视频解码器通常指某一特定档次和级别的解码器。

MPEG-4视频解码器的一致性测试见ISO/IEC14496-4:

2004中的规定,其中简单档次L5级别的视频解码器一致性测试见ISO/IEC14496-4:

2004/Amd.10:

2005的规定。

验证解码器一致性用到的软件可参考ISO/IEC14496-5:

2001中指定的软件。

满足特定档次和级别的MPEG-4视频解码器应能正确解码相应档次和级别的MPEG-4一致性比特流。

2.2.3SIP信令中的SDP容规

●SDP定义

联网系统中SIP消息体中携带的SDP容应符合RFC2327-SDPSessionDescriptionProtocol的相关要求。

应有如下字段:

Sessiondescription:

v=(protocolversion)

o=(owner/creatorandsessionidentifier).

s=(sessionname)

u=*(URIofdescription)

c=*(connectioninformation-notrequiredifincludedinallmedia)

Timedescription:

t=(timethesessionisactive)

Mediadescription

m=(medianameandtransportaddress)

c=*(connectioninformation-optionalifincludedatsession-level)

b=*(bandwidthinformation)

a=*(zeroormoremediaattributelines)

y=*(SSRC)

f=*(媒体描述)

说明:

a字段:

启用RFC4566中对a字段的定义【a=rtpmap:

/[/]中的,利用该属性携带编码器厂商名称(如:

大华或海康编码名称DAHUA或HIKVISION)。

该属性表明该流为某厂商编码器编码且是不符合本标准规定的媒体流,符合本标准规定的媒体流无需该属性。

例如:

a=rtpmap:

96DAHUA/90000;

a=rtpmap:

96HIKVISION/90000。

s字段:

使用s字段标识请求媒体流的操作类型。

“Play”代表实时点播;“Playback”代表历史回放;“Download”代表文件下载。

u字段:

u行应填写视音频文件的URI。

该URI取值有两种方式:

简捷方式和普通方式。

简捷方式直接采用产生该历史媒体的媒体源(如某个摄像头)的设备ID(应符合6.1.2的规定)以及相关参数,参数用“:

”分隔;普通方式采用存储设备ID[/文件夹]*/文件名,[/文件夹]*为0-N级文件夹。

t字段:

当回放或下载时,t行值为开始时间和结束时间,用“”分隔,时间格式见RFC4566的5.9,开始时间和结束时间均为要回放或下载的音视频文件录制时间段中的某个时刻。

y字段:

为十进制整数字符串,表示SSRC值。

格式如下:

Dddddddddd(第一位为历史或实时媒体流的标识位,1为历史,0为实时)。

f字段:

f=v/编码格式/分辨率/帧率/码率类型/码率大小a/编码格式/码率大小/采样率

以实际我司平台与其他平台对接过程中的SIP信令为例,下图中为我司与某厂家平台交互时请时视频的信令:

其中可以看出下方的SDP中m字段和a字段携带了3种编码方式,即国标中要求的PS流、H.264流和MEPG4流,这两个字段表明我司可以解码的3中形式,需要一提的是国标中也要求的SVAC(PT=99)视频流格式,主要用在部分ONVIF设备中,而大多数主流设备都没有按该方式编码,故我司没有做对该类码流的兼容。

S字段的值是“Play”表明该信令是请时点播。

2.3国标视频流示例

下面我们针对实际工程中遇见的码流来了解下在抓包时我们需要了解的只是,一般情况下我们在vtdu所在服务器或者CU客户端抓包,在Wireshark软件中打开,可以得到如下图所示的数据包:

此时对该数据按RTP协议方式查看,右键点击该包,按如下步骤操作:

操作完成后,数据包如下图所示:

现在我们可以看到从该包中已经可以显示传输方式,视频源,逻辑序号,和包的时间等参数了:

PT(payloadtype,负载类型)=96即表示该视频流为2.1中的基于PS封装的音视频数据;

SSRC(SynchronizationSourceIdentifier,同步源标示符)一般为32位,表示RTP包的起源,一般为源端随机分配的;

Seq(sequencenumber) 每发送一个RTP数据包,序列号增加1,表示该包在PS流中的逻辑序号;

Time(timestamp)反映了RTP数据包中的第一个比特组的采样时间,表示该包所在帧的时间,同一帧的时间应该一致。

值得注意的是,Seq=68的包末尾有一个Mark标示,该标示表示此帧为一个重要帧,下面我们打开该包来看看该标示的位置:

我们可以看见序号为68的包中RTP协议第5行为:

1…….=Marker:

True。

该值为True的时候即为重要帧,此mark表示一般表示一个完整帧的数据边界。

如下图:

序号为536的包是时间标志为101970的完整帧的结尾,而序号为537至539的三个数据包即可组成一个完整的数据包,在视频中即可组成一幅完整的画面。

另外,在国标中并没有对mark字段有详细的要求,但是目前我司CU或解码器解码的时候还是对会采用字段作参考。

国标中实际对一个完整帧的数据边界的定义在负载中,也就是除去前面这些后,真正组成一个画面的实际数据,如下图:

该包是该时间标示的所有包中的第一个,可看到该包中的payload负载部分的前6个字节是000001,有这个前缀的包即表示一个完整帧的开始。

如果符合国标标准,所有表示一个完整帧的第一个包负载部分的首6个字节都应该是000001。

三、实际问题浅析

在上述两节中说明了国标对一些协议和字段的要求。

在省平台项目中可以接触许多厂商的摄像机,虽然国标已经针对视频流定义了许多要求与协议,但是在实际对接中还是可以发现这些并不完善。

下面我们针对实际工程中遇到的一些问题作简单的分析:

3.1客户端解码花屏

在对接过程中,因为我司已经兼容了大部分主流厂商,但是在实际工程中还是遇见实时视频解码出现问题的地方,比如在七星关发现客户端解码华为的摄像机时出现了花屏的现象。

在VTDU上抓包分析后可以看出该包数据如下:

图1

图2

可以从第二幅图中看出Seq=42052的重要帧后的第一个帧的时间标识和该mark帧一样,而第一幅图中的mark帧后的第一帧与该mark帧的时间标识则不同。

以上两幅图中的数据是在同一数据包中,显然该mark标识的打法没有规律,但是我司解码的使用一般还是会参考该值,故由于在视频流中mark标识乱打的原因,平台在解码时还是会误认为mark前后为两个完整帧,即使两个帧有相同的时间标识,解码的时候还是会让着两个画面在同一时间显示出来,导致了花屏。

虽然此处对方的mark打法并没有不符合国标,但是我们依然要求了华为修改,未修改前播放视频时如下图:

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1