视频层更新方法、装置、设备及介质与流程

文档序号:17728022发布日期:2019-05-22 02:39阅读:166来源:国知局
视频层更新方法、装置、设备及介质与流程

本发明涉及视频处理技术领域,尤其涉及一种视频层更新方法、装置、设备及计算机可读存储介质。



背景技术:

视频会议系统由视频会议终端、视频会议服务器(mcu,multipointcontrolunit)、网络管理系统和传输网络四部分组成。视频会议终端位于每个会议地点的终端,其主要工作是将本地的视频、音频、数据和控制信息进行编码打包并发送;对收到的数据包解码还原为视频、音频、数据和控制信息。终端设备包括视频采集前端(广播级摄像机或云台一体机)、显示器、解码器、编译码器、图像处理设备,控制切换设备等。作为视频会议服务器,mcu为两点或多点会议的各个终端提供数据交换、视频音频处理、会议控制和管理等服务,是视频会议开通必不可少的设备。网络管理系统是会议管理员与mcu之间交互的管理平台。在网络管理系统上可以对视频会议服务器mcu进行管理和配置、召开会议、控制会议等操作。会议数据包通过网络在各终端与服务器之间传送,安全、可靠、稳定、高带宽的网络是保证视频会议顺利进行的必要条件。

在视频会议中,视频会议接收终端需要向服务器订阅窗口,订阅信息中需要指定该订阅窗口期望接收的视频源端以及期望收到的视频层,其中一般支持的视频层有180p、360p、720p及1080p等各个不同层次分辨率的视频层,具体需要发送的视频流信息则根据订阅者的订阅情况决定。服务器接收到接收端的订阅信息后,首先会根据期望的视频层以及接收端的下行带宽选择最合适的视频层,然后向视频源端请求该视频层对应的关键帧。视频源端接收到服务器的请求信息后,会从关键帧开始发送对应的视频层。而服务器在收到视频源端的关键帧后,会进行判断是否更新视频窗口的视频层,在给视频窗口分配的码率与当前接收到的关键帧所对应的码率匹配,就会更新窗口的视频层,给视频窗口分配的码率大于当前时刻接收到的关键帧对应的码率,视频窗口的视频层就更新为分辨率更高的视频层,实现视频窗口向上切换。

在实现本发明的过程中,发明人发现:当给视频窗口分配的码率变化频繁,在短时间内,每次给视频窗口分配的码率上升时,视频窗口的视频层符合向上切换的条件时,视频接收端的视频窗口就会频繁的向上切换,进而导致视频源端频繁的发送关键帧,而接收端因为频繁的更新视频窗口,增加解码解压压力,影响用户的使用体验。



技术实现要素:

针对上述问题,本发明的目的在于提供一种视频层更新方法、装置、设备及计算机可读存储介质,避免因短时间内窗口分配的码率频繁变换,导致视频接收端频繁向视频源端请求关键帧,而接收端也在短时间内频繁更新窗口,增加解码解压压力。

第一方面,本发明实施例提供了一种视频层更新方法,包括如下步骤:

当接收到任一第一视频源端发送的第一视频流的关键帧时,获取与所述关键帧对应的第一视频层,并获取待更新到所述第一视频层的窗口;

根据当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息进行比对,确定所述窗口是否符合第一更新条件;其中,所述第二视频流的相关信息包括与所述第二视频流对应的第二视频源端、第二视频层和第二码率;所述第一视频流的相关信息包括与所述第一视频流对应的所述第一视频源端、第一码率和第一视频层;所述窗口的相关信息包括所述窗口订阅的第三视频源端和第三视频层;

当确定所述窗口符合所述第一更新条件,且所述第一视频层大于所述第二视频层时,判断所述窗口上一次完成视频层更新的时刻至当前时刻的时间段是否大于预设的时间阈值;

当所述第一视频层大于所述第二视频层时,所述窗口上一次完成视频层更新的时刻到当前时刻的时间段大于预设的时间阈值,则更新所述窗口的视频层为所述第一视频层。

在第一方面的第一种可能实现方式中,所述方法还包括:

响应于任一客户端发送的对应窗口的订阅指令,获取与所述订阅指令对应的订阅信息;

当所述订阅信息包括关于所述第一视频流的请求时,将所述客户端订阅的窗口添加至待更新到所述第一视频层的窗口集合中。

