发明内容
本发明提供一种视频连接的控制方法和设备,以保证高优先级用户得到更好的体验。
为了达到上述目的,本发明提供一种视频连接的控制方法,包括以下步骤:
步骤a、接收视频连接请求,并获取所述视频连接请求对应的优先级以及占用带宽;
步骤b、如果编码设备接入网络的当前剩余带宽小于所述占用带宽,获取当前已建立的视频连接所对应的调节策略,该调节策略为该视频连接支持的可以降低的码流参数,且该视频连接支持的可以降低的码流参数为根据用户需求所设置的;所述可以降低的码流参数包括以下之一或任意组合:码率、帧率、分辨率;该视频连接支持的可以降低的码率包括降低至少一个级别的码率、该视频连接支持的可以降低的帧率包括降低至少一个级别的帧率、该视频连接支持的可以降低的分辨率包括降低至少一个级别的分辨率;
步骤c、通过视频连接支持的可以降低的码流参数确定当前已建立的视频连接可以降低的最大带宽;
步骤d、判断该最大带宽与当前剩余带宽之和是否不小于所述占用带宽,如果是,执行步骤e,否则,执行步骤g;
步骤e、获取当前已建立的视频连接的优先级,并从优先级最低的视频连接开始,逐级降低该视频连接对应的码流参数,直到降低后计算的剩余带宽不小于所述占用带宽,如果降低后最终计算的剩余带宽仍小于所述占用带宽,则降低优先级次低的视频连接的一个级别的码流参数,直到降低后的剩余带宽不小于所述占用带宽;
步骤f、允许建立视频连接;
步骤g、拒绝建立视频连接。
所述步骤d的判断结果为否时,所述步骤g之前还包括:
步骤l、获取当前已建立的视频连接的优先级,并确定优先级小于视频连接请求对应的优先级的视频连接的占用带宽;
步骤m、判断该确定的占用带宽与当前剩余带宽之和是否不小于视频连接请求对应的占用带宽,如果是,执行步骤n,否则,执行步骤g;
步骤n、从当前已经建立连接的优先级最低的视频连接开始,释放该视频 连接的占用带宽,一直到释放后的剩余带宽不小于视频连接请求对应的占用带宽,则执行步骤f。
所述步骤m的判断结果为否时,所述步骤g之前还包括:
步骤x、判断该最大带宽、确定的占用带宽与当前剩余带宽之和是否不小于视频连接请求对应的占用带宽,如果是,执行步骤y,否则,执行步骤g;
步骤y、按照所有视频连接支持的可以降低的码流参数降低所有视频连接的码流参数,并从优先级最低的视频连接开始,释放该视频连接的占用带宽,一直到释放后的剩余带宽不小于视频连接请求对应的占用带宽,则执行步骤f。
所述方法还包括:维护视频连接表,所述视频连接表中记录了当前已建立的视频连接的标识、优先级、占用带宽和调节策略。
一种视频连接的控制设备,包括:
接收模块,用于接收视频连接请求;
获取模块,用于获取所述视频连接请求对应的优先级以及占用带宽,并当编码设备接入网络的当前剩余带宽小于所述占用带宽时,获取当前已建立的视频连接所对应的调节策略,该调节策略为该视频连接支持的可以降低的码流参数,且该视频连接支持的可以降低的码流参数为根据用户需求所设置的;所述可以降低的码流参数包括以下之一或任意组合:码率、帧率、分辨率;该视频连接支持的可以降低的码率包括降低至少一个级别的码率、该视频连接支持的可以降低的帧率包括降低至少一个级别的帧率、该视频连接支持的可以降低的分辨率包括降低至少一个级别的分辨率;
判断模块,用于通过视频连接支持的可以降低的码流参数确定当前已建立的视频连接可以降低的最大带宽,并判断该最大带宽与当前剩余带宽之和是否不小于所述占用带宽;
处理模块,用于当判断结果为是时,获取当前已建立的视频连接的优先级,并从优先级最低的视频连接开始,逐级降低该视频连接对应的码流参数,直到降低后计算的剩余带宽不小于所述占用带宽,如果降低后最终计算的剩余带宽仍小于所述占用带宽,则降低优先级次低的视频连接的一个级别的码流参数,直到降低后的剩余带宽不小于所述占用带宽;之后允许建立视频连接;当判断结果为否时,拒绝所述视频连接请求。
所述获取模块,还用于获取当前已建立的视频连接的优先级,并确定优先级小于视频连接请求对应的优先级的视频连接的占用带宽;
所述判断模块,还用于判断该确定的占用带宽与当前剩余带宽之和是否不小于视频连接请求对应的占用带宽;
所述处理模块,还用于当判断结果为是时,从当前已经建立连接的优先级最低的视频连接开始,释放该视频连接的占用带宽,一直到释放后的剩余带宽不小于视频连接请求对应的占用带宽。
所述判断模块,还用于判断该最大带宽、确定的占用带宽与当前剩余带宽之和是否不小于视频连接请求对应的占用带宽;
所述处理模块,还用于当判断结果为是时,按照所有视频连接支持的可以降低的码流参数降低所有视频连接的码流参数,并从优先级最低的视频连接开始,释放该视频连接的占用带宽,一直到释放后的剩余带宽不小于视频连接请求对应的占用带宽。
所述处理模块,还用于维护视频连接表,所述视频连接表中记录了当前已建立的视频连接的标识、优先级、占用带宽和调节策略。
与现有技术相比,本发明至少具有以下优点:当有新的视频连接请求时,如果编码设备接入网络的当前剩余带宽有限,可以优先保证高优先级用户使用编码设备接入网络的带宽,从而保证高优先级用户得到更好的体验。
具体实施方式
本发明提出一种视频连接的控制方法,该方法应用于包括编码设备和客户端的系统中,以图1为本发明参考网络模型示意图,则编码设备为编码器,客户端包括客户端1、2、3、4。需要说明的是,本发明提供的方法并不局限于视频连接,如音频连接、文本连接等的处理均可采用本发明提供的技术方案,后续以视频连接为例进行说明。
本发明中,可由网络侧实现对带宽的管理,在实际部署时,可以设置一服务器(如VM服务器),并通过该服务器对多个编码器的接入网络的带宽进行管理;此外,还可以由编码器对自身的接入网络的带宽进行管理,后续以编码器对自身的接入网络的带宽进行管理为例进行说明。
基于上述情况,如图2所示,该方法包括以下步骤:
步骤201,编码器接收来自客户端的视频连接请求(VideoRequest1),并获取视频连接请求对应的优先级以及视频连接的占用带宽。其中,该视频连接请求可以为服务器转发给编码器的。
需要说明的是,可在服务器上预先维护用户建立视频连接的信息(如用户的优先级、占用带宽、可支持的调节策略等),在用户通过客户端发起视频连接请求时,客户端可从服务器获得该用户的优先级以及占用带宽,并在向编码器发送的视频连接请求中携带该优先级和占用带宽;之后编码器可从视频连接请求中获得用户的优先级以及视频连接的占用带宽。此外,视频连接请求中也可以不携带优先级和占用带宽,由编码器自身根据视频连接请求中携带的用户信息从服务器获得用户的优先级以及视频连接的占用带宽。
步骤202,编码器判断该视频连接请求是否共用已有的视频源(即视频连接),如果是,执行步骤203,否则,执行步骤204。
步骤203,编码器确认该视频连接请求共用已有的视频源,流程结束。
由于该视频连接请求共用已有的视频源,则不需要重新建立视频连接,可基于已有的视频源直接向客户端发送数据。
步骤204,编码器判断接入网络的当前剩余带宽是否不小于视频连接的占用带宽,如果是,执行步骤205,否则,执行步骤206。
步骤205,编码器允许新增的视频连接请求,即向客户端返回成功的信息,之后客户端与编码器可以建立视频连接,并进行数据的传输。
步骤206,编码器获取当前已建立的视频连接的优先级,并获取当前已建立的视频连接所对应的调节策略。其中,该调节策略为该视频连接支持的可以降低的码流参数,且该视频连接支持的可以降低的码流参数为根据用户需求所设置的。
需要注意的是,上述可以降低的码流参数包括但不限于以下之一或任意组合:码率、帧率、分辨率;视频连接支持的可以降低的码率包括降低至少一个级别的码率、视频连接支持的可以降低的帧率包括降低至少一个级别的帧率,视频连接支持的可以降低的分辨率包括降低至少一个级别的分辨率。
本发明中,在增加视频连接或者减少视频连接时,均需要维护视频连接表,该视频连接表中至少记录了当前已建立的视频连接的视频连接标识、视频连接的优先级、视频连接的占用带宽、视频连接的调节策略。因此,基于该视频连接表,编码器可以获取到当前已建立的视频连接的优先级(如果多个客户端共用一个视频连接,则该视频连接按照高优先级记录),且可以获取到当前已建立的视频连接所对应的调节策略。
此外,该视频连接表中还可以记录有引用数,在维护视频连接表的过程中,如果减少视频连接(如客户端主动断开视频连接,或者客户端离线导致 视频连接断开),则该视频连接的引用数减1;如果之后的引用数为0,则删除该视频连接,释放该视频连接的占用带宽,此时在视频连接表中删除相应的记录;如果之后的引用数不为0,则结束流程(需要注意的是,该情况下,如果当前断开的视频连接为优先级最大的视频连接,则还需要将视频连接表中记录的优先级调整为次大的优先级)。
在维护视频连接表的过程中,如果新增视频连接,且该新增视频连接共用已有的视频连接,则将该视频连接的引用数加1;如果该新增视频连接不是共用已有的视频连接,则在视频连接表中添加该视频连接的记录,其引用数为1,由于可预先维护用户建立视频连接的信息(如用户的优先级、占用带宽、可支持的调节策略等),因此在维护视频连接表的过程中可获得该用户的调节策略、优先级和占用带宽等信息。
如表1所示,为一种视频连接表的示例情况。
表1
步骤207,编码器通过视频连接支持的可以降低的码流参数确定当前已建立的视频连接可以降低的最大带宽。
步骤208,编码器判断该最大带宽与当前剩余带宽之和是否不小于占用带宽,如果是,执行步骤209,否则,执行步骤210。
具体的,已建立的视频连接的调节策略(即视频连接支持的可以降低的码流参数)可以从视频连接表中获知,以表1为例,将VideoLink1的帧率从25帧/秒降到1帧/秒,并将VideoLink2的分辨率从高清降到CIF,之后,判断 调节后的剩余带宽(即上述最大带宽与当前剩余带宽之和,可以为当前剩余带宽+降低VideoLink1帧率后节省的带宽+降低VideoLink2分辨率后节省的带宽)是否不小于占用带宽(即步骤201中视频连接请求对应的占用带宽)。
需要说明的是,在判断过程中,可以直接基于可调节的最大带宽(即将VideoLink1的帧率从25帧/秒降到1帧/秒,将VideoLink2的分辨率从高清降到CIF)进行判断。
步骤209,编码器从优先级最低的视频连接开始,按照视频连接支持的可以降低的码流参数,降低该视频连接的一个级别的码流参数,一直到降低后的剩余带宽不小于占用带宽。本步骤之后,执行步骤205。
具体的,编码器可以从优先级最低的视频连接开始,按照视频连接支持的可以降低的码流参数,降低该视频连接的一个级别的码流参数,如果降低后的剩余带宽小于占用带宽,则继续降低该视频连接的下一个级别的码流参数,以此类推,一直到无法继续降低该视频连接的码流参数,如果此时降低后的剩余带宽仍小于占用带宽,则降低优先级次低的视频连接的一个级别的码流参数,以此类推,一直到降低后的剩余带宽不小于占用带宽。
本发明中,降低该视频连接的码流参数的过程具体为:通过降低视频连接的帧率和/或分辨率和/或码率来降低该视频连接的占用带宽。其中,在调节帧率的过程中,分辨率不变,但画面连续性降低,帧率调节采用逐步调节的策略,如从25帧/秒降到10帧/秒、1帧/秒等;在调节分辨率的过程中,画面连续性不变,但分辨率降低,分辨率调节采用逐步调节的策略,如从高清降到标清、D1等。此外,还可以同时调节分辨率和帧率,且调节方式并不局限于分辨率和帧率,例如,还可以有提高P帧、运动估计、降低精确度等码率调节方式,在此不再赘述。
以表1为例,VideoLink2的优先级低于VideoLink1,则基于调节策略,对VideoLink2的分辨率进行调节;从高清降到标清,如果调节后的剩余带宽 不小于占用带宽,则结束调节过程;否则,继续从标清降到D1,以此类推;一直到对VideoLink1的帧率进行调节,从5帧/秒降到1帧/秒。
需要注意的是,由于上述步骤中已经判断出调节后的剩余带宽不小于占用带宽,因此在调节过程中可以保证有调节后的剩余带宽不小于占用带宽的过程,从而结束调节过程。
综上所述,本发明中,可为不同用户的视频连接配置不同的调节策略,如有的用户关注画面质量,有的用户关注画面的连续性,因此通过为不同的视频连接配置不同的调节策略,可以大大改善用户的体验。而且由于各视频连接之间具有不同的优先级,因此可按照优先级的低高,依次调节用户的分辨率和/或帧率,直到腾出足够的带宽;由于高优先级用户最后进行调节,因此可保证高优先级用户得到最好的体验。
进一步的,如果当前存在剩余带宽(此时没有需要建立的视频连接),在已经降低了占用带宽的视频连接中,编码器还可以从优先级最高的视频连接开始,按照视频连接的调节策略(即表1所示调节策略的逆过程)恢复该视频连接的占用带宽(可通过提高该视频连接的帧率和/或分辨率和/或码率来恢复该视频连接的占用带宽),一直到当前没有剩余带宽或者所有已经降低了占用带宽的视频连接均恢复了自身的占用带宽。
在通过提高帧率进行恢复的过程中,分辨率不变,但画面连续性提高,帧率调节采用逐步调节的策略,如从1帧/秒提高5帧/秒、10帧/秒等;在通过提高分辨率进行恢复的过程中,画面连续性不变,但是分辨率提高,分辨率调节采用逐步调节的策略,如从CIF提高到D1、标清等;此外,还可以同时调节分辨率和帧率,即同时提高画面连续性和分辨率。
以表1为例,调节策略为表1记录的调节策略的逆过程,如果VideoLink1和VideoLink2均释放到最低标准,由于VideoLink2的优先级低于VideoLink1,对VideoLink1的帧率进行调节,从1帧/秒提高到5帧/秒,如果调节后没有剩 余带宽,则结束调节过程;否则,继续从5帧/秒提高到10帧/秒,以此类推;一直到对VideoLink2的分辨率进行调节,从标清提高到高清。
需要说明的是,在恢复视频连接的占用带宽的过程中,还可以设置一阈值,只有当剩余带宽大于该阈值时,才会执行上述恢复操作,当剩余带宽不大于该阈值时,则视频调节得不到大的改善,不需要进一步调节,该阈值可以定制(如100K)。
步骤210,编码器拒绝视频连接请求,即向客户端返回失败的信息,后续客户端与编码器不能建立视频连接。
本发明中,如果步骤208的判断结果为该最大带宽与当前剩余带宽之和小于占用带宽,在执行步骤210之前,还可以有以下步骤:
步骤A,编码器确定优先级小于视频连接请求对应的优先级的视频连接的占用带宽,并判断该确定的占用带宽与当前剩余带宽之和是否不小于视频连接请求对应的占用带宽,如果是,执行步骤B,否则,执行上述步骤210。
已建立的视频连接的优先级可以从视频连接表中获知,以表1为例,且视频连接请求对应优先级为15,由于VideoLink1和VideoLink2的优先级均小于15,在预释放VideoLink1和VideoLink2的占用带宽之后,判断释放后的剩余带宽(即当前剩余带宽+VideoLink1的占用带宽+VideoLink2的占用带宽)是否不小于占用带宽。
需要说明的是,在判断过程中,可以直接基于可释放的最大带宽(如释放VideoLink1的占用带宽、释放VideoLink2的占有带宽)进行判断。
步骤B,编码器从优先级最低的视频连接开始,释放该视频连接的占用带宽,一直到释放后的剩余带宽不小于视频连接请求对应的占用带宽;之后执行步骤205。
在实际应用中,可对已建立的视频连接按照优先级排序,形成列表ListA,之后从低优先级的视频连接开始,逐个选择ListA中的视频连接进行释放占用 带宽的操作。
以表1为例,VideoLink2的优先级低于VideoLink1,首先释放VideoLink2的4000K占有带宽,如果释放后的剩余带宽不小于视频连接请求对应占用带宽,则结束释放过程;否则,继续释放VideoLink1的1000K占有带宽。
需要注意的是,由于上述步骤中已经判断出释放后的剩余带宽不小于占用带宽,因此在释放过程中可以保证有释放后的剩余带宽不小于占用带宽的过程,从而结束释放过程。
进一步的,如果步骤A的判断结果为该确定的占用带宽与当前剩余带宽之和小于占用带宽,在执行步骤210之前,还可以有以下步骤:
步骤C、编码器判断上述最大带宽、确定的占用带宽与当前剩余带宽之和是否不小于视频连接请求对应的占用带宽,如果是,执行步骤D,否则,执行步骤210。
步骤D,编码器按照所有视频连接支持的可以降低的码流参数降低所有视频连接的码流参数,并从优先级最低的视频连接开始,释放该视频连接的占用带宽,一直到释放后的剩余带宽不小于视频连接请求对应的占用带宽;之后执行步骤205。
需要注意的是,由于按照视频连接的调节策略降低视频连接的占用带宽,不足以保证降低后的剩余带宽不小于占用带宽,因此本步骤中将按照所有视频连接支持的可以降低的码流参数的最高幅度降低视频连接的码流参数(如直接将VideoLink2的分辨率从高清降到CIF,并直接将VideoLink1的帧率从25帧/秒降到1帧/秒);之后,按照步骤B的处理方式释放带宽。
综上所述,本发明中,当有新的视频连接请求时,如果编码器接入网络的当前剩余带宽有限时,可通过多种手段来腾出带宽:(1)按照有效视频连接数判断统计新增视频连接,如果共用同一视频源,则不占用新的带宽。(2)按照不同的调节策略(如降帧率、降分辨率、降低码率等)调节已有视频连 接的视频码流参数,降低带宽占用,且调节从低优先级的视频连接开始。(3)进行视频连接的抢占,抢占低优先级的视频连接占用的带宽。
进一步的,当客户端释放视频连接时,可以将腾出的视频连接带宽重新分配给已有的视频连接;且调节从高优先级的视频连接开始,以保证高优先级用户得到更好的视频体验。
基于与上述方法同样的发明构思,本发明还提出了一种视频连接的控制设备,如图3所示,包括:
接收模块11,用于接收视频连接请求;
获取模块12,用于获取所述视频连接请求对应的优先级以及占用带宽,并当编码设备接入网络的当前剩余带宽小于所述占用带宽时,获取当前已建立的视频连接所对应的调节策略,该调节策略为该视频连接支持的可以降低的码流参数,且该视频连接支持的可以降低的码流参数为根据用户需求所设置的;所述可以降低的码流参数包括以下之一或任意组合:码率、帧率、分辨率;该视频连接支持的可以降低的码率包括降低至少一个级别的码率、该视频连接支持的可以降低的帧率包括降低至少一个级别的帧率,该视频连接支持的可以降低的分辨率包括降低至少一个级别的分辨率;
判断模块13,用于通过视频连接支持的可以降低的码流参数确定当前已建立的视频连接可以降低的最大带宽,并判断该最大带宽与当前剩余带宽之和是否不小于所述占用带宽;
处理模块14,用于当判断结果为是时,获取当前已建立的视频连接的优先级,并从优先级最低的视频连接开始,逐级降低该视频连接对应的码流参数,直到降低后计算的剩余带宽不小于所述占用带宽,如果降低后最终计算的剩余带宽仍小于所述占用带宽,则降低优先级次低的视频连接的一个级别的码流参数,直到降低后的剩余带宽不小于所述占用带宽;之后允许建立视频连接;当判断结果为否时,拒绝所述视频连接请求。
所述获取模块12,还用于获取当前已建立的视频连接的优先级,并确定优先级小于视频连接请求对应的优先级的视频连接的占用带宽;
所述判断模块13,还用于判断该确定的占用带宽与当前剩余带宽之和是否不小于视频连接请求对应的占用带宽;
所述处理模块14,还用于当判断结果为是时,从当前已经建立连接的优先级最低的视频连接开始,释放该视频连接的占用带宽,一直到释放后的剩余带宽不小于视频连接请求对应的占用带宽。
所述判断模块13,还用于判断该最大带宽、确定的占用带宽与当前剩余带宽之和是否不小于视频连接请求对应的占用带宽;
所述处理模块14,还用于当判断结果为是时,按照所有视频连接支持的可以降低的码流参数降低所有视频连接的码流参数,并从优先级最低的视频连接开始,释放该视频连接的占用带宽,一直到释放后的剩余带宽不小于视频连接请求对应的占用带宽。
所述处理模块14,还用于维护视频连接表,所述视频连接表中记录了当前已建立的视频连接的标识、优先级、占用带宽和调节策略。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。