视频数据处理方法、装置、计算机设备、存储介质与流程
未命名
10-19
阅读:65
评论:0
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.图1为一个实施例中相关技术中对视频的处理方式流程图;
32.图2为一个实施例中视频数据处理方法的应用环境图;
33.图3为一个实施例中视频数据处理方法的第一流程示意图;
34.图4为一个实施例对视频的处理方式流程图;
35.图5为一个实施例中视频数据处理方法的第二流程示意图;
36.图6为一个实施例中视频数据处理方法的第三流程示意图;
37.图7为一个实施例中视频数据处理装置的结构框图;
38.图8为一个实施例中计算机设备的内部结构图。
具体实施方式
39.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
40.首先,在此对本技术中所涉及的名词进行解释:
41.vdec:视频解码模块。
42.vpss(video process sub-system):视频处理子系统,支持对一幅输入图像进行统一预处理,如去噪、去隔行等,然后再对各通道分别进行缩放、锐化等处理,最后输出多种不同分辨率的图像。
43.venc:视频编码模块。
44.vo(vidio output):视频输出。
45.net:网。
46.bind:绑定,bind可以指使用硬件链路作为传输通路,当使用bind进行传输时,用户是无法感知的,即用户不能感知到其具体的传输过程,不能对其进行操作。即无法实现媒体管线的切割。
47.请参见图1,图1为相关技术中对视频的处理方式流程图,其具体的流程为:首先通过vdec模块对视频进行解码处理,通过bind方式将解码后的数据传输至vpss模块中进行预处理,vpss处理得到的数据通过bind方式发送给视频输出模块或者视频编码模块以对数据进行后续的处理,如将vpss处理后的数据进行输出,如将vpss处理后的数据通过net传输出去进行实时的视频播放。当网络阻塞时,导致net发送数据过慢,从而venc节点向前反压,进而导致vpss分发给vo的流畅度,甚至影响vpss对vdec的正常解码,或venc的数据堆积导致前级vedc输出缓冲占满,最终导致解码异常和花屏。换而言之,相关技术中对视频的处理方式,容易出现消费反压链路的问题。可以理解的是,消费节点应当尽快消费对应的视频帧,以避免影响其他消费节点的正常消费。因此,当出现消费反压链路时,任意一个节点都不能插入空白帧到链路上作为填充平滑,或者介入大缓存来对抗抖动。
48.基于此,本技术实施例提出了一种视频数据处理方法,通过用户api接口(应用接口)获取前级节点发送的视频数据帧,从而解决了现有技术中视频数据帧只能在硬件链路绑定传输、用户不能直接操作的问题,实现了视频数据帧在传输时的硬件链路的分割,通过将视频数据帧存储在抖动缓冲器中,从而实现了各节点之间的链路独立,解决了现有技术中消费反压链路的问题,降低了视频播放时出现的抖动。
49.本技术实施例提供的视频数据处理方法,可以应用于如图2所示的应用环境中。其中,在本技术实施例中以该终端202执行视频数据处理方法为例进行说明。终端202通过网络与服务器204进行通信。数据存储系统可以存储服务器104需要处理的数据,如存储待解码的视频数据、解码后的视频数据等。数据存储系统可以集成在服务器204上,也可以放在云上或其他网络服务器上。终端通过应用接口获取视频处理链路中当前节点的前级节点发送的视频数据帧,将视频数据帧存储在当前节点的抖动缓冲器中,然后调用抖动缓冲器探测当前节点的后级节点对视频数据帧的消费帧率,并根据消费帧率对当前节点的抖动缓冲器进行处理。其中,终端202可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑。服务器204可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
50.在一个实施例中,如图3和图4所示,提供了一种视频数据处理方法,以该方法应用于图1中的终端202为例进行说明,包括以下步骤:
51.步骤302,通过应用接口获取视频处理链路中当前节点的前级节点发送的视频数据帧,将视频数据帧存储在当前节点的抖动缓冲器中。
52.其中,应用接口可以指用户的应用程序接口(application programming interface,api接口)。
53.其中,视频处理链路可以指在对视频数据帧进行处理的硬件链路,该视频处理链路包括处理节点、消费节点。其中,处理节点可以包括视频解码节点、视频预处理节点。消费节点可以指链路中最后使用视频帧的节点,如输出节点、显示节点等。其中,vo、venc为消费节点,vpss、vdec为处理节点。在视频处理链路中,一个处理节点可以挂载多个消费节点。因此,当一个消费节点出现问题(如消费反压链路)时,还会影响到其他的消费节点的正常工作。
54.前级节点可以指视频处理链路上处于当前节点上一节点的节点。以图1为例,若当前节点为vpss节点时,则对应的前级节点为vdec节点。若当前节点为venc或者vo节点时,则对应的前级节点为vpss节点。
55.前级节点发送的视频数据帧可以指前级节点对视频数据进行处理后得到的视频帧。该视频数据帧可以包括图像数据和音频数据。
56.抖动缓冲器可以指用于数据存储的共享的数据区域。在抖动缓冲器中,每隔一段均匀的时间间隔,就会收集视频数据帧进行存储,并转发到处理器中进行处理。由于网络拥塞,定时漂移或路由变更等原因,视频数据帧的到达时间会发生变化,即产生抖动。抖动缓冲器可以被放置于数据的接收端,能够主动地延迟视频数据帧的到达,从而使得终端用户得到一个清晰且声音失真较小的数据。抖动缓冲器包括两种,静态抖动缓冲器和动态抖动缓冲器。静态抖动缓冲器是基于硬件的,它是由厂家来配置的。而动态抖动缓冲器是基于软件的,动态抖动缓冲器由网管配置以适应网络延迟的改变。在本实施例中,抖动缓冲器可以选择动态抖动缓冲器,该抖动缓冲器可以是jitterbuffer。
57.示例性地,当任意一个前级节点(vpss节点或vdec节点)向当前节点传输视频数据帧时,当前节点通过调用应用接口获取前级节点发送的视频数据帧,并将视频数据帧存储在抖动缓冲器中,从而解决了现有技术中只能通过原生的bind方式进行数据传输,导致用户不能对视频数据帧进行处理(如决定如何对视频数据帧进行分发和分发的对象)的问题,实现了媒体管线切割。
58.例如,可以通过get_relese配对分发的方式实现视频数据帧的传输。如通过获取get_relese前级节点输出的视频数据帧,并将视频数据帧存储在抖动缓冲器中,然后再通过后续的get_relese获取相应的视频数据帧。
59.步骤304,探测当前节点的后级节点对视频数据帧的消费帧率。
60.其中,后级节点可以指处于视频处理链路上当前节点下一节点的节点。如,若当前节点为vpss节点时,则对应的后级节点为venc或者vo节点。若当前节点为vdec节点时,则对应的后级节点为vpss节点。
61.后级节点的消费帧率可以指后级节点对视频数据帧的处理帧率。如将视频数据帧输出出去的帧率,如将视频数据帧进行播放的播放帧率等。
62.示例性地,终端202可以调用抖动缓冲器探测后级节点对视频数据帧的消费帧率。在探测后级节点对视频数据帧的消费帧率时,可以仅探测一个后级节点对视频数据帧的消费帧率,也可以探测不同的后级节点对视频数据帧的消费帧率。
63.步骤306,根据消费帧率对当前节点的抖动缓冲器进行处理。
64.其中,终端202对抖动缓冲器的处理,可以包括但不限于排空处理、扩张处理、缓存处理、丢帧处理等。
65.排空处理的目的是让抖动缓冲器中缓存的视频数据帧尽快消费掉,以避免通道buf(如jitterbuffer)不足,从而降低总链路的延迟。
66.扩张处理可以指扩大抖动缓冲器的容量。在对抖动缓冲器进行扩张处理时,可以根据预设帧数对抖动缓冲器进行扩张,直到达到预设第一容量。例如,预设帧数可以是1帧,即每次对抖动缓冲器进行扩张的大小为1帧。
67.缓存处理可以指后级节点在对视频数据帧进行消费之前,首先需将该视频数据帧进行缓存,从而降低抖动。例如,当后级节点对视频数据帧的消费是实时播放时,后级节点首先将视频数据帧进行缓存,然后再将缓存的视频数据帧进行播放,从而降低播放时的抖动,提高用户的观感。
68.丢帧处理可以指将抖动缓冲器中不同的数据帧进行丢弃。
69.示例性地,当后级节点的消费帧率下降时,可以对抖动缓冲器的容量进行扩张处理。
70.示例性地,当探测到后级节点的消费帧率下降为0时,可以将抖动缓冲器中存储的与该后级节点的所有视频数据帧进行排空,以为其他的后级节点腾出存储空间。
71.示例性地,当获取前级节点的视频数据帧过多时,也可以对抖动缓冲器的容量进行扩张处理。
72.示例性地,若当前节点为消费节点时,可以预先调取当前节点的抖动缓冲器存储需要消费的视频数据帧。
73.示例性地,若当前节点的抖动缓冲器存储的视频数据帧较多,且后级节点的消费帧率一直下降时,可以对存储的视频数据帧进行丢帧处理。
74.当某个节点为消费节点时,该消费节点对应的抖动缓冲器存储视频数据帧时,其可以只存储视频数据帧对应的指针块,从而便于解决现有技术中,解决了通道轮转buf不足的问题,进而解决了消费反压链路的问题,降低了实时视频出现抖动的概率。
75.本技术实施例中,每个节点都设有对应的抖动缓冲器,通过抖动缓冲器探测后级节点的消费帧率,再依据消费帧率对对应的抖动缓冲器进行处理,从而实现了视频处理链路中各节点的相互独立,避免了现有技术中容易出现消费反压链路的问题。
76.在本技术实施例中,视频数据帧在链路中进行传输时,可以通过后级source(源)标签进行标记视频数据帧是传递到哪个后记节点。而本节点对应的source能够承担接收基座的作用。
77.本技术实施例的技术方案,通过应用接口获取视频处理链路中当前节点的前级节点发送的视频数据帧,从而解决了现有技术中视频数据帧只能在硬件链路绑定传输、用户不能直接操作的问题,实现了视频数据帧在传输时的硬件链路的分割,通过将视频数据帧存储在当前节点的抖动缓冲器中,从而实现了各节点之间的链路独立,解决了现有技术中
消费反压链路的问题,降低了视频播放时出现的抖动,提高了用户的体验感。
78.在一些实施例中,步骤“根据消费帧率对当前节点的抖动缓冲器进行处理”包括:若后级节点的消费帧率下降预设值,则对当前节点的抖动缓冲器的容量进行扩张,直到扩张后的容量达到预设第一容量。
79.其中,预设值可以指预先设定的值,该预设值可以是实时设定能够实时修改的,也可以是一个固定的值。如该预设值可以是5%、8%等。
80.预设第一容量可以指预设设定的容量。该预设第一容量可以抖动缓冲器原有容量的倍数,如该预设第一容量可以是抖动缓冲器原有容量的1.5倍。
81.具体地,当后级节点的消费帧率下降预设值后,说明后级节点的消费不稳定,可能出现网络波动或者传输阻塞等原因,此时对当前节点的抖动缓冲器的容量进行扩张,以便于能够存储更多的视频数据帧,从而避免由于后级节点的消费帧率下降导致消费反压链路的情况,保证了链路的稳定,降低了抖动。
82.例如,当抖动缓冲器探测到后级节点的消费帧率下降5%后,可以开始以每次1帧的大小对当前节点的抖动缓冲器的容量进行扩张处理,直到扩张后的容量达到预设第一容量。
83.请参见图5,在一些实施例中,视频数据处理方法还包括以下步骤:
84.步骤502,探测前级节点的视频数据帧的输出帧率,以及当前节点对视频数据帧的轮转帧率。
85.其中,输出帧率可以指前级节点将视频数据帧传输至当前节点的传输帧率。
86.轮转帧率可以指当前节点对视频数据帧进行轮转处理的帧率。轮转处理可以指当前节点获取前级节点发送的视频数据帧,并将该视频数据帧进行处理(如预处理,如变速不变调处理等),然后将处理后的视频数据帧转发出去的过程。
87.如该轮转帧率可以是接收前级节点发送的视频数据帧,并将当前节点对应的抖动缓冲器存储地传递地传递出去时的总帧率。
88.示例性地,终端202可以调用抖动缓冲器探测前级节点的视频数据帧的输出帧率,并探测当前节点对视频数据帧的轮转帧率。
89.步骤504,根据输出帧率和轮转帧率对当前节点的抖动缓冲器进行处理。
90.其中,终端202对抖动缓冲器的处理可以包括但不限于排空处理、扩张处理、缓存处理、丢帧处理等。
91.示例性地,终端202在获取输出帧率和轮转帧率后,可以根据输出帧率和轮转帧率之间的关系对抖动缓冲器进行处理。例如,可以根据输出帧率和轮转帧率确定视频数据帧的变化趋势,然后根据该变化趋势对抖动缓冲器进行处理。
92.本技术实施例的技术方案,通过探测前级节点的视频数据帧的输出帧率和当前节点对视频数据帧的轮转帧率,再依据输出帧率和轮转帧率对当前节点的抖动缓冲器进行处理,能够避免出现消费不稳定或者其他意外情况时,而没有补救措施,导致消费反压链路或者其他情况,从而降低了抖动,提高了用户的体验感。
93.在一些实施例中,步骤“根据输出帧率和轮转帧率对当前节点的抖动缓冲器进行处理”包括:根据输出帧率和轮转帧率,确定当前节点的抖动缓冲器的容量变化;若容量变化为容量增加,则对当前节点的抖动缓冲器进行容量扩张。
94.其中,容量变化可以用于表征抖动缓冲器的容量变化趋势。容量变化可以包括容量增加、容量减少和容量不变。
95.示例性地,当输出帧率大于轮转帧率时,此时可以确定当前节点对应的抖动缓冲器的容量变化为容量增加,当输出帧率等于轮转帧率时,此时可以确定当前节点对应的抖动缓冲器的容量变化为容量不变,当输出帧率小于轮转帧率时,此时确定当前节点对应的抖动缓冲器的容量变化为容量减少。当容量变化为容量增加时,可以对当前节点对应的抖动缓冲器进行容量扩张。进行容量扩张时,可以根据预设帧数进行扩张,如每次扩张为1帧大小。当容量变化为容量减少时,可以适当缩小抖动缓冲器的容量。
96.本技术实施例的技术方案,通过根据输出帧率和轮转帧率确定当前节点对应的抖动缓冲器的容量变化,当容量变化为容量增加时,对当前节点的抖动缓冲器进行容量扩张,从而便于存储视频数据帧,避免由于存储空间不足引起链路的抖动和不稳定,提高了链路的稳定性,降低了链路的抖动,提高了用户的体验感。
97.在一些实施例中,步骤“根据输出帧率和轮转帧率对当前节点的抖动缓冲器进行处理”还包括:若当前节点的扩张后的抖动缓冲器的容量达到预设第一容量,且达到预设第一容量时,容量变化为容量增加,则对当前节点的抖动缓冲器中存储的视频数据帧进行排空处理。
98.具体地,当扩张后的抖动缓冲器的容量达到预设第一容量,且此时的容量变化仍然为容量增加,此时可以对当前节点对应的抖动缓冲器中存储的视频数据帧进行排空处理,从而避免通道的buf不足,引起视频处理链路的抖动,进而提高了链路的稳定性。
99.在一些实施例中,视频数据处理方法还包括以下步骤:若探测到后级节点对应的抖动缓冲器的容量在扩张,对当前节点对应的抖动缓冲器中存储的视频数据帧进行丢帧处理。
100.其中,丢帧处理可以指对视频数据帧中不同的数据进行丢弃处理。
101.具体地,当探测到后级节点对应的抖动缓冲器的容量在扩张时,说明后级节点的抖动缓冲器的容量可能不足,此时对当前节点对应的抖动缓冲器中存储的视频数据帧进行逐级丢帧处理,从而有利于提高整体链路的稳定性。
102.在一些实施例中,步骤“对当前节点对应的抖动缓冲器中存储的视频数据帧进行丢帧处理”包括以下步骤:对视频数据帧进行变速不变调处理,得到对应的目标图像群组,丢弃目标图像群组。
103.其中,变速不变调(time scale modification,tsm)处理可以指改变视频数据帧的速度而不改变其音调。
104.图像群组(group of pictures,gop),在视频处理中,一个gop就是一个完整的视频帧,即一个gop可以完整的播放、显示。
105.示例性地,可以对视频数据帧进行变速不变调处理,以保留视频帧中的语义信息,且加快视频数据帧的速度,得到对应的目标图像群组,并将整个目标图像群组丢弃,以将不同的数据进行丢弃。
106.本技术实施例的技术方案,通过对视频数据帧进行变速不变调处理,得到对应的目标图像群组,丢弃目标图像群组,从而有利于提高整体链路的稳定性。
107.请参见图6,在一些实施例中,视频数据处理方法包括以下步骤:
108.步骤602,通过应用接口获取视频处理链路中当前节点的前级节点发送的视频数据帧,将视频数据帧存储在当前节点抖动缓冲器中。
109.步骤604,探测后级节点对视频数据帧的消费帧率和前级节点的视频数据帧的输出帧率以及当前节点对视频数据帧的轮转帧率。
110.步骤606,确定后级节点的消费帧率是否下降预设值。
111.若是,执行步骤608,若否,则执行步骤610。
112.步骤608,对当前节点的抖动缓冲器的容量进行扩张,直到扩张后的容量达到预设第一容量。
113.步骤610,根据输出帧率和轮转帧率,确定当前节点的抖动缓冲器的容量变化。
114.步骤612,确定容量变化是否为增加。
115.若是,则执行步骤614,若否,则执行步骤620。
116.步骤614,对当前节点的抖动缓冲器进行容量扩张。
117.步骤616,确定当前节点的扩张后的抖动缓冲器的容量是否达到预设第一容量,且达到预设第一容量,容量变化是否为容量增加。
118.若是,执行步骤618,若否,则执行步骤620。
119.步骤618,对当前节点对应的抖动缓冲器中存储的视频数据帧进行排空处理。
120.步骤620,探测后级节点对应的抖动缓冲器的容量是否在扩张。
121.步骤622,对视频数据帧进行变速不变调处理,得到对应的目标图像群组,丢弃目标图像群组。
122.具体地,步骤602~步骤622的具体过程请参见前述的实施例,在此不再赘述。
123.本技术实施例的技术方案,通过应用接口获取视频处理链路中当前节点的前级节点发送的视频数据帧,从而解决了现有技术中视频数据帧只能在硬件链路绑定传输、用户不能直接操作的问题,实现了视频数据帧在传输时的硬件链路的分割,通过将视频数据帧存储在抖动缓冲器中,从而实现了各节点之间的链路独立,解决了现有技术中消费反压链路的问题,降低了视频播放时出现的抖动,提高了用户的体验感。通过探测前级节点的视频数据帧的输出帧率和当前节点对视频数据帧的轮转帧率,再依据输出帧率和轮转帧率对抖动缓冲器进行处理,能够避免出现消费不稳定或者其他意外情况时,而没有补救措施,导致消费反压链路或者其他情况,从而降低了抖动。
124.应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
125.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的视频数据处理方法的视频数据处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个视频数据处理装置实施例中的具体限定可以参见上文中对于视频数据处理方法的限定。
126.在一个实施例中,如图7所示,提供了一种视频数据处理装置,包括:数据帧获取模块702、帧率探测模块704和处理模块706,其中:
127.数据帧获取模块702,用于通过应用接口获取视频处理链路中当前节点的前级节点发送的视频数据帧,将视频数据帧存储在抖动缓冲器中。
128.帧率探测模块704,用于探测当前节点的后级节点对视频数据帧的消费帧率。
129.处理模块706,用于根据消费帧率对当前节点的抖动缓冲器进行处理。
130.在一些实施例中,处理模块706还用于若后级节点的消费帧率下降预设值,则对当前节点的抖动缓冲器的容量进行扩张,直到扩张后的容量达到预设第一容量。
131.在一些实施例中,帧率探测模块704还用于探测前级节点的视频数据帧的输出帧率,以及当前节点对视频数据帧的轮转帧率;
132.处理模块706,还用于根据输出帧率和轮转帧率对当前节点的抖动缓冲器进行处理。
133.在一些实施例中,处理模块706还用于:根据输出帧率和轮转帧率,确定当前节点的抖动缓冲器的容量变化;若容量变化为容量增加,则对当前节点的抖动缓冲器进行容量扩张。
134.在一些实施例中,处理模块706还用于若当前节点的扩张后的抖动缓冲器的容量达到预设第一容量,且达到预设第一容量时,容量变化为容量增加,则对当前节点的抖动缓冲器中存储的视频数据帧进行排空处理。
135.在一些实施例中,处理模块706还用于,若探测到后级节点对应的抖动缓冲器的容量在扩张,对当前节点对应的抖动缓冲器中存储的视频数据帧进行丢帧处理。
136.在一些实施例中,处理模块706还用于对视频数据帧进行变速不变调处理,得到对应的目标图像群组,丢弃目标图像群组。
137.上述视频数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
138.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种视频数据处理方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
139.本领域技术人员可以理解,图8中示出的结构,仅仅是与本技术方案相关的部分结
构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
140.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:通过应用接口获取视频处理链路中当前节点的前级节点发送的视频数据帧,将视频数据帧存储在当前节点的抖动缓冲器中;探测后级节点对视频数据帧的消费帧率;根据消费帧率对当前节点的抖动缓冲器进行处理。
141.在一个实施例中,处理器执行计算机程序时还实现以下步骤:若后级节点的消费帧率下降预设值,则对当前节点的抖动缓冲器的容量进行扩张,直到扩张后的容量达到预设第一容量。
142.在一个实施例中,处理器执行计算机程序时还实现以下步骤:探测前级节点的视频数据帧的输出帧率,以及当前节点对视频数据帧的轮转帧率;根据输出帧率和轮转帧率对当前节点的抖动缓冲器进行处理。
143.在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据输出帧率和轮转帧率,确定当前节点的抖动缓冲器的容量变化;若容量变化为容量增加,则对当前节点的抖动缓冲器进行容量扩张。
144.在一个实施例中,处理器执行计算机程序时还实现以下步骤:若当前节点的扩张后的抖动缓冲器的容量达到预设第一容量,且达到预设第一容量时,容量变化为容量增加,则对当前节点对应的抖动缓冲器中存储的视频数据帧进行排空处理。
145.在一个实施例中,处理器执行计算机程序时还实现以下步骤:若探测到后级节点对应的抖动缓冲器的容量在扩张,对当前节点对应的抖动缓冲器中存储的视频数据帧进行丢帧处理。
146.在一个实施例中,处理器执行计算机程序时还实现以下步骤:对视频数据帧进行变速不变调处理,得到对应的目标图像群组,丢弃目标图像群组。
147.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:通过应用接口获取视频处理链路中当前节点的前级节点发送的视频数据帧,将视频数据帧存储在抖动缓冲器中;探测后级节点对视频数据帧的消费帧率;根据消费帧率对抖动缓冲器进行处理。
148.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若后级节点的消费帧率下降预设值,则对当前节点的抖动缓冲器的容量进行扩张,直到扩张后的容量达到预设第一容量。
149.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:探测前级节点的视频数据帧的输出帧率,以及当前节点对视频数据帧的轮转帧率;根据输出帧率和轮转帧率对当前节点的抖动缓冲器进行处理。
150.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据输出帧率和轮转帧率,确定当前节点的抖动缓冲器的容量变化;若容量变化为容量增加,则对当前节点的抖动缓冲器进行容量扩张。
151.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若当前节点的扩张后的抖动缓冲器的容量达到预设第一容量,且达到预设第一容量时,容量变化为容量增
加,则对当前节点对应的抖动缓冲器中存储的视频数据帧进行排空处理。
152.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若探测到后级节点对应的抖动缓冲器的容量在扩张,对当前节点对应的抖动缓冲器中存储的视频数据帧进行丢帧处理。
153.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对视频数据帧进行变速不变调处理,得到对应的目标图像群组,丢弃目标图像群组。
154.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:通过应用接口获取视频处理链路中当前节点的前级节点发送的视频数据帧,将视频数据帧存储在当前节点的抖动缓冲器中;探测后级节点对视频数据帧的消费帧率;根据消费帧率对当前节点的抖动缓冲器进行处理。
155.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若后级节点消费帧率下降预设值,则对当前节点的抖动缓冲器的容量进行扩张,直到扩张后的容量达到预设第一容量。
156.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:探测前级节点的视频数据帧的输出帧率,以及当前节点对视频数据帧的轮转帧率;根据输出帧率和轮转帧率对当前节点的抖动缓冲器进行处理。
157.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据输出帧率和轮转帧率,确定当前节点的抖动缓冲器的容量变化;若容量变化为容量增加,则对当前节点的抖动缓冲器进行容量扩张。
158.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若当前节点的扩张后的抖动缓冲器的容量达到预设第一容量,且达到预设第一容量时,容量变化为容量增加,则对当前节点对应的抖动缓冲器中存储的视频数据帧进行排空处理。
159.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若探测到后级节点对应的抖动缓冲器的容量在扩张时,对当前节点对应的抖动缓冲器中存储的视频数据帧进行丢帧处理。
160.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对视频数据帧进行变速不变调处理,得到对应的目标图像群组,丢弃目标图像群组。
161.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据
库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
162.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
163.以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
技术特征:
1.一种视频处理数据方法,其特征在于,所述方法包括:通过应用接口获取视频处理链路中当前节点的前级节点发送的视频数据帧,将所述视频数据帧存储在所述当前节点的抖动缓冲器中;探测所述当前节点的后级节点对所述视频数据帧的消费帧率;根据所述消费帧率对所述当前节点的所述抖动缓冲器进行处理。2.根据权利要求1所述的方法,其特征在于,所述根据所述消费帧率对所述当前节点的所述抖动缓冲器进行处理,包括:若所述后级节点的消费帧率下降预设值,则对所述当前节点的所述抖动缓冲器的容量进行扩张,直到扩张后的容量达到预设第一容量。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:探测所述前级节点的视频数据帧的输出帧率,以及当前节点对所述视频数据帧的轮转帧率;根据所述输出帧率和所述轮转帧率对所述当前节点的所述抖动缓冲器进行处理。4.根据权利要求3所述的方法,其特征在于,所述根据所述输出帧率和所述轮转帧率对所述当前节点的所述抖动缓冲器进行处理,包括:根据所述输出帧率和所述轮转帧率,确定所述当前节点的抖动缓冲器的容量变化;若所述容量变化为容量增加,则对所述当前节点的抖动缓冲器进行容量扩张。5.根据权利要求4所述的方法,其特征在于,所述根据所述输出帧率和所述轮转帧率对所述当前节点的所述抖动缓冲器进行处理,还包括:若所述当前节点的扩张后的抖动缓冲器的容量达到预设第一容量,且达到所述预设第一容量时,所述容量变化为容量增加,则对所述当前节点的抖动缓冲器中存储的视频数据帧进行排空处理。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:若探测到所述后级节点对应的抖动缓冲器的容量在扩张,对所述当前节点的抖动缓冲器中存储的视频数据帧进行丢帧处理。7.根据权利要求6所述的方法,其特征在于,所述对所述当前节点对应的抖动缓冲器中存储的视频数据帧进行丢帧处理,包括:对所述视频数据帧进行变速不变调处理,得到对应的目标图像群组,丢弃所述目标图像群组。8.一种视频数据处理装置,其特征在于,所述装置包括:数据帧获取模块,用于通过应用接口获取视频处理链路中当前节点的前级节点发送的视频数据帧,将所述视频数据帧存储在所述当前节点的抖动缓冲器中;帧率探测模块,用于探测所述当前节点的后级节点对所述视频数据帧的消费帧率;处理模块,用于根据所述消费帧率对所述当前节点的所述抖动缓冲器进行处理。9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
技术总结
本申请涉及一种视频数据处理方法、装置、计算机设备、存储介质。所述方法包括:通过应用接口获取视频处理链路中当前节点的前级节点发送的视频数据帧,将所述视频数据帧存储在所述当前节点的抖动缓冲器中;探测后级节点对所述视频数据帧的消费帧率;根据所述消费帧率对所述当前节点的所述抖动缓冲器进行处理。采用本方法能够降低播放实时视频的抖动,提高用户的体验感。的体验感。的体验感。
技术研发人员:黄浩成
受保护的技术使用者:广州开得联软件技术有限公司
技术研发日:2023.04.26
技术公布日:2023/10/15
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:分层检测装置的制作方法 下一篇:一种用于装铆电机齿轮板的生产设备及方法与流程