在第一方面的第二种可能实现方式中,所述方法还包括:

当任意时刻检测到所述窗口的可分配码率更新时,根据预设的判断条件确定是否将所述窗口的视频层更新至所述第一视频层;

当确定将所述窗口的视频层更新至所述第一视频层,将所述窗口添加至待更新到所述第一视频层的窗口集合中。

结合第一方面的第一种可能实现方式,在第一方面的第三种可能实现方式中,所述并获取待更新到所述第一视频层的窗口还包括:

遍历所述待更新到所述第一视频层的窗口集合,获取每一待更新到所述第一视频层的窗口。

结合第一方面的第三种可能实现方式,在第一方面的第四种可能实现方式中,所述根据当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息进行比对,确定所述窗口是否符合第一更新条件具体为:

根据当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息进行比对,判断确定所述窗口是否符合视频层不更新条件;

当确定所述窗口不符合视频层不更新条件时,根据当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息进行比对,判断所述窗口是否符合视频层更新条件;

当确定所述窗口符合视频层更新条件时,确定所述窗口符合第一更新条件。

结合第一方面的第四种可能实现方式,在第一方面的第五种可能实现方式中,所述窗口的相关信息还包括所述窗口的可分配码率;所述根据当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息进行比对,判断确定所述窗口是否符合视频层不更新条件包括:

当所述第一视频源端与所述第三视频源端不匹配时,则确定所述窗口符合视频层不更新条件;

当所述第一视频层大于所述第三视频层时,则确定所述窗口符合视频层不更新条件;

当所述第一视频流与所述第二视频流匹配时,则确定所述窗口符合视频层不更新条件;

当所述第一视频层大于所述第二视频层时,且所述第一码率低于所述可分配码率时,则确定所述窗口符合视频层不更新条件;

当所述第一视频源端与所述第三视频源端匹配、所述第一视频层小于或等于所述第三视频层、所述第一视频流与所述第二视频流不匹配以及所述第一视频层大于所述第二视频层时,且所述第一码率低于所述可分配码率时,则确定所述窗口不符合视频层不更新条件。

结合第一方面的第五种可能实现方式,在第一方面的第六种可能实现方式中,所述窗口的相关信息还包括所述窗口的接收视频流状态;所述根据当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息进行比对,判断所述窗口是否符合视频层更新条件包括:

当所述第一视频层大于所述第二视频层时,且判断所述第一视频层与所述第三视频层匹配时,则确定所述窗口符合视频层更新条件;

当所述第一视频层大于所述第二视频层时,且判断所述第一视频层与所述第三视频层不匹配时,判断所述第一视频层是否大于所述第三视频层匹配;

当所述第一视频层大于所述第二视频层时,且所述第一视频层大于所述第三视频层时,则确定所述窗口符合视频层更新条件;

当所述第一视频层大于所述第二视频层时,且判断所述第一视频层小于或等于所述第三视频层时,判断所述窗口当前时刻是否处于接收视频流的状态;

当所述窗口当前时刻处于未接收视频流的状态时,则确定所述窗口符合视频层更新条件;

当所述窗口当前时刻处于接收视频流的状态时,则判断所述第二码率和所述可分配码率是否匹配;

当所述第一视频层小于所述第二视频层时,且判断所述第二码率和所述可分配码率不匹配时,则确定所述窗口符合视频层更新条件。

在第一方面的第七种可能实现方式中,所述方法还包括步骤:

当确定所述窗口符合所述第一更新条件,且所述第一视频层小于第二视频层时,则更新所述窗口的视频层为所述第一视频层。

第二方面,本发明提供了一种视频层更新装置,包括:

窗口获取模块,用于当接收到任一第一视频源端发送的第一视频流的关键帧时,获取与所述关键帧对应的第一视频层,并获取待更新到所述第一视频层的窗口;

更新条件获取模块,用于根据当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息进行比对,确定所述窗口是否符合第一更新条件;其中,所述第二视频流的相关信息包括与所述第二视频流对应的第二视频源端、第二视频层和第二码率;所述第一视频流的相关信息包括与所述第一视频流对应的所述第一视频源端、第一码率和第一视频层;所述窗口的相关信息包括所述窗口订阅的第三视频源端和第三视频层;

判断模块,用于当确定所述窗口符合所述第一更新条件,且所述第一视频层大于所述第二视频层时,判断所述窗口上一次完成视频层更新的时刻至当前时刻的时间段是否大于预设的时间阈值;

