一种视频流处理方法及装置转让专利

申请号 : CN202011532852.7

文献号 : CN112637636B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蒋华平

申请人 : 新华三大数据技术有限公司

摘要 :

本申请提供了一种视频流处理方法及装置,在本次要创建视频流时,确定本次创建视频流所需的图片的位置信息;若位置信息在最近一次创建的视频流对应的播放区域内,则本次停止创建视频流;若位置信息不在最近一次创建的视频流对应的播放区域内,则获取最近记录的若干个已创建的视频流的区域信息;根据本次所要创建的视频流的初始区域信息和获取到的若干个视频流的区域信息,判断本次所要创建的视频流的播放区域与若干个视频流各自的播放区域是否满足区域合并条件;若满足则合并播放区域并基于所需的图片创建本次的视频流,基于合并后的区域确定本次创建的视频流的目的区域信息;基于目的区域信息编码发送本次创建的视频流。由此解决了卡顿问题。

权利要求 :

1.一种视频流处理方法,其特征在于,包括:在本次要创建视频流时,确定本次创建视频流所需的图片的位置信息;

若所述位置信息在最近一次创建视频流时确定出的区域信息对应的播放区域内,则本次停止创建视频流;

若所述位置信息不在最近一次创建视频流时确定出的区域信息对应的播放区域内,则获取最近记录的若干个已创建的视频流的区域信息;

根据本次所要创建的视频流的初始区域信息和获取到的若干个视频流的区域信息,判断本次所要创建的视频流的播放区域与所述若干个视频流各自的播放区域是否满足区域合并条件;

若满足区域合并条件,则合并播放区域并基于所述所需的图片创建本次的视频流,并基于合并后的区域确定本次创建的视频流的目的区域信息;

基于所述目的区域信息编码发送本次创建的视频流。

2.根据权利要求1所述的方法,其特征在于,每个视频流的区域信息包括该视频流的开始时间和持续时间,所述初始区域信息包括本次所要创建的视频流的开始时间和持续时间;则

根据本次所要创建的视频流的初始区域信息和获取到的若干个视频流的区域信息,判断本次所要创建的视频流的播放区域与所述若干个视频流各自的播放区域是否满足区域合并条件,包括:

基于各个视频流的开始时间和持续时间,分别确定相邻视频流之间的时间间隔;

判断确定出的各个时间间隔是否小于第一时间阈值并判断每个视频流的持续时间是否小于第二时间阈值;

若确定出的各个时间间隔均小于第一时间阈值,且每个视频流的持续时间均小于第二时间阈值,则确认满足区域合并条件;

若任一判断结果为否,则确认不满足区域合并条件。

3.根据权利要求2所述的方法,其特征在于,所述目的区域信息中的开始时间为本次创建的视频流的开始时间,以及所述目的区域信息中的持续时间为本次创建的视频流的持续时间。

4.根据权利要求3所述的方法,其特征在于,所述目的区域信息还包括目的顶点坐标、目的宽度和目的高度,以及

基于合并后的区域确定本次创建的视频流的目的区域信息,包括:确定合并后的区域的最大边界;

根据所述最大边界确定目的区域信息中的目的顶点坐标、目的宽度和目的高度。

5.根据权利要求1所述的方法,其特征在于,还包括:利用所述目的区域信息更新最近记录的若干个已创建的视频流的区域信息。

6.根据权利要求1所述的方法,其特征在于,若不满足合并条件,则基于所述所需的图片创建本次的视频流并基于所述初始区域信息编码发送本次创建的视频流;

利用所述初始区域信息更新最近记录的若干个已创建的视频流的区域信息。

7.一种视频流处理装置,其特征在于,包括:确定模块,用于在本次要创建视频流时,确定本次创建视频流所需的图片的位置信息;

停止模块,用于若所述位置信息在最近一次创建视频流时确定出的区域信息对应的播放区域内,则本次停止创建视频流;

获取模块,用于若所述位置信息不在最近一次创建视频流时确定出的区域信息对应的播放区域内,则获取最近记录的若干个已创建的视频流的区域信息;

判断模块,用于根据本次所要创建的视频流的初始区域信息和获取到的若干个视频流的区域信息,判断本次所要创建的视频流的播放区域与所述若干个视频流各自的播放区域是否满足区域合并条件;

