System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及多媒体播放,具体而言,涉及一种传输流的解码方法、装置及存储介质。
技术介绍
1、mpeg2-ts流(mpeg2-transport stream,后续简称为传输流或者ts流)是一种标准的音视频数据流格式,可应用于如iptv和ott等的多媒体播放业务中,可以支持直播、点播、时移、回看等多种业务形态,是音视频领域使用最广泛的数据流格式之一。
2、ts流由一个个传输流包(ts package,也可简称为ts包)组成,每个ts包可以存储节目关联表(program association table,简称pat或pat表)、节目映射表(program maptable,简称pmt或pmt表)、音频数据或视频数据等信息(每个ts包只存储一种),编码规范的标准ts流的解析流程为:首先解析ts包的包头,通过ts包的数据包标识(packet id,简称pid)找到pat表(pat表的pid通常固定为0x00);解析pat表获取pmt表的pid,通过该pid从ts包中找到pmt表;解析pmt表得到音频和视频的pid,通过音视频的pid分别从ts包中找到音频和视频数据;音视频解码。
3、但是对于一些编码不规范的ts流,会存在没有pat表,或者pat表间隔很大且pmt表间隔正常的情况,如果按照一般的解析流程,会出现无法播放或者起播很慢的情况,影响正常的传输流解码。
技术实现思路
1、本申请实施例提供了一种传输流的解码方法、装置及存储介质,以至少解决相关技术中对编码不规范的
2、根据本申请的一个实施例,提供了一种传输流的解码方法,所述方法包括:
3、获取传输流,并解析所述传输流得到传输流包;
4、确定所述传输流包中表标识等于第一阈值的目标传输流包;
5、根据预设的校验规则对所述目标传输流包的格式进行校验,确定符合所述校验规则的所述目标传输流包为节目映射表;
6、获取所述节目映射表对应的流类型以及音视频数据包标识,并判断所述流类型是否为可识别的音视频流类型,若可识别,则获取所述音视频数据包标识对应的音视频数据;
7、根据所述音视频数据进行解码;
8、可选地,所述获取传输流,并解析所述传输流得到传输流包之后,所述确定所述传输流包中表标识等于第一阈值的目标传输流包之前,所述方法还包括:
9、确定所述传输流属于不规范编码码流;所述不规范编码码流的类型至少包括:传输流不包括节目关联表,或者传输流的节目关联表之间的第一间隔与传输流的节目映射表之间的第二间隔不一致,且所述第一间隔大于所述第二间隔;
10、可选地,所述获取传输流,包括:
11、获取播放命令;
12、接收所述播放命令对应的传输流;
13、可选地,所述确定所述传输流包中表标识等于第一阈值的目标传输流包,包括:
14、去除所述传输流包的包头,获取所述传输流包的表标识;
15、将所述表标识等于第一阈值的传输流包作为所述目标传输流包;
16、可选地,所述将所述表标识等于第一阈值的传输流包作为所述目标传输流包之前,所述方法还包括:
17、确定所述传输流包的数据包标识不等于第二阈值;
18、可选地,所述将所述表标识等于第一阈值的传输流包作为所述目标传输流包之前,所述确定所述传输流包的数据包标识不等于第二阈值之后,所述方法还包括:
19、确定所述传输流包未解析过节目关联表;
20、可选地,所述获取所述音视频数据包标识对应的音视频数据,包括:获取音频数据包标识对应的音频数据,和/或,获取视频数据包标识对应的视频数据;
21、相应地,所述根据所述音视频数据进行解码,包括:通过解码器根据所述音频数据和/或所述视频数据进行解码。
22、根据本申请的另一个实施例,提供了一种传输流的解码装置,所述装置包括:
23、获取解析模块,用于获取传输流,并解析所述传输流得到传输流包;
24、确定模块,用于确定所述传输流包中表标识等于第一阈值的目标传输流包;
25、校验模块,用于根据预设的校验规则对所述目标传输流包的格式进行校验,确定符合所述校验规则的所述目标传输流包为节目映射表;
26、流类型判断模块,用于获取所述节目映射表对应的流类型以及音视频数据包标识,并判断所述流类型是否为可识别的音视频流类型,若可识别,则获取所述音视频数据包标识对应的音视频数据;
27、解码模块,用于根据所述音视频数据进行解码。
28、根据本申请的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
29、根据本申请的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
30、本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
31、本申请实施例提供的该方法,获取传输流,并解析所述传输流得到传输流包;确定所述传输流包中表标识等于第一阈值的目标传输流包;根据预设的校验规则对所述目标传输流包的格式进行校验,确定符合所述校验规则的所述目标传输流包为节目映射表;获取所述节目映射表对应的流类型以及音视频数据包标识,并判断所述流类型是否为可识别的音视频流类型,若可识别,则获取所述音视频数据包标识对应的音视频数据;根据所述音视频数据进行解码。
32、通过本申请,由于在传输流包的识别过程中,直接根据解析传输流得到的传输流包中的表标识查找目标传输流包,并确定符合校验规则的目标传输流包为节目映射表,也就是说省去了先找节目关联表再根据节目关联表查找节目映射表的步骤,从而直接根据节目映射表中的流类型和音视频包标识获取音视频数据进行解码,因此,对编码规范的标准ts流和编码不规范的ts流均可正常进行解码,可以解决对编码不规范的传输流不能正常解码的问题,达到对任意的ts流均能快速解码起播的效果。
本文档来自技高网...【技术保护点】
1.一种传输流的解码方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述获取传输流,并解析所述传输流得到传输流包之后,所述确定所述传输流包中表标识等于第一阈值的目标传输流包之前,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述获取传输流,包括:
4.根据权利要求1所述的方法,其特征在于,所述确定所述传输流包中表标识等于第一阈值的目标传输流包,包括:
5.根据权利要求4所述的方法,其特征在于,所述将所述表标识等于第一阈值的传输流包作为所述目标传输流包之前,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述将所述表标识等于第一阈值的传输流包作为所述目标传输流包之前,所述确定所述传输流包的数据包标识不等于第二阈值之后,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述获取所述音视频数据包标识对应的音视频数据,包括:获取音频数据包标识对应的音频数据,和/或,获取视频数据包标识对应的视频数据;
8.一种传输流的解码装置,其特征在于,所述
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至7任一项中所述的方法。
...【技术特征摘要】
1.一种传输流的解码方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述获取传输流,并解析所述传输流得到传输流包之后,所述确定所述传输流包中表标识等于第一阈值的目标传输流包之前,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述获取传输流,包括:
4.根据权利要求1所述的方法,其特征在于,所述确定所述传输流包中表标识等于第一阈值的目标传输流包,包括:
5.根据权利要求4所述的方法,其特征在于,所述将所述表标识等于第一阈值的传输流包作为所述目标传输流包之前,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述将所述表标识等于第一阈值的传输流包作...
【专利技术属性】
技术研发人员:梅慧文,章鹏,黄建,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。