一种针对非标格式视频流零拷贝脱壳的方法及系统技术方案

技术编号:31617278 阅读:13 留言:0更新日期:2021-12-29 18:51
本发明专利技术公开了一种针对非标格式视频流零拷贝脱壳的方法及系统,方法包括以下步骤:输入视频流,然后侦测视频格式,并匹配解析器,如果匹配成功,则进入下一步,如果匹配失败,则结束;解析视频流格式;重复上述步骤,输出裸帧数据;系统包括:脱壳模块、侦测模块、匹配模块和解析模块。本发明专利技术具有利用输入视频流的内存,从中标记出含有裸帧数据的内存块位置,重建组合成包含完整一帧数据的结构体,进行输出,实现视频流零拷贝脱壳的优点。现视频流零拷贝脱壳的优点。现视频流零拷贝脱壳的优点。

【技术实现步骤摘要】
一种针对非标格式视频流零拷贝脱壳的方法及系统


[0001]本专利技术涉及视频解析领域,特别是涉及一种针对非标格式视频流零拷贝脱壳的方法及系统。

技术介绍

[0002]现在视频流的脱壳常常采用并发多路视频脱壳的方法,并发多路视频脱壳方法的主要流程为首先将视频数据拷贝到输入缓存中,然后不断从输入缓存中取出视频数据拷贝到解析缓存中,并在解析缓存中进行帧数据解析,再将解析缓存中解析出的帧数据拷贝到输出缓存中,待解析出完整一帧后,输出该输出缓存用于保存裸帧数据。
[0003]并发多路视频脱壳方法中存在多个视频数据拷贝的环节以及多个视频数据缓存的环节,主要体现在视频数据通过输入拷贝放入到输入缓存中、视频数据从输入缓存中取出通过解析拷贝放入到解析缓存中、解析缓存解析出的帧数据通过输出帧拷贝放入到输出缓存中,这导致了三个方面的问题:
[0004]1、根据每秒内存拷贝的总量计算公式:
[0005]总量/秒(Mbps)=码率(Mbps)*拷贝次数*并发路数
[0006]每秒内存拷贝的总量与拷贝次数和并发路数成正比关系,也就是说两者任意增加一个,拷贝的数据总量就增加一倍,CPU(中央处理器)消耗也就增加一倍,脱壳的效率也就降低了,而该方法中存在多个视频数据拷贝的环节,同时该方法的视频数据处理过程是流式的,连续不断的,CPU在不间断地拷贝数据,这也就导致了该方法的脱壳效率低,视频数据批量处理效果差。
[0007]2、该方法中存在多个视频数据缓存的环节,视频数据缓存的环节越多,数据处理的及时性就越差,处理的延时性也就越大,那么从数据输入到裸帧输出的时间延时就越大,这也就导致了该方法数据处理的及时性差,数据输出的延时性大。
[0008]3、根据内存的占用量计算公式:
[0009]内存占用量(MB)=I帧大小(MB)*缓存个数*并发路数
[0010]内存占有量与缓存个数和并发路数成正比,而该方法中存在多个视频数据缓存的环节,当并发路数增加时,内存占用量也会同比增加,导致该方法在进行大量视频数据处理时,对内存要求很高。
[0011]为了解决上述技术问题,亟需一种降低CPU的消耗、脱壳延时以及内存占用,从而提高了脱壳效率的方法及系统。

技术实现思路