更新模块,用于当所述第一视频层大于所述第二视频层时,所述窗口上一次完成视频层更新的时刻到当前时刻的时间段大于预设的时间阈值,则更新所述窗口的视频层为所述第一视频层。

第三方面,本发明实施例还提供了一种视频层更新设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的视频层更新方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上所述的视频层更新方法。

实施本发明实施例具有如下有益效果:

当接收到任一第一视频源端发送的第一视频流的关键帧时,获取与所述关键帧对应的第一视频层,并获取待更新到所述第一视频层的窗口;根据当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息进行比对,确定所述窗口是否符合第一更新条件;其中,所述第二视频流的相关信息包括与所述第二视频流对应的第二视频源端、第二视频层和第二码率;所述第一视频流的相关信息包括与所述第一视频流对应的所述第一视频源端、第一码率和第一视频层;所述窗口的相关信息包括所述窗口订阅的第三视频源端和第三视频层;当确定所述窗口符合所述第一更新条件,且所述第一视频层大于第二视频层时,判断所述窗口上一次完成视频层更新的时刻至当前时刻的时间段是否大于预设的时间阈值;当所述第一视频层大于第二视频层时,所述窗口上一次完成视频层更新的时刻到当前时刻的时间段大于预设的时间阈值,则更新所述窗口的视频层为所述第一视频层。综合考虑当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息,以此来确定所述第一更新条件,通过所述第一更新条件保证窗口有能力更新视频层且是有必要更新视频层。通过预设时间阈值,控制所述窗口上一次完成视频层更新的时刻到当前时刻的时间段,因短时间内窗口分配的码率频繁变换,导致视频接收端频繁向视频源端请求关键帧,而接收端也在短时间内频繁更新窗口,增加解码解压压力。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例一提供的一种视频层更新的流程方法示意图;

图2是本发明实施例一提供的窗口状态示意图;

图3是本发明实施例五提供的一种视频层更新装置结构示意图;。

图4是本发明实施例六提供的视频层更新设备的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

参见图1,本发明实施例一提供的一种视频层更新的流程方法示意图;

s11、当接收到任一第一视频源端发送的第一视频流的关键帧时,获取与所述关键帧对应的第一视频层,并获取待更新到所述第一视频层的窗口;

s12、根据当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息进行比对,确定所述窗口是否符合第一更新条件;其中,所述第二视频流的相关信息包括与所述第二视频流对应的第二视频源端、第二视频层和第二码率;所述第一视频流的相关信息包括与所述第一视频流对应的所述第一视频源端、第一码率和第一视频层;所述窗口的相关信息包括所述窗口订阅的第三视频源端和第三视频层;

s13、当确定所述窗口符合所述第一更新条件,且所述第一视频层大于所述第二视频层时,判断所述窗口上一次完成视频层更新的时刻至当前时刻的时间段是否大于预设的时间阈值;

s14、当所述第一视频层大于所述第二视频层时,所述窗口上一次完成视频层更新的时刻到当前时刻的时间段大于预设的时间阈值,则更新所述窗口的视频层为所述第一视频层。

在本发明实施例中,客户端的视频窗口要显示一路视频时,一般是从关键帧开始接收,在接收到了关键帧之后就要判断所述窗口是否需要更新视频层,在所述窗口需要进行视频层更新时,获取待更新到的视频层,服务器从所述待更新到的视频层对应的关键帧开始转发视频流。

在本发明实施例中,所述第一视频源端对应的是当前接收到的所述关键帧对应的视频源端,所述第二视频源端对应的是服务器正转发至所述窗口的第二视频流对应的视频源端,所述第三视频源端是所述窗口订阅的视频源端,也是用户期望的视频源端,所述第一视频源端、第二视频源端及第三视频源端可以相同也可以不同,本发明对此不作具体限定。