创建模块,用于若所述判断模块的判断结果为满足区域合并条件,则合并播放区域并基于所述所需的图片创建本次的视频流,并基于合并后的区域确定本次创建的视频流的目的区域信息;

发送模块,用于基于所述目的区域信息编码发送本次创建的视频流。

8.根据权利要求7所述的装置,其特征在于,每个视频流的区域信息包括该视频流的开始时间和持续时间,所述初始区域信息包括本次所要创建的视频流的开始时间和持续时间;则

所述判断模块,具体用于基于各个视频流的开始时间和持续时间,分别确定相邻视频流之间的时间间隔;判断确定出的各个时间间隔是否小于第一时间阈值并判断每个视频流的持续时间是否小于第二时间阈值;若确定出的各个时间间隔均小于第一时间阈值,且每个视频流的持续时间均小于第二时间阈值,则确认满足区域合并条件;若任一判断结果为否,则确认不满足区域合并条件。

9.根据权利要求7所述的装置,其特征在于,所述目的区域信息中的开始时间为本次创建的视频流的开始时间,以及所述目的区域信息中的持续时间为本次创建的视频流的持续时间;所述目的区域信息还包括目的顶点坐标、目的宽度和目的高度,以及所述创建模块,具体用于确定合并后的区域的最大边界;根据所述最大边界确定目的区域信息中的目的顶点坐标、目的宽度和目的高度。

10.根据权利要求7所述的装置,其特征在于,还包括:记录模块,用于利用所述目的区域信息更新最近记录的若干个已创建的视频流的区域信息;

所述创建模块,具体用于若所述判断模块的判断结果为不满足合并条件,则基于所述所需的图片创建本次的视频流并基于所述初始区域信息编码发送本次创建的视频流;

所述记录模块,还用于利用所述初始区域信息更新最近记录的若干个已创建的视频流的区域信息。

说明书 :

一种视频流处理方法及装置

技术领域

[0001] 本申请涉及云计算技术领域,尤其涉及一种视频流处理方法及装置。

背景技术

[0002] 云桌面对flash动画和视频数据进行h264/h265视频压缩再传递到云桌面客户端的方案已经在各个云桌面的厂家有广泛应用,上述方案能大幅度降低传输的带宽。但是如
果小视频的窗口一直在云桌面上各处动态移动,h264/h265视频流就需要不停地创建和销
毁,然而发送端创建和销毁h264/h265流需也要一段时间,云桌面客户端初始化h264/h265
流也需要一段时间,这些时间加起来就会增加画面的延时,从而造成卡顿现象。
[0003] 因此,如何在云桌面客户端上动态移动展示视频流的情况下,减少画面时延,避免卡顿现象是值得考虑的技术问题之一。

发明内容

