网络视频流的处理方法、电子设备及计算机可读存储介质技术

技术编号:32277889 阅读:15 留言:0更新日期:2022-02-12 19:44
本发明专利技术提供一种网络视频流的处理方法、电子设备及计算机可读存储介质,其选择与图片处理模块的处理帧率匹配的视频帧,然后将与本地时间不同步的视频帧忽略,使图片处理模块只处理与其处理帧率匹配且时间同步的视频帧,实时性高,可以兼容网络不稳定、断网恢复的场景,也可以兼容处理速度慢的图片处理模块,满足在安全场景做智能监控或者报警的应用需求。全场景做智能监控或者报警的应用需求。全场景做智能监控或者报警的应用需求。

【技术实现步骤摘要】
网络视频流的处理方法、电子设备及计算机可读存储介质


[0001]本专利技术属于网络视频流处理
,尤其涉及一种网络视频流的处理方法、电子设备及计算机可读存储介质。

技术介绍

[0002]视频中的一个参数,是单位时间内视频帧的数量,一般而言,帧数越多,则视频记录数据就越完整。一般网络上流行的视频流的帧率不会太高,因为它会影响传输带宽,相反,一些高清蓝光视频的本地视频数据,帧率往往会很大。
[0003]视频的播放实际上是对视频中的帧数据按时间时刻的顺序进行展示,如果其中某些帧展示慢了,那么给观众的感觉就会是视频播放不顺畅并且卡顿,造成这个原因的问题很多,其中最主要的原因是网络带宽传输问题。
[0004]而要对视频数据进行处理,很顺其自然的方法就是通过本地的图片处理模块对视频数据中的每一个视频帧进行处理,如通过人工智能对视频帧进行分析,实现目标的识别等等,与视频的播放原理相同,图片处理模块会对视频每一帧图片进行处理,这个过程也无可避免的会出现网络带宽波动,更甚者会出现延迟极高的情况,导致这种现象的问题是,在视频播放的时候,只需要对视频帧进行展示,而对图片处理时往往需要对视频帧进行算法计算,这个计算量的耗时是展示耗时的百倍之差,甚至更大,当在安全场景做智能监控或者报警,实时性要求非常高,秒级别的延时可能会引起人员伤亡,或者灾难的发生,相反,实时地告警,可以挽救种种不幸的事件。

技术实现思路