在本发明实施例中,所述窗口为用户通过客户端向服务器订阅的视频窗口,用于显示视频,参见图2,所述窗口有三种状态,包括notforwarding、pending、forwarding,在窗口从notforwarding状态变成pending状态时,服务器正给窗口寻找对应的视频层,此时窗口处于被添加进行对应视频层窗口集合中,等待被转发对应视频层的视频流;在窗口从pending状态变成forwarding状态时,服务器给窗口找到了对应视频层,并收到了对应视频层的关键帧,窗口转发对应视频层的视频流;在窗口从forwarding状态变成notforwarding状态时,服务器没有收到视频源端发送的所述对应视频层的数据,则窗口由原来转发视频流的状态变成没有转发视频流的状态;在窗口从forwarding状态变成pending状态时,服务器给窗口更新更合适的视频层,窗口被添加进行所述更合适视频层的窗口集合中。窗口可以同时处在forwarding状态和pending状态,例如,窗口现在正在转发360p视频层的视频流,但是选择最合适的视频层为720p,因此该窗口被添加进720p视频层的窗口集合中,表示该窗口等待被转发720p视频层的视频流,但是当前仍然正在转发360p视频层的视频流,等收到720p视频层的关键帧后,如果满足更新条件,就会开始转发720p的视频层的视频流。

在现有技术中,当所述第一视频层大于所述第二视频层时,所述窗口直接进行向上切换,将所述窗口的视频层更新为分辨率更高的视频层。而本发明实施例中,在确定所述窗口符合所述第一更新条件,且所述第一视频层大于所述第二视频层时,仍需要判断所述窗口上一次完成视频层更新的时刻至当前时刻的时间段是否大于预设的时间阈值,在所述窗口上一次完成视频层更新的时刻到当前时刻的时间段大于预设的时间阈值时,更新所述窗口的视频层为所述第一视频层,实现向上切换。所述预设的时间阈值可以根据实际情况设定,设置的目的是为了避免所述窗口在短时间内频繁向上切换。

具体的,在t1时刻,所述窗口符合所述第一更新条件,且所述第一视频层大于所述第二视频层时,所述窗口上一次完成视频层更新的时刻t0至当前时刻t1的时间段t是否大于预设的时间阈值t,检测到所述t小于t,则所述窗口不进行视频层更新,检测到所述t大于t,则更新所述窗口的视频层为所述第一视频层,实现视频层向上切换。

进一步的,所述方法还包括步骤:

当确定所述窗口符合所述第一更新条件,且所述第一视频层小于第二视频层时,则更新所述窗口的视频层为所述第一视频层。

在本发明实施例中,当确定所述窗口符合所述第一更新条件,且所述第一视频层小于第二视频层时,所述窗口向下切换,即窗口的视频层更新为分辨率更低的视频层。在窗口向下切换时,所述窗口符合所述第一更新条件下可以直接进行视频层更新。

实施本发明实施例具有如下有益效果:

当接收到任一第一视频源端发送的第一视频流的关键帧时,获取与所述关键帧对应的第一视频层,并获取待更新到所述第一视频层的窗口;根据当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息进行比对,确定所述窗口是否符合第一更新条件;其中,所述第二视频流的相关信息包括与所述第二视频流对应的第二视频源端、第二视频层和第二码率;所述第一视频流的相关信息包括与所述第一视频流对应的所述第一视频源端、第一码率和第一视频层;所述窗口的相关信息包括所述窗口订阅的第三视频源端和第三视频层;当确定所述窗口符合所述第一更新条件,且所述第一视频层大于第二视频层时,判断所述窗口上一次完成视频层更新的时刻至当前时刻的时间段是否大于预设的时间阈值;当所述第一视频层大于第二视频层时,所述窗口上一次完成视频层更新的时刻到当前时刻的时间段大于预设的时间阈值,则更新所述窗口的视频层为所述第一视频层。综合考虑当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息,以此来确定更新条件,通过所述更新条件保证窗口有能力更新视频层且是有必要更新视频层。通过预设时间阈值,控制所述窗口上一次完成视频层更新的时刻到当前时刻的时间段,因短时间内窗口分配的码率频繁变换,导致视频接收端频繁向视频源端请求关键帧,而接收端也在短时间内频繁更新窗口,增加解码解压压力。

实施例二

在实施例一的基础上,所述视频层更新方法还包括:

响应于任一客户端发送的对应窗口的订阅指令,获取与所述订阅指令对应的订阅信息;

当所述订阅信息包括关于所述第一视频流的请求时,将所述客户端订阅的窗口添加至待更新到所述第一视频层的窗口集合中。

优选地,所述并获取待更新到所述第一视频层的窗口还包括:

遍历所述待更新到所述第一视频层的窗口集合,获取每一待更新到所述第一视频层的窗口。