[0004] 有鉴于此,本申请提供一种视频流处理方法及装置,用以客户端上动态移动展示视频流的情况下,减少画面时延,避免卡顿现象。
[0005] 具体地,本申请是通过如下技术方案实现的:
[0006] 根据本申请的第一方面,提供一种视频流处理方法,包括:
[0007] 在本次要创建视频流时,确定本次创建视频流所需的图片的位置信息;
[0008] 若所述位置信息在最近一次创建视频流时确定出的区域信息对应的播放区域内,则本次停止创建视频流;
[0009] 若所述位置信息不在最近一次创建视频流时确定出的区域信息对应的播放区域内,则获取最近记录的若干个已创建的视频流的区域信息;
[0010] 根据本次所要创建的视频流的初始区域信息和获取到的若干个视频流的区域信息,判断本次所要创建的视频流的播放区域与所述若干个视频流各自的播放区域是否满足
区域合并条件;
[0011] 若满足区域合并条件,则合并播放区域并基于所述所需的图片创建本次的视频流,并基于合并后的区域确定本次创建的视频流的目的区域信息;
[0012] 基于所述目的区域信息编码发送本次创建的视频流。
[0013] 根据本申请的第二方面,提供一种视频流处理装置,包括:
[0014] 确定模块,用于在本次要创建视频流时,确定本次创建视频流所需的图片的位置信息;
[0015] 停止模块,用于若所述位置信息在最近一次创建视频流时确定出的区域信息对应的播放区域内,则本次停止创建视频流;
[0016] 获取模块,用于若所述位置信息不在最近一次创建视频流时确定出的区域信息对应的播放区域内,则获取最近记录的若干个已创建的视频流的区域信息;
[0017] 判断模块,用于根据本次所要创建的视频流的初始区域信息和获取到的若干个视频流的区域信息,判断本次所要创建的视频流的播放区域与所述若干个视频流各自的播放
区域是否满足区域合并条件;
[0018] 创建模块,用于若所述判断模块的判断结果为满足区域合并条件,则合并播放区域并基于所述所需的图片创建本次的视频流,并基于合并后的区域确定本次创建的视频流
的目的区域信息;
[0019] 发送模块,用于基于所述目的区域信息编码发送本次创建的视频流。
[0020] 根据本申请的第三方面,提供一种电子设备,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的计算机程序,处理器被计算机程序促使执行本
申请实施例第一方面所提供的方法。
[0021] 根据本申请的第四方面,提供一种机器可读存储介质,机器可读存储介质存储有计算机程序,在被处理器调用和执行时,计算机程序促使处理器执行本申请实施例第一方
面所提供的方法。
[0022] 本申请实施例的有益效果:
[0023] 通过确认本次创建视频流时所需的图片的位置信息是否在最近一次创建视频流时确定出的区域信息对应的播放区域内,当位置信息在上述播放区域内时,本次停止创建
视频流,这样也就不需要向云桌面客户端发送视频流,从而使得服务端侧减少一次视频流
的编码器的创建操作和销毁操作,而且由于本次不需要创建视频流,使得云桌面客户端也
不需要执行解码器的创建和销毁操作,从而解决了画面延时和卡顿的问题。而当位置信息
不在最近一次创建视频流时确定出的区域信息对应的播放区域内,则获取最近记录的若干
个视频流的区域信息,然后基于本次所要创建的视频流的初始区域信息和获取到的若干个
区域信息判断各自的播放区域是否满足区域合并条件,当满足时表明这几个视频流的播放
区域比较接近,故可以通过区域合并来减少播放区域的切换,从而可以减少画面时延,避免
卡顿现象。

附图说明

[0024] 图1是本申请实施例提供的一种视频流处理方法的流程示意图;
[0025] 图2是本申请实施例提供的一种视频流的区域合并示意图;
[0026] 图3是本申请实施例提供的视频流处理装置的框图;
[0027] 图4是本申请实施例提供的实施视频流处理方法的电子设备的硬件结构框图。

具体实施方式

