System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,尤其涉及一种视频帧封装方法、电子设备及计算机可读存储介质。
技术介绍
1、ipc(internet protocol camera,网络摄像头)和nvr(network video recorder,网络视频录像机)是网络视频监控系统的重要组成部分,ipc能够将捕获的视频信号转换为数字信号,并通过网络将数字信号以数据包的形式传输至nvr端。nvr则将接收到的数据包封装成视频帧,再将视频帧封装为gop(group of pictures,画面组)进行存储。用户可以通过nvr远程或本地查看视频(解码后的一个或多个画面组)。
2、传统的技术方案中,nvr封装画面组的内存和对画面组进行解码的内存通常是预先设置的固定值。然而,当nvr接收到的数据包的分辨率更大时,如nvr接入高分辨率的ipc时,画面组中的视频帧则会变大。若视频帧的大小超出nvr对画面组进行解码的内存上限,nvr则无法对画面组进行解码,导致视频帧无法正常播放。
技术实现思路
1、本申请实施例提供了一种视频帧封装方法、装置、芯片、电子设备及计算机可读存储介质,能够提高网络视频录像机的资源利用率,避免了视频帧无法解码的情况发生。
2、第一方面,本申请提供了一种视频帧封装方法,包括:获取帧单元最大封装内存和画面组最大封装内存,帧单元最大封装内存,画面组最大封装内存均和资源使用率负相关。响应于接收到第一数据包,确定存储第一数据包所需的第一内存。若第一内存小于或等于帧单元最大封装内存,则对第一数
3、在一些实施方式中,获取帧单元最大封装内存和画面组最大封装内存,包括:获取初始帧单元最大封装内存和初始画面组最大封装内存。根据带宽占用率、预设带宽权重、内存使用率和预设内存权重确定资源使用率,带宽占用率,内存使用率均和资源使用率正相关。根据资源使用率对初始帧单元最大封装内存进行修正,得到帧单元最大封装内存,帧单元最大封装内存与资源使用率负相关。根据资源使用率对初始画面组最大封装内存进行修正,得到画面组最大封装内存,画面组最大封装内存与资源使用率负相关。
4、在一些实施方式中,资源使用率为带宽占用率与带宽权重之积,和内存使用率与内存权重之积的和值。
5、在一些实施方式中,根据资源使用率对初始帧单元最大封装内存进行修正,得到帧单元最大封装内存,包括:获取帧单元最小封装内存。确定初始帧单元最大封装内存减去帧单元最小封装内存的差,为帧单元内存差。将资源使用率的补数与帧单元内存差的积,和帧单元最小封装内存相加,得到帧单元最大封装内存。根据资源使用率对初始画面组最大封装内存进行修正,得到画面组最大封装内存,包括:获取画面组最小封装内存。确定初始画面组最大封装内存减去画面组最小封装内存的差,为画面组内存差。将资源使用率的补数与画面组内存差的积,和获取画面组最小封装内存相加,得到画面组最大封装内存。
6、在一些实施方式中,独立封装条件为第一帧单元所需的第三内存大于或等于帧单元最小封装内存,且第一帧单元为帧内编码帧。
7、在一些实施方式中,若第一帧单元不满足独立封装条件,则确定画面组最大封装内存减去第二画面组所占用的内存的差,为第二画面组的剩余内存,第二画面组的封装状态为封装中。若剩余内存大于或等于第三内存,则将第一帧单元封装进第二画面组。若剩余内存小于第三内存,则新建第三画面组,并将第一帧单元封装进第三画面组,并将第二画面组的封装状态更新为封装结束,将第三画面组的封装状态设置为封装中,第三画面组在第二画面组之后,且与第二画面组相邻。
8、在一些实施方式中,若第一帧单元满足独立封装条件,则对第一帧单元进行封装,得到第一画面组,包括:若第一帧单元满足独立封装条件,则将处于封装中的第四画面组的封装状态更新为封装结束。对第一帧单元进行封装,得到第一画面组,并将第一画面组的封装状态设置为封装结束,第一画面组位于第四画面组之后,且与第四画面组相邻,第一画面组中存在第一帧单元,且不存在其他帧单元。
9、在一些实施方式中,上述第一方面中的方法还包括:根据帧单元最大封装内存确定解码内存,帧单元最大封装内存与解码内存正相关;基于解码内存对第一画面组、第二画面组、第三画面组或第四画面组进行解码,得到第一视频、第二视频、第三视频或第四视频,第一视频为第一画面组对应的视频,第二视频为第二画面组对应的视频,第三视频为第三画面组对应的视频,第四视频为第四画面组对应的视频。
10、在一些实施方式中,解码内存与帧单元最大封装内存相等。
11、第二方面,本申请提供了一种封装装置,装置包括:
12、获取模块,用于获取帧单元最大封装内存和画面组最大封装内存,帧单元最大封装内存,画面组最大封装内存均和资源使用率负相关。
13、处理模块,用于响应于接收到第一数据包,确定存储第一数据包所需的第一内存。
14、封装模块,用于在第一内存小于或等于帧单元最大封装内存时,对第一数据包进行封装,得到第一帧单元。
15、封装模块,还用于在第一帧单元满足独立封装条件时,对第一帧单元进行封装,得到第一画面组,第一画面组所需的第二内存小于画面组最大封装内存。
16、处理模块,还用于根据帧单元最大封装内存确定解码内存,帧单元最大封装内存与解码内存正相关。
17、解码模块,用于基于解码内存对第一画面组进行解码,得到第一视频。
18、第三方面,本申请提供了一种芯片,芯片用于执行如上述第一方面中任一项中的方法。
19、第四方面,本申请提供了一种电子设备,包括处理器和存储器,处理器用于执行存储器中存储的计算机程序以实现如上述第一方面中任一项中的方法。或者,
20、电子设备包括如第二方面中的芯片。
21、第五方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上述第一方面任一项中的方法。
22、本申请实施例提供的技术方案中,网络视频录像机可以获取实时修正的帧单元最大封装内存和画面组最大封装内存,并在存储第一数据包所需的第一内存小于或等于帧单元最大封装内存时,则对第一数据包进行封装,得到第一帧单元。在第一帧单元满足独立封装条件时,对第一帧单元进行封装,得到第一画面组能够提升资源使用率,使得封装后画面组中的一个或多个帧单元成功解码,避免了视频帧无法解码的情况发生。
本文档来自技高网...【技术保护点】
1.一种视频帧封装方法,其特征在于,所述方法包括:
2.根据权利要求1所述的视频帧封装方法,其特征在于,所述获取帧单元最大封装内存和画面组最大封装内存,包括:
3.根据权利要求2所述的视频帧封装方法,其特征在于,所述资源使用率为所述带宽占用率与所述带宽权重之积,和所述内存使用率与所述内存权重之积的和值。
4.根据权利要求2所述的视频帧封装方法,其特征在于,所述根据所述资源使用率对所述初始帧单元最大封装内存进行修正,得到所述帧单元最大封装内存,包括:
5.根据权利要求1-4任一项所述的视频帧封装方法,其特征在于,所述独立封装条件为存储所述第一帧单元所需的第三内存大于或等于帧单元最小封装内存,且所述第一帧单元为帧内编码帧。
6.根据权利要求5所述的视频帧封装方法,其特征在于,所述方法还包括:
7.根据权利要求5所述的视频帧封装方法,其特征在于,所述若所述第一帧单元满足独立封装条件,则对所述第一帧单元进行封装,得到第一画面组,包括:
8.根据权利要求6或7中的任一项所述的视频帧封装方法,其特征在于,在所
9.根据权利要求8所述的视频帧封装方法,其特征在于,所述解码内存与所述帧单元最大封装内存相等。
10.一种电子设备,其特征在于,包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序以实现如上述权利要求1-9中任一项中所述的方法。
11.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上述权利要求1-9中任一项中所述的方法。
...【技术特征摘要】
1.一种视频帧封装方法,其特征在于,所述方法包括:
2.根据权利要求1所述的视频帧封装方法,其特征在于,所述获取帧单元最大封装内存和画面组最大封装内存,包括:
3.根据权利要求2所述的视频帧封装方法,其特征在于,所述资源使用率为所述带宽占用率与所述带宽权重之积,和所述内存使用率与所述内存权重之积的和值。
4.根据权利要求2所述的视频帧封装方法,其特征在于,所述根据所述资源使用率对所述初始帧单元最大封装内存进行修正,得到所述帧单元最大封装内存,包括:
5.根据权利要求1-4任一项所述的视频帧封装方法,其特征在于,所述独立封装条件为存储所述第一帧单元所需的第三内存大于或等于帧单元最小封装内存,且所述第一帧单元为帧内编码帧。
6.根据权利要求5所述的视频帧封装方法,其...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。