[0012]针对上述问题,本专利技术提供了一种针对非标格式视频流零拷贝脱壳的方法及系统,在脱壳过程中,没有对源码流进行缓存拷贝,也没有对输出的裸帧数据进行内存申请与拷贝,而是利用输入视频流的内存,从中标记出含有裸帧数据的内存块位置,重建组合成包含完整一帧数据的结构体,进行输出,实现视频流零拷贝脱壳。
[0013]本专利技术的技术方案是:
[0014]一方面,本专利技术提供了一种针对非标格式视频流零拷贝脱壳的方法,包括以下步骤:
[0015]S1、输入视频流,然后侦测视频格式,并匹配解析器,如果匹配成功,则进入步骤S2,如果匹配失败,则结束;
[0016]S2、解析视频流格式,包括:S21、分析视频流是否具有系统头,若有,则偏移系统头的位置后,进入步骤S22,若无,则直接进入步骤S22;
[0017]S22、分析视频头,偏移视频头的位置后,判断偏移后的位置是否超过输入视频流的结束位置,如果否,则解析视频头并获取视频头数据,如果是,则结束分析;
[0018]分析音频头,偏移音频头的位置后,判断偏移后的位置是否超过输入视频流的结束位置,如果否,则解析音频头并获取音频头数据,如果是,则结束分析;
[0019]分析私有头,偏移私有头的位置后,判断偏移后的位置是否超过输入视频流的结束位置,如果否,则解析私有头并获取私有头数据,如果是,则结束分析;
[0020]S23、解析视频帧数据:将视频帧的起始地址和长度记录到Chunk块中,然后偏移视频帧的长度,判断当前解析的位置是否超过输入视频流的结束位置,如果否,则结束该视频帧的解析并输出视频帧数据,如果是,则结束本次解析;
[0021]解析音频帧数据:将音频帧的起始地址和长度记录到Chunk块中,然后偏移音频帧的长度,判断当前解析的位置是否超过输入视频流的结束位置,如果否,则结束该音频帧的解析并输出音频帧数据,如果是,则结束本次解析;
[0022]解析私有帧数据:将私有帧的起始地址和长度记录到Chunk块中,然后偏移私有帧的长度,判断当前解析的位置是否超过输入视频流的结束位置,如果否,则结束该私有帧的解析并输出私有帧数据,如果是,则结束本次解析;
[0023]S3、重复步骤S2,输出裸帧数据。
[0024]本专利技术通过上述技术方案,消除了视频脱壳过程中的拷贝环节,有效地降低了内存数据的拷贝量,减少了脱壳过程中对CPU的消耗,提升了脱壳效率,同时消除了数据缓存环节,减少了数据流转过程,数据处理的及时性提高,且降低了从数据输入到裸帧数据输出的延时性,数据缓存环节的消除,减少了内存的申请占用,降低了对内存资源的消耗。
[0025]在进一步的技术方案中,在执行步骤S23前,先:
[0026]判断视频帧是否完整,如果是,则进行步骤S23,如果否,则选择解决方案。
[0027]本专利技术通过上述技术方案,解析视频之前对视频进行检测,防止因视频帧有缺陷导致解析出错。
[0028]在进一步的技术方案中,解决方案包括:
[0029]判断视频帧的缺失类型,如果视频帧缺少开始码,则将开始码记录在位于所述Chunk块之前的Chunk块中,如果视频帧为I帧,且缺少PPS和SPS时,则将起始地址和长度记录在位于所述Chunk块之前的Chunk块中。
[0030]本专利技术通过上述技术方案,提供了解决视频帧残缺的技术方案,确保解析器能顺利对输出视频流进行解析。
[0031]在进一步的技术方案中,步骤S1中,侦测视频格式的具体方法如下:
[0032]根据输入视频流的系统头,判断出输入视频流的封装格式类型。
[0033]本专利技术提供如何侦测视频格式,可以准确地判断出输入视频流的封装格式类型,以匹配相应的解析器。
[0034]在进一步的技术方案中,步骤S1中,匹配解析器的具体方法如下:
[0035]枚举所有解析器去匹配输入视频流。
[0036]本专利技术通过枚举解析器去匹配输入视频流,根据输入视频流的封装格式以匹配成功。
[0037]另一方面,本专利技术还提供了一种针对非标格式视频流零拷贝脱壳的系统,包括:
[0038]脱壳模块:用于输入视频流;
[0039]侦测模块:用于识别视频格式的类型;
[0040]匹配模块:用于选择符合视频格式类型的解析模块;
[0041]解析模块:用于解析视频格式,并输出裸帧数据。
[0042]本专利技术的有益效果是:
[0043]1、有效地降低了内存数据的拷贝量,减少了脱壳过程中对CPU的消耗,提升了脱壳效率;
[0044]2、数据缓存环节的消除,减少了数据流转过程,数据处理的及时性提高,降低了从数据输入到裸帧数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对非标格式视频流零拷贝脱壳的方法,其特征在于,包括以下步骤:S1、输入视频流,然后侦测视频格式,并匹配解析器,如果匹配成功,则进入步骤S2,如果匹配失败,则结束;S2、解析视频流格式,包括:S21、分析视频流是否具有系统头,若有,则偏移系统头的位置后,进入步骤S22,若无,则直接进入步骤S22;S22、分析视频头,偏移视频头的位置后,判断偏移后的位置是否超过输入视频流的结束位置,如果否,则解析视频头并获取视频头数据,如果是,则结束分析;分析音频头,偏移音频头的位置后,判断偏移后的位置是否超过输入视频流的结束位置,如果否,则解析音频头并获取音频头数据,如果是,则结束分析;分析私有头,偏移私有头的位置后,判断偏移后的位置是否超过输入视频流的结束位置,如果否,则解析私有头并获取私有头数据,如果是,则结束分析;S23、解析视频帧数据:将视频帧的起始地址和长度记录到Chunk块中,然后偏移视频帧的长度,判断当前解析的位置是否超过输入视频流的结束位置,如果否,则结束该视频帧的解析并输出视频帧数据,如果是,则结束本次解析;解析音频帧数据:将音频帧的起始地址和长度记录到Chunk块中,然后偏移音频帧的长度,判断当前解析的位置是否超过输入视频流的结束位置,如果否,则结束该音频帧的解析并输出音频帧数据,如果是,则结束本次解析;解析私有帧数据:将私有帧的起始地址和长度记录到Chunk块中,然后偏移私有帧的长度,判断当前解析...

【专利技术属性】
技术研发人员:张向阳
申请(专利权)人:北京臻观数智科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1