[0028] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例
中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如本申
请的一些方面相一致的装置和方法的例子。
[0029] 在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文
清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相对
应的列出项目的任何或所有可能组合。
[0030] 应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离
本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第
一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……
时”或“响应于确定”。
[0031] 发明人发现,目前VID抓取的虚拟机图片,正常情况下是抓取图片之后直接将图片压缩然后发送给云桌面客户端进行显示,该方式速度很快。H264/H265压缩方法由于采用帧
间压缩,图像压缩率更高。为了降低协议的传输带宽,如果虚拟机图片的坐标都是相同的一
些图片,协议就会用H264/H265编码器把这些图片压缩成一个流,发送到云桌面客户端进行
解码和显示。但是如果新抓取的图片坐标变成了另外一个坐标,那么前面的这个H264/H265
流就需要进行销毁。相应地,云桌面客户端也需要在创建和销毁用于解码H264/H265流的解
码器。服务器端的流编码器的创建以及云桌面客户端流解码器的创建都需要额外的一段时
间,从创建编码器开始压缩成流,这段时间对用户来说就会看到图片延时或者卡顿,也即造
成卡顿现象。
[0032] 有鉴于此,本申请实施例提出一种视频流处理方法,应用于服务器中,服务器在本次要创建视频流时,确定本次创建视频流所需的图片的位置信息;若所述位置信息在最近
一次创建视频流时确定出的区域信息对应的播放区域内,则本次停止创建视频流,这样也
就不需要向云桌面客户端发送视频流,在一定程度上节省了带宽,同时也表明本次创建视
频流所需的图片内容与上一次采用本申请提供的方法创建的视频流中的图片内容极为接
近,云桌面客户端只需要基于上一次接收到的视频流就可以继续展示且不影响用户体验,
单次创建视频流的过程中,若满足上述实施过程(位置信息在最近一次创建视频流时确定
出的播放区域内),则服务端和云桌面客户端均可以减少一次视频流的编码器/解码器的创
建及销毁,进而在完成所有视频流在云桌面客户端展示过程中,就可以减少多次创建和多
次销毁的操作,从而解决了现有技术中因频繁创建和销毁编码器/解码器所导致的视频卡
顿的问题。
[0033] 若上述位置信息不在最近创建视频流时确定出的区域信息对应的播放区域内,则获取最近记录的若干个已创建的视频流的区域信息;根据本次所要创建的视频流的初始区
域信息和获取到的若干个视频流的区域信息,判断本次所要创建的视频流的播放区域与若
干个视频流各自的播放区域是否满足区域合并条件;若满足区域合并条件,则合并播放区
域并基于所述所需的图片创建本次的视频流,并基于合并后的区域确定本次创建的视频流
的目的区域信息;基于上述目的区域信息编码发送本次创建的视频流。当位置信息不在最
近创建视频流时确定出的区域信息对应的播放区域内时,则可以判断本次所要创建的视频
流的播放区域与若干个视频流各自的播放区域是否满足区域合并条件,当满足时表明这几
个视频流的播放区域比较接近,故可以通过区域合并来减少播放区域的切换,从而可以减
少画面时延,避免卡顿现象。
[0034] 下面对本申请提供的视频流处理方法进行详细地说明。
[0035] 参见图1,图1是本申请提供的一种视频流处理方法的流程图,该方法应用于服务器端,服务器执行上述方法时,可包括如下所示步骤:
[0036] S101、在本次要创建视频流时,确定本次创建视频流所需的图片的位置信息。
[0037] 本步骤中,在创建视频流时,会获取到本次创建所需要的图片,然后可以确认各个图片的位置信息。可选地,该位置信息可以为图片中的像素点的像素坐标。
[0038] S102、判断所述位置信息是否在最近一次创建视频流时确定出的区域信息对应的播放区域内;若在,则执行步骤S103;若不在,则执行步骤S104。
[0039] 本步骤中,在确定出本次创建所需要的图片的各个像素点的位置信息后,可以判断每个像素点的位置信息是否在最近一次创建视频流时确定出的区域信息对应的播放区
域内,若均在上述播放区域内,或者有超过设定数量的像素点的位置信息在上述播放区域
内,表明用于创建本次视频流的图片与最近一次创建的视频流中的图片比较相近,或者本
次的视频流的播放区域落在最近一次创建的视频流的播放区域内,则可以执行步骤S103。
当不在上述播放区域内时,表明可能本次所需的图片与最近一次创建的视频流中的图片差
别有点多,或者本次创建的视频流的播放区域与最近一次的视频流的播放区域相差可能有
点多,则此时执行步骤S104。
[0040] S103、本次停止创建视频流。
[0041] 本步骤中,当本次创建视频流所需的图片的位置信息在最近一次创建的视频流确定出的区域信息对应的播放区域内时,则本次可以用创建视频流,即无需执行利用上述所
需图片创建视频流的操作,这样也就不需要向云桌面客户端发送视频流,云桌面客户端只
需基于最近一次创建的视频流获得本次所要创建的视频流,然后进行展示,这样服务器端
也就减少了视频流的编码器的创建操作和销毁操作,同时云桌面客户端也减少了视频流的
解码器的创建和销毁操作,从而减少了画面时延,进而避免了视频流的卡顿。
[0042] S104、获取最近记录的若干个已创建的视频流的区域信息。
[0043] 本步骤中,上述若干个的具体数量可以根据实际情况进行配置,如若干个可以为2个、3个等等。
[0044] S105、根据本次所要创建的视频流的初始区域信息和获取到的若干个视频流的区域信息,判断本次所要创建的视频流的播放区域与所述若干个视频流各自的播放区域是否
满足区域合并条件;若满足区域合并条件,则执行步骤S106;若不满足区域合并条件,则执
行步骤S108。
[0045] 本步骤中,上述初始区域信息可以根据本次所要创建的视频流所需的图片的位置信息来确定,将多个图片构成的播放区域也即初始播放区域,来确定本次所要创建的视频
流的初始区域信息。然后在此基础上,可以基于该初始区域信息和最近记录的若干个视频
流的区域信息,判断本次所要创建的视频流的播放区域与上述若干个视频流的播放区域是
否满足区域合并条件,若满足区域合并条件则表明视频流的播放区域比较接近,可以通过
区域合并即步骤S106来减少播放区域的切换,从而可以避免卡顿;而当不满足区域合并条
件时,则表明播放区域相差有点多,即使合并播放体验也可能不好,则此时执行步骤S108,
后续详细介绍之。
[0046] S106、合并播放区域并基于所述所需的图片创建本次的视频流,并基于合并后的区域确定本次创建的视频流的目的区域信息。
[0047] 本步骤中,在确认满足区域合并条件时,则将初始播放区域与上述若干次视频流的播放区域进行区域合并,同时基于本次所需要的图片按照目前的方法创建本次的视频
流,同时基于合并后的区域确定本次创建的视频流的目的区域信息,这样一来,不仅可以通
过区域合并来减少播放区域的切换,进而减少画面时延,以及解决卡顿问题。此外,合并后
的区域必然比单个视频流的播放区域要大,这样下一次要创建视频流时所需的图片的位置
信息很可能落在上述合并后的区域,使得停止创建下一次视频流,只需云桌面客户端基于
本次创建的视频流及目的区域信息获得下一次视频流即可,这样服务器端和云桌面客户端
上均不需要针对下一次执行创建和销毁编码器/解码器的操作,也即,减少了一次针对下一
次视频流的创建和销毁编码器/解码器的操作,进而也就避免了因频繁创建和销毁编码器/
解码器所导致的卡顿问题的发生。
[0048] S107、基于所述目的区域信息编码发送本次创建的视频流。
[0049] 本步骤中,在发送本次创建的视频流时,将该目的区域信息也一并发送给云桌面客户端,使得云桌面客户端在播放给视频流时的播放区域为该目的区域信息所表征的播放
区域。需要说明的是,在发送视频流之前,还需要利用目的区域信息对视频流进行编码,然
后将编码后的视频流发送给云桌面客户端,上述编码算法可以为H263/H264。
[0050] S108、基于所述所需的图片创建本次的视频流并基于所述初始区域信息编码发送本次创建的视频流。
[0051] 具体地,当不满足区域合并条件时,则表明这几个视频流的播放区域相差比较多,即使合并可能播放体验效果也不能满足实际需求,则本次直接创建视频流,然后基于初始
区域信息将本次创建的视频流发送给云桌面客户端,使得云桌面客户端以初始区域信息所
表征的播放区域展示本次创建的视频流。
[0052] 通过实施图1所示的方法,通过确认本次创建视频流时所需的图片的位置信息是否在最近一次创建视频流时确定出的区域信息对应的播放区域内,当位置信息在上述播放
区域内时,本次停止创建视频流,这样也就不需要向云桌面客户端发送视频流,从而使得服
务端侧减少一次视频流的编码器的创建操作和销毁操作,而且由于本次不需要创建视频
流,使得云桌面客户端也不需要执行解码器的创建和销毁操作,从而解决了画面延时和卡
顿的问题。而当位置信息不在最近一次创建视频流时确定出的区域信息对应的播放区域
内,则获取最近记录的若干个视频流的区域信息,然后基于本次所要创建的视频流的初始
区域信息和获取到的若干个区域信息判断各自的播放区域是否满足区域合并条件,当满足
时表明这几个视频流的播放区域比较接近,故可以通过区域合并来减少播放区域的切换,
用户也就感知不到各个视频流构成的小视频在不停地变化的情况,从而可以减少画面时
延,避免卡顿现象。
[0053] 可选地,每个视频流的区域信息包括该视频流的开始时间和持续时间,以及本次所要创建的视频流的初始区域信息包括本次所要创建的视频流的开始时间和持续时间。
[0054] 在此基础上,可以按照下述过程实施步骤S105:基于各个视频流的开始时间和持续时间,分别确定相邻视频流之间的时间间隔;判断确定出的各个时间间隔是否小于第一
时间阈值并判断每个视频流的持续时间是否小于第二时间阈值;若确定出的各个时间间隔
均小于第一时间阈值,且每个视频流的持续时间均小于第二时间阈值,则确认满足区域合
并条件;若任一判断结果为否,则确认不满足区域合并条件。
[0055] 具体地,以视频流1与视频流2属于相邻视频流,且视频流2晚于视频流1为例进行说明,则相邻视频流之间的时间间隔的计算方式为:时间间隔=视频流2的开始时间‑(视频
流1的开始时间+视频流1的持续时间)。
[0056] 在此基础上,在按照上述计算方式确定出各个相邻的视频流之间的时间间隔后,可以判断每个时间间隔是否小于第一时间阈值,当小于第一时间阈值时,表明这几个视频
流的播放时间比较接近,则可以进行区域合并,为了能够更好地解决卡顿问题,还可以进一
步判断单个视频流的持续时间是否小于第二时间阈值,当小于第二时间阈值时表明单个视
频流的持续时间也即播放时间比较短,则通过区域合并可以减少视频流的切换,进而避免
卡顿,因此可以确认满足区域合并条件,然后执行区域合并步骤。而当不小于第一时间阈值
时,则表明相邻的视频流的播放时间相差比较大,即使合并处理后期等待时间比较长,可能
体验效果不会很好,因此不进行区域合并,也即不满足区域合并条件。
[0057] 需要说明的是,相邻视频流可以理解为紧邻视频流,也可以理解为间隔若干个(1到2个等等)视频流的视频流之间也属于相邻视频流,例如以间隔1个视频流为例进行说明,
则当前视频流与上一个视频流、上上一个视频流、下一个视频流、下下一个视频流等属于相
邻视频流。
[0058] 值得注意的是,上述第一时间阈值和上述第二时间阈值的取值可以相同也可以不同,具体可以根据实际情况而定。
[0059] 可选地,上述目的区域信息中的开始时间为本次创建的视频流的开始时间,以及所述目的区域信息中的持续时间为本次创建的视频流的持续时间。
[0060] 可选地,记录的各个视频流的区域信息包括该视频流的播放区域的顶点坐标、宽度和高度,以及上述目的区域信息还包括目的顶点坐标、目的宽度和目的高度,则可以按照
下述过程实施步骤S106中基于合并后的区域确定本次创建的视频流的目的区域信息:确定
合并后的区域的最大边界;根据最大边界确定目的区域信息中的目的顶点坐标、目的宽度
和目的高度。
[0061] 具体地,可以根据初始区域信息中的顶点坐标、宽度和高度,以及上述若干个视频流的区域信息中的顶点坐标、宽度和高度,确认能够包括各个视频流的播放区域的最大区
域,该最大区域记为合并后的区域,然后基于该最大区域的最大边界确定目的顶点坐标、目
的宽度和目的高度,例如将最大边界的顶点作为目的顶点坐标,然后将最大边界的宽度作
为目的宽度,最大边界的高度作为目的高度。
[0062] 可选地,基于上述任一实施例,本实施例提供的视频流处理方法还包括:利用目的区域信息更新最近记录的若干个已创建的视频流的区域信息。
[0063] 具体地,为了下一视频流的视频流处理过程的实施,在本次创建视频流后,可以更新最近记录的若干个已创建的视频流的区域信息,例如记录的视频流的数量为2个,则利用
本次创建的视频流及目的区域信息更新记录的2个视频流的区域信息,相当于替换掉比较
早记录的视频流的区域信息,例如上述2个视频流为视频流1的区域信息和视频流2的区域
信息,视频流1早于视频流2,则本次创建的视频流为视频流3,则更新后的视频流的区域信
息为视频流3的区域信息和视频流2的区域信息,替换掉视频流1的区域信息。当然也可以保
留所有视频流的区域信息,例如记录表中记录历史创建的视频流的区域信息,然后只需将
本次创建的视频流的区域信息更新到记录表的最后一行即可,但是步骤S104获取的若干个
视频流的区域信息依然是最近记录的若干个视频流的区域信息。
[0064] 此外,当不满足区域合并条件时,执行步骤S108之后,还可以包括下述过程:利用初始区域信息更新最近记录的若干个已创建的视频流的区域信息。
[0065] 具体地,上述过程的实施可以参考上述利用目的区域信息更新最近记录的若干个已创建的视频流的区域信息的相关描述,此处不再详细赘述。
[0066] 为了更好地理解本申请任一实施例提供的视频流处理方法,以服务器端预先创建了2次视频流,且历史记录中仅记录2次视频流的区域信息,也即当前记录了视频流1、视频
流2的区域信息,记为(视频流1,视频流2),其中视频流1的区域信息和视频流2的区域信息
参考图2所示,当第三次需要创建视频流时,为了描述方便,将本次所要创建的视频流记为
视频流3,可以判断所要创建的视频流3所需的图片的位置信息是否在最近一次创建的视频
流2的区域信息对应的播放区域内,若上述位置信息在视频流2对应的播放区域内,则表明
本次所要创建的视频流3的图片的内容与视频流2的图片内容差别不大,则云桌面客户端只
需基于视频流2获得本次所要创建的视频流3就可以在云桌面客户端继续展示,这样一来,
服务器端本次由于不需要创建视频流3,其也就不需要创建和销毁针对该视频流3的编码
器,相应地,云桌面客户端也就不需要创建和销毁针对上述视频流3的解码器,从而也就减
少了创建和销毁次数,进而也就减少了画面时延和卡顿现象。
[0067] 而当上述位置信息不在视频流2对应的播放区域内,则可能表明本次用于创建视频流3的图片内容与视频流2中的图片内容差别有点大,或者本次所要创建的视频流3的播
放区域与视频流2的播放区域离得不太近,则此时可以获取到历史记录的视频流1和视频流
2的区域信息,然后基于本次所要创建的视频流3所需的图片可以确认本次所要创建的视频
流3的初始区域信息,然后基于初始区域信息、视频流1的区域信息和视频流2的区域信息,
判断本次所要创建的视频流3对应的播放区域、视频流1的播放区域、视频流2的播放区域是
否满足区域合并条件,即,判断相邻视频流的时间间隔是否小于第一时间阈值,以及单个视
频流的持续时间是否小于第二时间阈值。
[0068] 举例来说,以第一时间阈值和第二时间阈值均为1秒为例进行说明,上述判断相邻视频流的时间间隔是否小于第一时间阈值可以理解为:(视频流3的开始时间‑(视频流2的
开始时间+视频流2的持续时间))是否小于1秒,且(视频流2的开始时间‑(视频流1的开始时
间+视频流1的持续时间))是否小于1秒;可选地,还可以进一步判断(视频流3的开始时间‑
(视频流1的开始时间+视频流1的持续时间))是否小于1秒。相应地,上述单个视频流的持续
时间是否小于第二时间阈值可以理解为:视频流1的持续时间是否小于1秒,且视频流2的持
续时间是否小于1秒,且视频流3的持续时间是否小于1秒。
[0069] 当上述判断结果均为是时,则确认满足区域合并条件,则合并播放区域,如图2中的曲线框所指示的合并后的区域,并基于本次所需的图片创建视频流3,然后基于合并后的
区域确定视频流3的目的区域信息,该目的区域信息的顶点坐标可以为合并后的区域的最
大边界的顶点坐标,目的宽度为上述最大边界的宽度,目的高度为上述最大边界的高度;以
及该目的区域信息中的开始时间为视频流3的开始时间,目的区域信息中的持续时间为视
频流3的持续时间,也请参考图2所示,通过执行区域合并可以减少区域切换从而也能避免
卡顿。在区域合并后,可以基于目的区域信息利用H264编码器对视频流3进行编码,然后将
编码后的视频流3通过VDI协议发送给云桌面客户端。然后更新记录的视频流的区域信息,
例如原来记录的视频流的区域信息为(视频流1的区域信息,视频流2的区域信息),则更新
之后的区域信息可以为(视频流2的区域信息,视频流3的目的区域信息)。
[0070] 而当不满足区域合并条件时,例如视频流3的持续时间大于1秒,则由于单个视频流的持续播放时间比较长,即使不进行区域合并按照现有的流程处理也不会出现卡顿现
象,因此当不满足区域合并时可以按照现有的流程处理,即创建视频流3然后基于初始区域
信息对视频流3进行编码然后将编码后的视频流3发送给云桌面客户端。然后更新记录的视
频流的区域信息,例如原来记录的视频流的区域信息为(视频流1的区域信息,视频流2的区
域信息),则更新之后的区域信息可以为(视频流2的区域信息,视频流3的初始区域信息)。
[0071] 至此,采用上述方法整体上减少了服务器端编码器的创建和销毁次数,同时也减少了云桌面客户端的解码器的创建和销毁次数,有效解决了画面不流畅和卡顿的问题。
[0072] 基于同一发明构思,本申请还提供了与上述视频流处理方法对应的视频流处理装置。该视频流处理装置的实施具体可以参考上述对视频流处理方法的描述,此处不再一一
论述。
[0073] 参见图3,图3是本申请一示例性实施例提供的一种视频流处理装置,包括:
[0074] 确定模块301,用于在本次要创建视频流时,确定本次创建视频流所需的图片的位置信息;
[0075] 停止模块302,用于若所述位置信息在最近一次创建视频流时确定出的区域信息对应的播放区域内,则本次停止创建视频流;
[0076] 获取模块303,用于若所述位置信息不在最近一次创建视频流时确定出的区域信息对应的播放区域内,则获取最近记录的若干个已创建的视频流的区域信息;
[0077] 判断模块304,用于根据本次所要创建的视频流的初始区域信息和获取到的若干个视频流的区域信息,判断本次所要创建的视频流的播放区域与所述若干个视频流各自的
播放区域是否满足区域合并条件;
[0078] 创建模块305,用于若所述判断模块304的判断结果为满足区域合并条件,则合并播放区域并基于所述所需的图片创建本次的视频流,并基于合并后的区域确定本次创建的
视频流的目的区域信息;
[0079] 发送模块306,用于基于所述目的区域信息编码发送本次创建的视频流。
[0080] 可选地,每个视频流的区域信息包括该视频流的开始时间和持续时间,所述初始区域信息包括本次所要创建的视频流的开始时间和持续时间;则
[0081] 上述判断模块304,具体用于基于各个视频流的开始时间和持续时间,分别确定相邻视频流之间的时间间隔;判断确定出的各个时间间隔是否小于第一时间阈值并判断每个
视频流的持续时间是否小于第二时间阈值;若确定出的各个时间间隔均小于第一时间阈
值,且每个视频流的持续时间均小于第二时间阈值,则确认满足区域合并条件;若任一判断
结果为否,则确认不满足区域合并条件。
[0082] 可选地,本实施例提供的目的区域信息中的开始时间为本次创建的视频流的开始时间,以及所述目的区域信息中的持续时间为本次创建的视频流的持续时间;所述目的区
域信息还包括目的顶点坐标、目的宽度和目的高度,以及
[0083] 上述创建模块305,具体用于确定合并后的区域的最大边界;根据所述最大边界确定目的区域信息中的目的顶点坐标、目的宽度和目的高度。
[0084] 可选地,本实施例提供的视频流处理装置,还包括:
[0085] 记录模块(图中未示出),用于利用所述目的区域信息更新最近记录的若干个已创建的视频流的区域信息;
[0086] 可选地,上述创建模块305,具体用于若所述判断模块的判断结果为不满足合并条件,则基于所述所需的图片创建本次的视频流并基于所述初始区域信息编码发送本次创建
的视频流;
[0087] 上述记录模块(图中未示出),还用于利用所述初始区域信息更新最近记录的若干个已创建的视频流的区域信息。
[0088] 基于同一发明构思,本申请实施例提供了一种电子设备,该电子设备可以为服务器,如图4所示,上述电子设备包括处理器401和机器可读存储介质402,机器可读存储介质
402存储有能够被处理器401执行的计算机程序,处理器401被计算机程序促使执行本申请
实施例所提供的视频流处理方法。
[0089] 上述计算机可读存储介质可以包括RAM(Random Access Memory,随机存取存储器)、DDR SRAM(Double Data Rate Synchronous Dynamic Random Access Memory,双倍速
率同步动态随机存储器),也可以包括NVM(Non‑volatile Memory,非易失性存储器),例如
至少一个磁盘存储器。可选的,计算机可读存储介质还可以是至少一个位于远离前述处理
器的存储装置。
[0090] 上述处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processor,
数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、
FPGA(Field‑Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分
立门或者晶体管逻辑器件、分立硬件组件。
[0091] 另外,本申请实施例提供了一种机器可读存储介质,机器可读存储介质存储有计算机程序,在被处理器调用和执行时,计算机程序促使处理器执行本申请实施例所提供的
视频流处理方法。
[0092] 对于电子设备以及机器可读存储介质实施例而言,由于其涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0093] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存
在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖
非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要
素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备
所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在
包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0094] 上述装置中各个单元/模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0095] 对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件
说明的单元/模块可以是或者也可以不是物理上分开的,作为单元/模块显示的部件可以是
或者也可以不是物理单元/模块,即可以位于一个地方,或者也可以分布到多个网络单元/
模块上。可以根据实际的需要选择其中的部分或者全部单元/模块来实现本申请方案的目
的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0096] 以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。