[0005]基于此,针对上述技术问题,提供一种实时性高的网络视频流的处理方法、电子设备及计算机可读存储介质。
[0006]本专利技术采用的技术方案如下:
[0007]一方面,提供一种网络视频流的处理方法,其特征在于,包括:
[0008]S101、依次获取网络视频流的视频帧;
[0009]S102、选择与图片处理模块的处理帧率匹配的视频帧作为待处理视频帧;
[0010]S103、确定所述待处理视频帧是否为实时帧,若是,则由所述图片处理模块对所述待处理视频帧进行处理,若否,则将该待处理视频帧忽略。
[0011]另一方面,提供一种电子设备,其特征在于,包括存储模块,所述存储模块包括由处理器加载并执行的指令,所述指令在被执行时使所述处理器执行上述一种网络视频流的处理方法。
[0012]再一方面,提供一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,其特征在于,所述一个或多个程序当被处理器执行时,实现上述一种网络视频流的处理方法。
[0013]本专利技术选择与图片处理模块的处理帧率匹配的视频帧,然后将与本地时间不同步
的视频帧忽略,使图片处理模块只处理与其处理帧率匹配且时间同步的视频帧,实时性高,可以兼容网络不稳定、断网恢复的场景,也可以兼容处理速度慢的图片处理模块,满足在安全场景做智能监控或者报警的应用需求。
附图说明
[0014]下面结合附图和具体实施方式对本专利技术进行详细说明:
[0015]图1为本专利技术的流程图;
[0016]图2为本专利技术实施例的原理图。
具体实施方式
[0017]如图1以及图2所示,本说明书实施例提供一种网络视频流的处理方法,包括:
[0018]S101、依次获取网络视频流的视频帧。
[0019]在实际监控领域的应用场景中,可以获取网络摄像头的视频流,然后从视频流中依次读取每一个视频帧,视频流为rtsp协议,可以通过opencv的库获取视频流。
[0020]在一种实施方式中,步骤S101进一步包括:
[0021]a、每获取一个视频帧,计数n加1,n的初始值为0。
[0022]b、获取当前视频帧的时间戳,第一个视频帧的时间戳记为time_f,后续视频帧的时间戳记为time_v。
[0023]c、获取当前视频帧的当前本地时间,第一个视频帧的本地时间记为system_f,后续视频帧的本地时间记为system_v。
[0024]这里的本地时间是指执行本专利技术方法的程序服务器的本地时间。
[0025]其中,获取视频帧的函数为cameraCapture.read(),获取视频帧时间戳的函数为milliseconds=cameraCapture.get(),获取程序服务器的本地时间的函数为milliseconds=int(round(time.time())*1000)。
[0026]S102、选择与图片处理模块的处理帧率匹配的视频帧作为待处理视频帧。
[0027]在实际应用场景中,图片处理模块可以为人工智能图片处理模型,如yolov5模型。
[0028]在一种实施方式中,步骤S102进一步包括:
[0029]a、确定网络视频流的帧率fps以及图片处理模块的处理帧率ai_fps。
[0030]b、若fps与ai_fps相同,则每一个视频帧均作为待处理视频帧,否则,通过公式1计算帧间隔Interval:
[0031]Interval=math.ceil(fps/ai_fps)
ꢀꢀꢀꢀ
(1)
[0032]在网络视频流的帧率fps可以被配置的场景下,可以将fps配置为于ai_fps相同。
[0033]c、根据帧间隔Interval进行跳帧处理:
[0034]若当前视频帧的计数n与帧间隔Interval不相等,则返回步骤S101获取下一个视频帧,否则,将当前视频帧作为待处理视频帧,并将计数n更新为0。
[0035]如帧间隔Interval为4,当前视频帧的计数n为0时,返回步骤S101获取下一个视频帧,n为1、2或者3时,同样返回步骤S101获取下一个视频帧,直到n为4时,则将当前视频帧作为待处理视频帧。
[0036]其中,网络视频流的帧率fps可以通过函数fps=video.get()获取,图片处理模块
的处理帧率ai_fps是已知的,可以通过公式2计算后预先配置:
[0037]ai_fps=int(1000/time_ai)
ꢀꢀꢀꢀ
(2)
[0038]time_ai为图片处理模块处理一个视频帧平均耗时,单位为毫秒,如统计图片处理模块处理100次的耗时,将总耗时除以100,就可以得到time_ai。
[0039]公式(1)通过math.ceil函数向上取整,公式(2)通过int函数向下取整,而没有采用四舍五入,这是因为执行过程中存在网络通信和其它模块运行所产生的时间消耗,这样取整后正好可以抵消这部分的耗时。
[0040]通过步骤S102可以均匀地选择待处理视频帧,不存在视频内容缺失情况,保留了视频原始内容的完整性,这样可以有效解决图片处理模块处理图片耗时而导致处理结果实质性很差的问题,相反,如果不按照图片处理模块的处理帧率选择视频帧,将所有视频帧都给图片处理模块进行处理,会导致其不堪重负,既消耗了大量时间,还无法给出实时的结果。
[0041]S103、确定待处理视频帧是否为实时帧,若是,则本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种网络视频流的处理方法,其特征在于,包括:S101、依次获取网络视频流的视频帧;S102、选择与图片处理模块的处理帧率匹配的视频帧作为待处理视频帧;S103、确定所述待处理视频帧是否为实时帧,若是,则由所述图片处理模块对所述待处理视频帧进行处理,若否,则将该待处理视频帧忽略。2.根据权利要求1所述的一种网络视频流的处理方法,其特征在于,所述步骤S101进一步包括:每获取一个视频帧,计数n加1,n的初始值为0;获取当前视频帧的时间戳,第一个视频帧的时间戳记为time_f,后续视频帧的时间戳记为time_v;获取当前视频帧的当前本地时间,第一个视频帧的本地时间记为system_f,后续视频帧的本地时间记为system_v。3.根据权利要求2所述的一种网络视频流的处理方法,其特征在于,所述步骤S102进一步包括:确定所述网络视频流的帧率fps以及图片处理模块的处理帧率ai_fps;若所述fps与ai_fps相同,则每一个视频帧均作为待处理视频帧,否则,通过公式1计算帧间隔Interval:Interval=math.ceil(fps/ai_fps)
ꢀꢀꢀꢀ
(1)根据所述帧间隔Interval进行跳帧处理:若当前视频帧的计数n与所述帧间隔Interval不相等,则返回步骤S101获取下一个视频帧,否则,将所述当前视频帧作为待处理视频帧,并将计数n更新为0。4.根据权利要求3所述的一种网络视频流的处理方法,其特征在于,所述图片处理模块的处理帧率ai_fps通过公式2计算后预先配置:ai_fps=int(1000/time_ai)

【专利技术属性】
技术研发人员:元方王集思张凡超
申请(专利权)人:新智认知数据服务有限公司
类型:发明
国别省市:

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

1