在本发明实施例中,服务器响应于任一客户端发送的对应窗口的订阅指令,获取与所述订阅指令对应的订阅信息;当所述订阅信息包括关于所述第一视频流以及所述第一视频源端的请求时,将所述客户端订阅的窗口添加至待更新到所述第一视频层的窗口集合中,以使得当接收到任一第一视频源端发送的第一视频流的关键帧时,从所述待更新到所述第一视频层的窗口集合中获取待更新到所述第一视频层的窗口,则所述待更新到所述第一视频层的窗口为所述客户端订阅的窗口。

在本发明实施例中,假设服务器给订阅的窗口选取了第一视频源端s1的360p的视频流,接下来需要判断是向所述第一视频源端s1订阅360p的视频流,还是直接请求360p的关键帧,操作过程如下:在给窗口选取了第一视频源端s1的360p的视频流后,判断所述第一视频源端s1的360p的视频流是否已经给订阅窗口转发了,如果是,则表示窗口已经接收到了关键帧,结束;如果不是,则服务器判断是否已经收到了所述第一视频源端s1的360p的视频流,如果是已经收到了所述第一视频源端s1的360p的视频流,则向所述第一视频源端s1请求360p的关键帧,然后结束。如果不是已经收到了所述第一视频源端s1的360p的视频流,则向所述第一视频源端s1订阅360p的视频流。

具体的,假设客户端r1向服务器订阅了第一视频源端s1的720p的视频流,订阅的窗口为w1,服务器将所述窗口w1添加至待更新到所述第一视频层720p的窗口集合中,在t0时刻,所述服务器收到了客户端r1的订阅请求,由于第一视频源端s1的720p视频流并没有给窗口w1转发,且服务器也没有收到所述第一视频源端s1的720p视频流,因此服务器会向所述第一视频源端s1订阅720p的视频流;在t1时刻,服务器接收到任一第一视频源端发送的第一视频流的关键帧时,检测到所述关键帧对应的所述第一视频源端为所述订阅的第一视频源端s1,所述关键帧对应的所述第一视频层为所述订阅的720p视频层,则遍历所述待更新到所述第一视频层720p的窗口集合,获取每一待更新到所述第一视频层的窗口w1,判断所述窗口w1满足所述第一更新条件以及所述预设的时间阈值,因此所述窗口w1进行更新,服务器开始给所述窗口w1转发所述第一视频源端s1的720p视频层对应的视频流。

实施本发明实施例具有如下有益效果:

响应于任一客户端发送的对应窗口的订阅指令,获取与所述订阅指令对应的订阅信息;当所述订阅信息包括关于所述第一视频流的请求时,将所述客户端订阅的窗口添加至待更新到所述第一视频层的窗口集合中,可以从所述第一视频层的窗口集合获取需要更新视频层的窗口。

实施例三

在实施例一的基础上,所述视频层更新方法还包括:

当任意时刻检测到所述窗口的可分配码率更新时,根据预设的判断条件确定是否将所述窗口的视频层更新至所述第一视频层;

当确定将所述窗口的视频层更新至所述第一视频层,将所述窗口添加至待更新到所述第一视频层的窗口集合中。

优选地,所述并获取待更新到所述第一视频层的窗口还包括:

遍历所述待更新到所述第一视频层的窗口集合,获取每一待更新到所述第一视频层的窗口。

在本发明实施例中,每次窗口可分配的码率更新时,可能会导致所述窗口正接收的视频流的码率大于所述窗口可分配的码率,从而导致所述窗口带宽不足而接收失败。因此在窗口分配的码率更新时,需要重新寻找最合适的视频层。而最合适的源需要满足以下条件:接收到关键帧的视频层对应的码率<=窗口订阅的所述第三视频层对应的码率;接收到关键帧的视频层对应的码率<=窗口可分配码率,在满足上两个条件的基础上选择码率最大的视频层。

