视频倒放方法、装置、电子设备及存储介质制造方法及图纸

技术编号:37075388 阅读:10 留言:0更新日期:2023-03-29 19:52
本申请实施例涉及视频处理技术领域,提供一种视频倒放方法、装置、电子设备及存储介质,在进行视频倒放时,基于码流参数和电子设备的当前可用内存值判断电子设备的当前内存余量是否充足,如果电子设备的当前内存余量不足,则采用实时视频低内存倒放模式对解码后的视频帧并行的进行缩放及重编码处理;如果电子设备的当前内存余量充足,则采用实时视频高内存倒放模式对解码后的视频帧并行的进行缩放处理。也就是,根据码流参数和电子设备的当前可用内存值动态的选择倒放模式,使得视频倒放在播放性能和内存使用上达到动态平衡,从而可以实现兼顾播放性能和内存使用的效果。实现兼顾播放性能和内存使用的效果。实现兼顾播放性能和内存使用的效果。

【技术实现步骤摘要】
视频倒放方法、装置、电子设备及存储介质


[0001]本申请实施例涉及视频处理
,具体而言,涉及一种视频倒放方法、装置、电子设备及存储介质。

技术介绍

[0002]在安防领域,录像回放功能是不可或缺的功能之一,在回溯某一时间点的录像时,通常会跳转到期望时间点附近正向播放,当到达事件发生点时,需要来回正向、逆向进行反复播放。因此视频倒放功能是录像回放功能中的一个重要功能点。
[0003]目前,安防主流视频编码协议为H264、H265编码,其主要有I帧、P帧几种帧类型。I帧为帧内编码,可以独立进行解码,P帧为帧间编码,需要参考前面最近一个I帧进行解码,两个I帧之间通常包含多个P帧,通常称之为GOP(Group of Pictures,画面组)。例如,存在图像序列I0

P1

P2

P3

P4

P5

I6

P7

P8

P9

P10

P11,其中I0

P1

P2

P3

P4

P5为一个GOP,在视频正放时,是按照I0

P1

P2

P3

P4

P5的顺序进行解码,显示也按照I0

P1<br/>‑
P2

P3

P4

P5的顺序进行显示,但是,在视频倒放时,是按照I0

P1

P2

P3

P4

P5的顺序进行解码,显示却是按照P5

P4

P3

P2

P1

I0的顺序进行显示,由于在解码完I0、P1、P2、P3、P4时P5还未解码,因此必须将I0、P1、P2、P3、P4解码后的数据缓存起来,待P5解码完毕后,再按照P5

P4

P3

P2

P1

I0的顺序进行渲染,通常最少需要缓存一个GOP的解码后的数据。
[0004]同时,由于解码后的数据一般为YUV420格式,4K分辨率下一帧所消耗的内存为3840*2160*3/2=12M,按照安防主流50帧的GOP大小计算,需要至少消耗12*50=600M的内存,而为了播放的流畅性,一般要缓存一个GOP以上的数据帧,导致一些内存不足的设备,基本无法满足视频倒放需求。

技术实现思路

