一种视频流处理方法及装置转让专利
申请号 : CN202011532852.7
文献号 : CN112637636B
文献日 : 2022-02-22
发明人 : 蒋华平
申请人 : 新华三大数据技术有限公司
摘要 :
权利要求 :
1.一种视频流处理方法,其特征在于,包括:在本次要创建视频流时,确定本次创建视频流所需的图片的位置信息;
若所述位置信息在最近一次创建视频流时确定出的区域信息对应的播放区域内,则本次停止创建视频流;
若所述位置信息不在最近一次创建视频流时确定出的区域信息对应的播放区域内,则获取最近记录的若干个已创建的视频流的区域信息;
根据本次所要创建的视频流的初始区域信息和获取到的若干个视频流的区域信息,判断本次所要创建的视频流的播放区域与所述若干个视频流各自的播放区域是否满足区域合并条件;
若满足区域合并条件,则合并播放区域并基于所述所需的图片创建本次的视频流,并基于合并后的区域确定本次创建的视频流的目的区域信息;
基于所述目的区域信息编码发送本次创建的视频流。
2.根据权利要求1所述的方法,其特征在于,每个视频流的区域信息包括该视频流的开始时间和持续时间,所述初始区域信息包括本次所要创建的视频流的开始时间和持续时间;则
根据本次所要创建的视频流的初始区域信息和获取到的若干个视频流的区域信息,判断本次所要创建的视频流的播放区域与所述若干个视频流各自的播放区域是否满足区域合并条件,包括:
基于各个视频流的开始时间和持续时间,分别确定相邻视频流之间的时间间隔;
判断确定出的各个时间间隔是否小于第一时间阈值并判断每个视频流的持续时间是否小于第二时间阈值;
若确定出的各个时间间隔均小于第一时间阈值,且每个视频流的持续时间均小于第二时间阈值,则确认满足区域合并条件;
若任一判断结果为否,则确认不满足区域合并条件。
3.根据权利要求2所述的方法,其特征在于,所述目的区域信息中的开始时间为本次创建的视频流的开始时间,以及所述目的区域信息中的持续时间为本次创建的视频流的持续时间。
4.根据权利要求3所述的方法,其特征在于,所述目的区域信息还包括目的顶点坐标、目的宽度和目的高度,以及
基于合并后的区域确定本次创建的视频流的目的区域信息,包括:确定合并后的区域的最大边界;
根据所述最大边界确定目的区域信息中的目的顶点坐标、目的宽度和目的高度。
5.根据权利要求1所述的方法,其特征在于,还包括:利用所述目的区域信息更新最近记录的若干个已创建的视频流的区域信息。
6.根据权利要求1所述的方法,其特征在于,若不满足合并条件,则基于所述所需的图片创建本次的视频流并基于所述初始区域信息编码发送本次创建的视频流;
利用所述初始区域信息更新最近记录的若干个已创建的视频流的区域信息。
7.一种视频流处理装置,其特征在于,包括:确定模块,用于在本次要创建视频流时,确定本次创建视频流所需的图片的位置信息;
停止模块,用于若所述位置信息在最近一次创建视频流时确定出的区域信息对应的播放区域内,则本次停止创建视频流;
获取模块,用于若所述位置信息不在最近一次创建视频流时确定出的区域信息对应的播放区域内,则获取最近记录的若干个已创建的视频流的区域信息;
判断模块,用于根据本次所要创建的视频流的初始区域信息和获取到的若干个视频流的区域信息,判断本次所要创建的视频流的播放区域与所述若干个视频流各自的播放区域是否满足区域合并条件;
创建模块,用于若所述判断模块的判断结果为满足区域合并条件,则合并播放区域并基于所述所需的图片创建本次的视频流,并基于合并后的区域确定本次创建的视频流的目的区域信息;
发送模块,用于基于所述目的区域信息编码发送本次创建的视频流。
8.根据权利要求7所述的装置,其特征在于,每个视频流的区域信息包括该视频流的开始时间和持续时间,所述初始区域信息包括本次所要创建的视频流的开始时间和持续时间;则
所述判断模块,具体用于基于各个视频流的开始时间和持续时间,分别确定相邻视频流之间的时间间隔;判断确定出的各个时间间隔是否小于第一时间阈值并判断每个视频流的持续时间是否小于第二时间阈值;若确定出的各个时间间隔均小于第一时间阈值,且每个视频流的持续时间均小于第二时间阈值,则确认满足区域合并条件;若任一判断结果为否,则确认不满足区域合并条件。
9.根据权利要求7所述的装置,其特征在于,所述目的区域信息中的开始时间为本次创建的视频流的开始时间,以及所述目的区域信息中的持续时间为本次创建的视频流的持续时间;所述目的区域信息还包括目的顶点坐标、目的宽度和目的高度,以及所述创建模块,具体用于确定合并后的区域的最大边界;根据所述最大边界确定目的区域信息中的目的顶点坐标、目的宽度和目的高度。
10.根据权利要求7所述的装置,其特征在于,还包括:记录模块,用于利用所述目的区域信息更新最近记录的若干个已创建的视频流的区域信息;
所述创建模块,具体用于若所述判断模块的判断结果为不满足合并条件,则基于所述所需的图片创建本次的视频流并基于所述初始区域信息编码发送本次创建的视频流;
所述记录模块,还用于利用所述初始区域信息更新最近记录的若干个已创建的视频流的区域信息。
说明书 :
一种视频流处理方法及装置
技术领域
背景技术
果小视频的窗口一直在云桌面上各处动态移动,h264/h265视频流就需要不停地创建和销
毁,然而发送端创建和销毁h264/h265流需也要一段时间,云桌面客户端初始化h264/h265
流也需要一段时间,这些时间加起来就会增加画面的延时,从而造成卡顿现象。
发明内容
区域合并条件;
区域是否满足区域合并条件;
的目的区域信息;
申请实施例第一方面所提供的方法。
面所提供的方法。
视频流,这样也就不需要向云桌面客户端发送视频流,从而使得服务端侧减少一次视频流
的编码器的创建操作和销毁操作,而且由于本次不需要创建视频流,使得云桌面客户端也
不需要执行解码器的创建和销毁操作,从而解决了画面延时和卡顿的问题。而当位置信息
不在最近一次创建视频流时确定出的区域信息对应的播放区域内,则获取最近记录的若干
个视频流的区域信息,然后基于本次所要创建的视频流的初始区域信息和获取到的若干个
区域信息判断各自的播放区域是否满足区域合并条件,当满足时表明这几个视频流的播放
区域比较接近,故可以通过区域合并来减少播放区域的切换,从而可以减少画面时延,避免
卡顿现象。
附图说明
具体实施方式
中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如本申
请的一些方面相一致的装置和方法的例子。
清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相对
应的列出项目的任何或所有可能组合。
本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第
一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……
时”或“响应于确定”。
间压缩,图像压缩率更高。为了降低协议的传输带宽,如果虚拟机图片的坐标都是相同的一
些图片,协议就会用H264/H265编码器把这些图片压缩成一个流,发送到云桌面客户端进行
解码和显示。但是如果新抓取的图片坐标变成了另外一个坐标,那么前面的这个H264/H265
流就需要进行销毁。相应地,云桌面客户端也需要在创建和销毁用于解码H264/H265流的解
码器。服务器端的流编码器的创建以及云桌面客户端流解码器的创建都需要额外的一段时
间,从创建编码器开始压缩成流,这段时间对用户来说就会看到图片延时或者卡顿,也即造
成卡顿现象。
一次创建视频流时确定出的区域信息对应的播放区域内,则本次停止创建视频流,这样也
就不需要向云桌面客户端发送视频流,在一定程度上节省了带宽,同时也表明本次创建视
频流所需的图片内容与上一次采用本申请提供的方法创建的视频流中的图片内容极为接
近,云桌面客户端只需要基于上一次接收到的视频流就可以继续展示且不影响用户体验,
单次创建视频流的过程中,若满足上述实施过程(位置信息在最近一次创建视频流时确定
出的播放区域内),则服务端和云桌面客户端均可以减少一次视频流的编码器/解码器的创
建及销毁,进而在完成所有视频流在云桌面客户端展示过程中,就可以减少多次创建和多
次销毁的操作,从而解决了现有技术中因频繁创建和销毁编码器/解码器所导致的视频卡
顿的问题。
域信息和获取到的若干个视频流的区域信息,判断本次所要创建的视频流的播放区域与若
干个视频流各自的播放区域是否满足区域合并条件;若满足区域合并条件,则合并播放区
域并基于所述所需的图片创建本次的视频流,并基于合并后的区域确定本次创建的视频流
的目的区域信息;基于上述目的区域信息编码发送本次创建的视频流。当位置信息不在最
近创建视频流时确定出的区域信息对应的播放区域内时,则可以判断本次所要创建的视频
流的播放区域与若干个视频流各自的播放区域是否满足区域合并条件,当满足时表明这几
个视频流的播放区域比较接近,故可以通过区域合并来减少播放区域的切换,从而可以减
少画面时延,避免卡顿现象。
域内,若均在上述播放区域内,或者有超过设定数量的像素点的位置信息在上述播放区域
内,表明用于创建本次视频流的图片与最近一次创建的视频流中的图片比较相近,或者本
次的视频流的播放区域落在最近一次创建的视频流的播放区域内,则可以执行步骤S103。
当不在上述播放区域内时,表明可能本次所需的图片与最近一次创建的视频流中的图片差
别有点多,或者本次创建的视频流的播放区域与最近一次的视频流的播放区域相差可能有
点多,则此时执行步骤S104。
需图片创建视频流的操作,这样也就不需要向云桌面客户端发送视频流,云桌面客户端只
需基于最近一次创建的视频流获得本次所要创建的视频流,然后进行展示,这样服务器端
也就减少了视频流的编码器的创建操作和销毁操作,同时云桌面客户端也减少了视频流的
解码器的创建和销毁操作,从而减少了画面时延,进而避免了视频流的卡顿。
满足区域合并条件;若满足区域合并条件,则执行步骤S106;若不满足区域合并条件,则执
行步骤S108。
流的初始区域信息。然后在此基础上,可以基于该初始区域信息和最近记录的若干个视频
流的区域信息,判断本次所要创建的视频流的播放区域与上述若干个视频流的播放区域是
否满足区域合并条件,若满足区域合并条件则表明视频流的播放区域比较接近,可以通过
区域合并即步骤S106来减少播放区域的切换,从而可以避免卡顿;而当不满足区域合并条
件时,则表明播放区域相差有点多,即使合并播放体验也可能不好,则此时执行步骤S108,
后续详细介绍之。
流,同时基于合并后的区域确定本次创建的视频流的目的区域信息,这样一来,不仅可以通
过区域合并来减少播放区域的切换,进而减少画面时延,以及解决卡顿问题。此外,合并后
的区域必然比单个视频流的播放区域要大,这样下一次要创建视频流时所需的图片的位置
信息很可能落在上述合并后的区域,使得停止创建下一次视频流,只需云桌面客户端基于
本次创建的视频流及目的区域信息获得下一次视频流即可,这样服务器端和云桌面客户端
上均不需要针对下一次执行创建和销毁编码器/解码器的操作,也即,减少了一次针对下一
次视频流的创建和销毁编码器/解码器的操作,进而也就避免了因频繁创建和销毁编码器/
解码器所导致的卡顿问题的发生。
区域。需要说明的是,在发送视频流之前,还需要利用目的区域信息对视频流进行编码,然
后将编码后的视频流发送给云桌面客户端,上述编码算法可以为H263/H264。
区域信息将本次创建的视频流发送给云桌面客户端,使得云桌面客户端以初始区域信息所
表征的播放区域展示本次创建的视频流。
区域内时,本次停止创建视频流,这样也就不需要向云桌面客户端发送视频流,从而使得服
务端侧减少一次视频流的编码器的创建操作和销毁操作,而且由于本次不需要创建视频
流,使得云桌面客户端也不需要执行解码器的创建和销毁操作,从而解决了画面延时和卡
顿的问题。而当位置信息不在最近一次创建视频流时确定出的区域信息对应的播放区域
内,则获取最近记录的若干个视频流的区域信息,然后基于本次所要创建的视频流的初始
区域信息和获取到的若干个区域信息判断各自的播放区域是否满足区域合并条件,当满足
时表明这几个视频流的播放区域比较接近,故可以通过区域合并来减少播放区域的切换,
用户也就感知不到各个视频流构成的小视频在不停地变化的情况,从而可以减少画面时
延,避免卡顿现象。
时间阈值并判断每个视频流的持续时间是否小于第二时间阈值;若确定出的各个时间间隔
均小于第一时间阈值,且每个视频流的持续时间均小于第二时间阈值,则确认满足区域合
并条件;若任一判断结果为否,则确认不满足区域合并条件。
流1的开始时间+视频流1的持续时间)。
流的播放时间比较接近,则可以进行区域合并,为了能够更好地解决卡顿问题,还可以进一
步判断单个视频流的持续时间是否小于第二时间阈值,当小于第二时间阈值时表明单个视
频流的持续时间也即播放时间比较短,则通过区域合并可以减少视频流的切换,进而避免
卡顿,因此可以确认满足区域合并条件,然后执行区域合并步骤。而当不小于第一时间阈值
时,则表明相邻的视频流的播放时间相差比较大,即使合并处理后期等待时间比较长,可能
体验效果不会很好,因此不进行区域合并,也即不满足区域合并条件。
则当前视频流与上一个视频流、上上一个视频流、下一个视频流、下下一个视频流等属于相
邻视频流。
下述过程实施步骤S106中基于合并后的区域确定本次创建的视频流的目的区域信息:确定
合并后的区域的最大边界;根据最大边界确定目的区域信息中的目的顶点坐标、目的宽度
和目的高度。
域,该最大区域记为合并后的区域,然后基于该最大区域的最大边界确定目的顶点坐标、目
的宽度和目的高度,例如将最大边界的顶点作为目的顶点坐标,然后将最大边界的宽度作
为目的宽度,最大边界的高度作为目的高度。
本次创建的视频流及目的区域信息更新记录的2个视频流的区域信息,相当于替换掉比较
早记录的视频流的区域信息,例如上述2个视频流为视频流1的区域信息和视频流2的区域
信息,视频流1早于视频流2,则本次创建的视频流为视频流3,则更新后的视频流的区域信
息为视频流3的区域信息和视频流2的区域信息,替换掉视频流1的区域信息。当然也可以保
留所有视频流的区域信息,例如记录表中记录历史创建的视频流的区域信息,然后只需将
本次创建的视频流的区域信息更新到记录表的最后一行即可,但是步骤S104获取的若干个
视频流的区域信息依然是最近记录的若干个视频流的区域信息。
流2的区域信息,记为(视频流1,视频流2),其中视频流1的区域信息和视频流2的区域信息
参考图2所示,当第三次需要创建视频流时,为了描述方便,将本次所要创建的视频流记为
视频流3,可以判断所要创建的视频流3所需的图片的位置信息是否在最近一次创建的视频
流2的区域信息对应的播放区域内,若上述位置信息在视频流2对应的播放区域内,则表明
本次所要创建的视频流3的图片的内容与视频流2的图片内容差别不大,则云桌面客户端只
需基于视频流2获得本次所要创建的视频流3就可以在云桌面客户端继续展示,这样一来,
服务器端本次由于不需要创建视频流3,其也就不需要创建和销毁针对该视频流3的编码
器,相应地,云桌面客户端也就不需要创建和销毁针对上述视频流3的解码器,从而也就减
少了创建和销毁次数,进而也就减少了画面时延和卡顿现象。
放区域与视频流2的播放区域离得不太近,则此时可以获取到历史记录的视频流1和视频流
2的区域信息,然后基于本次所要创建的视频流3所需的图片可以确认本次所要创建的视频
流3的初始区域信息,然后基于初始区域信息、视频流1的区域信息和视频流2的区域信息,
判断本次所要创建的视频流3对应的播放区域、视频流1的播放区域、视频流2的播放区域是
否满足区域合并条件,即,判断相邻视频流的时间间隔是否小于第一时间阈值,以及单个视
频流的持续时间是否小于第二时间阈值。
开始时间+视频流2的持续时间))是否小于1秒,且(视频流2的开始时间‑(视频流1的开始时
间+视频流1的持续时间))是否小于1秒;可选地,还可以进一步判断(视频流3的开始时间‑
(视频流1的开始时间+视频流1的持续时间))是否小于1秒。相应地,上述单个视频流的持续
时间是否小于第二时间阈值可以理解为:视频流1的持续时间是否小于1秒,且视频流2的持
续时间是否小于1秒,且视频流3的持续时间是否小于1秒。
区域确定视频流3的目的区域信息,该目的区域信息的顶点坐标可以为合并后的区域的最
大边界的顶点坐标,目的宽度为上述最大边界的宽度,目的高度为上述最大边界的高度;以
及该目的区域信息中的开始时间为视频流3的开始时间,目的区域信息中的持续时间为视
频流3的持续时间,也请参考图2所示,通过执行区域合并可以减少区域切换从而也能避免
卡顿。在区域合并后,可以基于目的区域信息利用H264编码器对视频流3进行编码,然后将
编码后的视频流3通过VDI协议发送给云桌面客户端。然后更新记录的视频流的区域信息,
例如原来记录的视频流的区域信息为(视频流1的区域信息,视频流2的区域信息),则更新
之后的区域信息可以为(视频流2的区域信息,视频流3的目的区域信息)。
象,因此当不满足区域合并时可以按照现有的流程处理,即创建视频流3然后基于初始区域
信息对视频流3进行编码然后将编码后的视频流3发送给云桌面客户端。然后更新记录的视
频流的区域信息,例如原来记录的视频流的区域信息为(视频流1的区域信息,视频流2的区
域信息),则更新之后的区域信息可以为(视频流2的区域信息,视频流3的初始区域信息)。
论述。
播放区域是否满足区域合并条件;
视频流的目的区域信息;
视频流的持续时间是否小于第二时间阈值;若确定出的各个时间间隔均小于第一时间阈
值,且每个视频流的持续时间均小于第二时间阈值,则确认满足区域合并条件;若任一判断
结果为否,则确认不满足区域合并条件。
域信息还包括目的顶点坐标、目的宽度和目的高度,以及
的视频流;
402存储有能够被处理器401执行的计算机程序,处理器401被计算机程序促使执行本申请
实施例所提供的视频流处理方法。
率同步动态随机存储器),也可以包括NVM(Non‑volatile Memory,非易失性存储器),例如
至少一个磁盘存储器。可选的,计算机可读存储介质还可以是至少一个位于远离前述处理
器的存储装置。
数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、
FPGA(Field‑Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分
立门或者晶体管逻辑器件、分立硬件组件。
视频流处理方法。
在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖
非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要
素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备
所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在
包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
说明的单元/模块可以是或者也可以不是物理上分开的,作为单元/模块显示的部件可以是
或者也可以不是物理单元/模块,即可以位于一个地方,或者也可以分布到多个网络单元/
模块上。可以根据实际的需要选择其中的部分或者全部单元/模块来实现本申请方案的目
的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。