具体的,基于实施例二的例子,在t2时刻,所述窗口w1可分配的码率降为650k,由于窗口可分配的码率更新,需要重新给所述窗口w1寻找最合适的视频层。由于t1时刻的720p视频层的码率为700k,大于所述窗口w1可分配的码率650k,所以720p视频层不再是最合适的视频层,则从180p和360p这两个视频层中选质量较高的作为最合适的视频层,优选质量较高的视频层,选择360p视频层,向所述第一视频源端s1订阅360p视频层的视频流。在t3时刻,服务器收到了所述第一视频源端s1的360p视频层的关键帧,然后判断所述窗口w1的满足所述第一更新条件以及所述预设的时间阈值,因此所述窗口w1进行视频层更新,开始给所述窗口w1转发所述第一视频源端s1的360p视频层的视频流。在t4时刻,所述窗口w1可分配的码率升为750k,由于所述窗口w1可分配的码率发生变化,需要重新给所述窗口w1寻找最合适的视频层。由于720p视频层的码率为700k,小于所述窗口w1可分配的码率750k,所以720p视频层是最合适的视频层。向所述第一视频源端s1订阅720p视频层的视频流。在t5时刻,服务器收到了所述第一视频源端s1的720p视频层的关键帧,判断窗口w1满足所述第一更新条件以及所述预设的时间阈值,因此所述窗口w1进行视频层更新,开始给所述窗口w1转发所述第一视频源端s1的720p视频层的视频流。

实施本发明实施例具有如下有益效果:

当任意时刻检测到所述窗口的可分配码率更新时,根据预设的判断条件确定是否将所述窗口的视频层更新至所述第一视频层;当确定将所述窗口的视频层更新至所述第一视频层,将所述窗口添加至待更新到所述第一视频层的窗口集合中,通过检测到所述窗口的可分配码率更新,判断更新后的窗口的码率是否可以支持所述窗口进行视频层更新,以避免因窗口可分配的码率更新,窗口的带宽不足而接收视频流失败。

实施例四

在实施例一、实施例二和实施例三的基础上,

所述根据当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息进行比对,确定所述窗口是否符合第一更新条件具体为:

根据当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息进行比对,判断确定所述窗口是否符合视频层不更新条件;

当确定所述窗口不符合视频层不更新条件时,根据当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息进行比对,判断所述窗口是否符合视频层更新条件;

当确定所述窗口符合视频层更新条件时,确定所述窗口符合第一更新条件。

在本发明实施例中,通过根据当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息进行比对,判断确定所述窗口是否符合视频层不更新条件,只有在不符合不更新条件,说明所述窗口有能力进行视频层更新,即所述窗口能接收占带宽较大的视频流。

在本发明实施例中,当确定所述窗口不符合视频层不更新条件时,根据当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息进行比对,判断所述窗口是否符合视频层更新条件,在满足视频层更新条件下,则说明所述窗口有必要进行视频层更新。

优选地,所述窗口的相关信息还包括所述窗口的可分配码率;所述根据当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息进行比对,判断确定所述窗口是否符合视频层不更新条件包括:

当所述第一视频源端与所述第三视频源端不匹配时,则确定所述窗口符合视频层不更新条件;

在本发明实施例中,需要不符合不更新条件才考虑更新条件,所以需要所述第一视频源端与所述第三视频源端匹配,以保证视频源端不变,更新的是视频层。

当所述第一视频层大于所述第三视频层时,则确定所述窗口符合视频层不更新条件;

在本发明实施例中,所述第一视频层大于所述第三视频层,即当前接收到的关键帧对应的视频层大于窗口订阅的视频层,窗口订阅的视频层是窗口所能接收到的最高质量的视频层,当所述第一视频层大于所述第三视频层时,所述窗口是没有能力更新为所述第一视频层的。

当所述第一视频流与所述第二视频流匹配时,则确定所述窗口符合视频层不更新条件;

在本发明实施例中,所述第一视频流与所述第二视频流匹配,即说明当前接收到的关键帧对应是视频流真是窗口正被转发的视频流,所以不需要更新。

当所述第一视频层大于所述第二视频层时,且所述第一码率低于所述可分配码率时,则确定所述窗口符合视频层不更新条件;

在本发明实施例中,当所述第一码率低于所述可分配码率时,所述窗口的下行带宽不足,所以窗口的视频层不进行更新。

当所述第一视频源端与所述第三视频源端匹配、所述第一视频层小于或等于所述第三视频层、所述第一视频流与所述第二视频流不匹配以及所述第一视频层大于所述第二视频层时,且所述第一码率低于所述可分配码率时,则确定所述窗口不符合视频层不更新条件。

优选地,所述窗口的相关信息还包括所述窗口的接收视频流状态;所述根据当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息进行比对,判断所述窗口是否符合视频层更新条件包括:

当所述第一视频层大于所述第二视频层时,且判断所述第一视频层与所述第三视频层匹配时,则确定所述窗口符合视频层更新条件;

在本发明实施例中,所述第一视频层大于所述第二视频层时,且所述第一视频层与所述第三视频层匹配,即当前接收到的关键帧对应的视频层是窗口订阅的视频层,所以所述窗口符合视频层更新,则所述窗口向上切换。

当所述第一视频层大于所述第二视频层时,且判断所述第一视频层与所述第三视频层不匹配时,判断所述第一视频层是否大于所述第三视频层匹配;

当所述第一视频层大于所述第二视频层时,且所述第一视频层大于所述第三视频层时,则确定所述窗口符合视频层更新条件;

当所述第一视频层大于所述第二视频层时,且判断所述第一视频层小于或等于所述第三视频层时,判断所述窗口当前时刻是否处于接收视频流的状态;

当所述窗口当前时刻处于未接收视频流的状态时,则确定所述窗口符合视频层更新条件;

当所述窗口当前时刻处于接收视频流的状态时,则判断所述第二码率和所述可分配码率是否匹配;

在本发明实施例中,所述窗口当前时刻处于未接收视频流的状态,收到关键帧且该关键帧的视频流不满足不更新条件,则进行更新。

当所述第一视频层小于所述第二视频层时,且判断所述第二码率和所述可分配码率不匹配时,则确定所述窗口符合视频层更新条件。

实施本发明实施例具有如下有益效果:

综合考虑当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息,以此来确定所述第一更新条件,通过所述第一更新条件保证窗口有能力更新视频层且是有必要更新视频层。

实施例五

参见图3,本发明实施例五提供的一种视频层更新装置结构示意图。

一种视频层更新装置,包括:

窗口获取模块21,用于当接收到任一第一视频源端发送的第一视频流的关键帧时,获取与所述关键帧对应的第一视频层,并获取待更新到所述第一视频层的窗口;

更新条件获取模块22,用于根据当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息进行比对,确定所述窗口是否符合第一更新条件;其中,所述第二视频流的相关信息包括与所述第二视频流对应的第二视频源端、第二视频层和第二码率;所述第一视频流的相关信息包括与所述第一视频流对应的所述第一视频源端、第一码率和第一视频层;所述窗口的相关信息包括所述窗口订阅的第三视频源端和第三视频层;

判断模块23,用于当确定所述窗口符合所述第一更新条件,且所述第一视频层大于所述第二视频层时,判断所述窗口上一次完成视频层更新的时刻至当前时刻的时间段是否大于预设的时间阈值;

更新模块24,用于当所述第一视频层大于所述第二视频层时,所述窗口上一次完成视频层更新的时刻到当前时刻的时间段大于预设的时间阈值,则更新所述窗口的视频层为所述第一视频层。

优选地,还包括:

响应于任一客户端发送的对应窗口的订阅指令,获取与所述订阅指令对应的订阅信息;

当所述订阅信息包括关于所述第一视频流的请求时,将所述客户端订阅的窗口添加至待更新到所述第一视频层的窗口集合中。

优选地,还包括:

当任意时刻检测到所述窗口的可分配码率更新时,根据预设的判断条件确定是否将所述窗口的视频层更新至所述第一视频层;

当确定将所述窗口的视频层更新至所述第一视频层,将所述窗口添加至待更新到所述第一视频层的窗口集合中。

优选地,所述窗口获取模块21还包括:

遍历所述待更新到所述第一视频层的窗口集合,获取每一待更新到所述第一视频层的窗口。

优选地,所述更新条件获取模块22包括:

不更新单元,用于根据当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息进行比对,判断确定所述窗口是否符合视频层不更新条件;

更新单元,用于当确定所述窗口不符合视频层不更新条件时,根据当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息进行比对,判断所述窗口是否符合视频层更新条件;

确定单元,用于当确定所述窗口符合视频层更新条件时,确定所述窗口符合第一更新条件。

优选地,所述不更新单元包括:

当所述第一视频源端与所述第三视频源端不匹配时,则确定所述窗口符合视频层不更新条件;

当所述第一视频层大于所述第三视频层时,则确定所述窗口符合视频层不更新条件;

当所述第一视频流与所述第二视频流匹配时,则确定所述窗口符合视频层不更新条件;