[0005]本申请实施例的目的在于提供一种视频倒放方法、装置、电子设备及存储介质,用以解决现有的视频倒放无法兼顾播放性能和内存使用的问题。
[0006]为了实现上述目的,本申请实施例采用的技术方案如下:
[0007]第一方面,本申请实施例提供了一种视频倒放方法,应用于电子设备,所述方法包括:
[0008]响应视频倒放指令,获取目标视频码流中的首个画面组GOP;
[0009]基于首个GOP的码流参数和所述电子设备的当前可用内存值,判断所述电子设备的当前内存余量是否充足;
[0010]若所述电子设备的当前内存余量不足,则采用实时视频低内存倒放模式对所述首个GOP进行视频倒放;其中,所述实时视频低内存倒放模式用于对所述首个GOP解码后的视频帧并行的进行缩放及重编码处理;
[0011]若所述电子设备的当前内存余量充足,则采用实时视频高内存倒放模式对所述首个GOP进行视频倒放;其中,所述实时视频高内存倒放模式用于对所述首个GOP解码后的视
频帧并行的进行缩放处理。
[0012]可选地,所述采用实时视频低内存倒放模式对所述首个GOP进行视频倒放的步骤,包括:
[0013]对所述首个GOP中的每一视频帧逐帧进行解码,得到每一解码视频帧;其中,每一所述解码视频帧均具有帧序号,所述帧序号表征所述解码视频帧对应的所述视频帧在所述首个GOP中的顺序;
[0014]针对任一所述解码视频帧,从预先建立的多线程缩放重编码线程池中确定第一可用线程;
[0015]基于所述解码视频帧的类型,利用所述第一可用线程对所述解码视频帧进行缩放及重编码处理得到重编码视频帧,并按照所述解码视频帧的帧序号对所述重编码视频帧进行倒序存储;
[0016]在完成所有所述解码视频帧的处理后,对每一所述重编码视频帧逐帧进行重解码及渲染,以完成所述首个GOP的视频倒放。
[0017]可选地,所述基于所述解码视频帧的类型,利用所述第一可用线程对所述解码视频帧进行缩放及重编码处理得到重编码视频帧,并按照所述解码视频帧的帧序号对所述重编码视频帧进行倒序存储的步骤,包括:
[0018]当所述解码视频帧的类型为硬件解码数据时,所述第一可用线程通过图形处理器GPU对所述解码视频帧进行缩放处理得到缩放视频帧,并将所述缩放视频帧存储至预先申请的离屏表面,再按照设定图片格式对所述离屏表面的所述缩放视频帧进行重编码得到所述重编码视频帧;
[0019]当所述解码视频帧的类型为软件解码数据时,所述第一可用线程通过中央处理器CPU对所述解码视频帧进行缩放处理得到缩放视频帧,并按照设定图片格式对所述缩放视频帧进行重编码得到所述重编码视频帧;
[0020]所述第一可用线程按照所述帧序号,对所述重编码视频帧进行倒序存储。
[0021]可选地,所述采用实时视频高内存倒放模式对所述首个GOP进行视频倒放的步骤,包括:
[0022]对所述首个GOP中的每一视频帧逐帧进行解码,得到每一解码视频帧;其中,每一所述解码视频帧均具有帧序号,所述帧序号表征所述解码视频帧对应的所述视频帧在所述首个GOP中的顺序;
[0023]针对任一所述解码视频帧,从预先建立的多线程缩放线程池中确定第二可用线程;
[0024]基于所述解码视频帧的类型,利用所述第二可用线程对所述解码视频帧进行缩放处理得到缩放视频帧,并按照所述解码视频帧的帧序号对所述缩放视频帧进行倒序存储;
[0025]在完成所有所述解码视频帧的处理后,对每一所述缩放视频帧逐帧进行渲染,以完成所述首个GOP的视频倒放。
[0026]可选地,所述基于所述解码视频帧的类型,利用所述第二可用线程对所述解码视频帧进行缩放处理得到缩放视频帧,并按照所述解码视频帧的帧序号对所述缩放视频帧进行倒序存储的步骤,包括:
[0027]从预先建立的缓存池中申请所述解码视频帧对应的缓存块,所述缓存块的类型与
所述解码视频帧的类型一致;
[0028]当所述解码视频帧的类型为硬件解码数据时,所述第二可用线程通过GP本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种视频倒放方法,其特征在于,应用于电子设备,所述方法包括:响应视频倒放指令,获取目标视频码流中的首个画面组GOP;基于首个GOP的码流参数和所述电子设备的当前可用内存值,判断所述电子设备的当前内存余量是否充足;若所述电子设备的当前内存余量不足,则采用实时视频低内存倒放模式对所述首个GOP进行视频倒放;其中,所述实时视频低内存倒放模式用于对所述首个GOP解码后的视频帧并行的进行缩放及重编码处理;若所述电子设备的当前内存余量充足,则采用实时视频高内存倒放模式对所述首个GOP进行视频倒放;其中,所述实时视频高内存倒放模式用于对所述首个GOP解码后的视频帧并行的进行缩放处理。2.如权利要求1所述的方法,其特征在于,所述采用实时视频低内存倒放模式对所述首个GOP进行视频倒放的步骤,包括:对所述首个GOP中的每一视频帧逐帧进行解码,得到每一解码视频帧;其中,每一所述解码视频帧均具有帧序号,所述帧序号表征所述解码视频帧对应的所述视频帧在所述首个GOP中的顺序;针对任一所述解码视频帧,从预先建立的多线程缩放重编码线程池中确定第一可用线程;基于所述解码视频帧的类型,利用所述第一可用线程对所述解码视频帧进行缩放及重编码处理得到重编码视频帧,并按照所述解码视频帧的帧序号对所述重编码视频帧进行倒序存储;在完成所有所述解码视频帧的处理后,对每一所述重编码视频帧逐帧进行重解码及渲染,以完成所述首个GOP的视频倒放。3.如权利要求2所述的方法,其特征在于,所述基于所述解码视频帧的类型,利用所述第一可用线程对所述解码视频帧进行缩放及重编码处理得到重编码视频帧,并按照所述解码视频帧的帧序号对所述重编码视频帧进行倒序存储的步骤,包括:当所述解码视频帧的类型为硬件解码数据时,所述第一可用线程通过图形处理器GPU对所述解码视频帧进行缩放处理得到缩放视频帧,并将所述缩放视频帧存储至预先申请的离屏表面,再按照设定图片格式对所述离屏表面的所述缩放视频帧进行重编码得到所述重编码视频帧;当所述解码视频帧的类型为软件解码数据时,所述第一可用线程通过中央处理器CPU对所述解码视频帧进行缩放处理得到缩放视频帧,并按照设定图片格式对所述缩放视频帧进行重编码得到所述重编码视频帧;所述第一可用线程按照所述帧序号,对所述重编码视频帧进行倒序存储。4.如权利要求1所述的方法,其特征在于,所述采用实时视频高内存倒放模式对所述首个GOP进行视频倒放的步骤,包括:对所述首个GOP中的每一视频帧逐帧进行解码,得到每一解码视频帧;其中,每一所述解码视频帧均具有帧序号,所述帧序号表征所述解码视频帧对应的所述视频帧在所述首个GOP中的顺序;针对任一所述解码视频帧,从预先建立的多线程缩放线程池中确定第二可用线程;
基于所述解码视频帧的类型,利用所述第二可用线程对所述解码视频帧进行缩放处理得到缩放视频帧,并按照所述解码视频帧的帧序号对所述缩放视频帧进行倒序存储;在完成所有所述解码视频帧的处理后,对每一所述缩放视频帧逐帧进行渲染,以完成所述首个GOP的视频倒放。5.如权利要求4所述的方法,其特征在于,所述基于所述解码视频帧的类型,利用所述第二可用线程对所述解码视频帧进行缩放处理得到缩放视频帧,并按照所述解码视频帧的帧序号对所述缩放视频帧进行倒序存储的步骤,包括:从预先建立的缓存池中申请所述解码视频帧对应的缓存块,所述缓存块的类型与所述解码视频帧的类型一致;当所述解码视频帧的类型为硬件解码数据时,所述第二可用线程通过GPU对所述解码视频帧进行缩放处理得到所述缩放视频帧,并将所述缩放视频帧存储至对应的所述缓存块;当所述解码视频帧的类型为软件解码数据时,所述第二可用线程通过CPU对所述解码视频帧进行缩放处理得到所述缩放视频帧,并将所述缩放视频帧存储至对应的所述缓存块;所述第二可用线程按照所述帧序号,对存储有所述缩放视频帧的所述缓存块进行倒序排列。6.如权利要求1所述的...

【专利技术属性】
技术研发人员:刘航
申请(专利权)人:重庆紫光华山智安科技有限公司
类型:发明
国别省市:

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

1