当所述第一视频层大于所述第二视频层时,且所述第一码率低于所述可分配码率时,则确定所述窗口符合视频层不更新条件;

当所述第一视频源端与所述第三视频源端匹配、所述第一视频层小于或等于所述第三视频层、所述第一视频流与所述第二视频流不匹配以及所述第一视频层大于所述第二视频层时,且所述第一码率低于所述可分配码率时,则确定所述窗口不符合视频层不更新条件。

优选地,所述更新单元包括:

当所述第一视频层大于所述第二视频层时,且判断所述第一视频层与所述第三视频层匹配时,则确定所述窗口符合视频层更新条件;

当所述第一视频层大于所述第二视频层时,且判断所述第一视频层与所述第三视频层不匹配时,判断所述第一视频层是否大于所述第三视频层匹配;

当所述第一视频层大于所述第二视频层时,且所述第一视频层大于所述第三视频层时,则确定所述窗口符合视频层更新条件;

当所述第一视频层大于所述第二视频层时,且判断所述第一视频层小于或等于所述第三视频层时,判断所述窗口当前时刻是否处于接收视频流的状态;

当所述窗口当前时刻处于未接收视频流的状态时,则确定所述窗口符合视频层更新条件;

当所述窗口当前时刻处于接收视频流的状态时,则判断所述第二码率和所述可分配码率是否匹配;

当所述第一视频层小于所述第二视频层时,且判断所述第二码率和所述可分配码率不匹配时,则确定所述窗口符合视频层更新条件。

优选地,还包括步骤:

当确定所述窗口符合所述第一更新条件,且所述第一视频层小于第二视频层时,则更新所述窗口的视频层为所述第一视频层。

实施本实施例具有如下有益效果:

当接收到任一第一视频源端发送的第一视频流的关键帧时,获取与所述关键帧对应的第一视频层,并获取待更新到所述第一视频层的窗口;根据当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息进行比对,确定所述窗口是否符合第一更新条件;其中,所述第二视频流的相关信息包括与所述第二视频流对应的第二视频源端、第二视频层和第二码率;所述第一视频流的相关信息包括与所述第一视频流对应的所述第一视频源端、第一码率和第一视频层;所述窗口的相关信息包括所述窗口订阅的第三视频源端和第三视频层;当确定所述窗口符合所述第一更新条件,且所述第一视频层大于第二视频层时,判断所述窗口上一次完成视频层更新的时刻至当前时刻的时间段是否大于预设的时间阈值;当所述第一视频层大于第二视频层时,所述窗口上一次完成视频层更新的时刻到当前时刻的时间段大于预设的时间阈值,则更新所述窗口的视频层为所述第一视频层。综合考虑当前时刻转发至所述窗口的第二视频流的相关信息、所述第一视频流的相关信息和所述窗口的相关信息,以此来确定更新条件,通过所述更新条件保证窗口有能力更新视频层且是有必要更新视频层。通过预设时间阈值,控制所述窗口上一次完成视频层更新的时刻到当前时刻的时间段,因短时间内窗口分配的码率频繁变换,导致视频接收端频繁向视频源端请求关键帧,而接收端也在短时间内频繁更新窗口,增加解码解压压力。

实施例六

请参见图4,图4是本发明实施例六提供的视频层更新设备的示意图,用于执行本发明实施例提供的视频层更新方法,如图4所示,该视频层更新设备包括:至少一个处理器11,例如cpu,至少一个网络接口14或者其他用户接口13,存储器15,至少一个通信总线12,通信总线12用于实现这些组件之间的连接通信。其中,用户接口13可选的可以包括usb接口以及其他标准接口、有线接口。网络接口14可选的可以包括wi-fi接口以及其他无线接口。存储器15可能包含高速ram存储器,也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器15可选的可以包含至少一个位于远离前述处理器11的存储装置。

在一些实施方式中,存储器15存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:

操作系统151,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;

程序152。

具体地,处理器11用于调用存储器15中存储的程序152,执行上述实施例所述的视频层更新方法。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述视频层更新方法的控制中心,利用各种接口和线路连接整个所述视频层更新方法的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现视频层更新的电子装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、文字转换功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、文字消息数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

其中,所述视频层更新集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一个计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,在某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。其次,本领域技术人员也应知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模拟一定是本发明所必须的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1