一种视频传输方法、装置、设备及存储介质与流程

文档序号:17483322发布日期:2019-04-20 06:35阅读:113来源:国知局
一种视频传输方法、装置、设备及存储介质与流程

本发明涉及通信传输技术领域,尤其涉及一种视频传输方法、装置、设备及计算机可读存储介质。



背景技术:

在基于事件(如视频)的发布端/订阅者模式中,订阅者的需求也是千差万别,以视频订阅为例,不同的订阅者希望得到的内容也会不同,比如具有不同大小屏幕的终端期望得到的视频分辨率会有所不同,因此作为发布端的视频源端在进行多播时,往往需要支持发送多路相同或者不同分辨率的视频流,最常见的是发送180p、360p、720p及1080p等各个不同层级分辨率的视频流,具体需要发送的视频流信息则根据订阅者的订阅情况决定。

作为发布端的视频源端在收到订阅者的订阅信息后,首先需要为订阅者所订阅的分辨率层次分配码率,目前现有技术的常规做法是为划分的每一层次设定一个最低码率,目标码率和最高码率,然后在视频源端的上行码率足够的情况下,依次给每一层次分配最低码率,目标码率和最高码率,直到将上行所有码率分配完毕。同时为了提高视频的传输质量,现有技术通常在视频源端进行自适应码率控制,根据上行码率的实时情况实现订阅者订阅层次的调整,例如在视源源端的上行码率降低的情况下,则向订阅者发送比订阅层次更低的视频流,以保证视频的流畅度;当视频源端的上行码率足够的情况下,则向订阅者发送订阅的本层次的视频流,以保证视频的清晰度。

在实现本发明的过程中,发明人发现:当网络波动较大的时候,如果给某一层次分配的码率恰好在最低码率上下波动,则源端会一直在发送该层次的视频流和不发送该层次的视频流之间切换,由于每次从不发送到开始发送,都需要重新发送该层次对应的关键帧,从而占用更多的上行带宽,不仅造成了资源的浪费,频繁的视频分辨率的切换也影响用户的观看体验。



技术实现要素:

针对上述问题,本发明的目的在于提供一种视频传输方法、装置、设备及计算机可读存储介质,避免因上行码率的影响导致分频率层级频繁切换,实现上行带宽的综合使用。

第一方面,本发明实施例提供了一种视频传输方法,包括以下步骤:

当检测到当前上行码率更新,且上一时刻未向订阅设备发送订阅的第一分辨率的视频流时,获取所述订阅设备的视频订阅信息;其中,所述视频订阅信息包括订阅的视频流的第一分辨率;

根据所述第一分辨率获取该第一分辨率对应的最低码率以及码率阈值;

若当前上行码率大于或者等于所述第一分辨率对应的最低码率以及所述码率阈值之和,向所述订阅设备发送对应于所述第一分辨率的视频流;

若当前上行码率小于所述第一分辨率对应的最低码率以及所述码率阈值之和,且所述视频流包括有低于所述第一分辨率的未订阅的第二分辨率时,根据所述第二分辨率获取该第二分辨率对应的最低码率以及码率阈值;

若当前上行码率大于或者等于所述第二分辨率对应的最低码率以及所述码率阈值之和,向所述订阅设备发送对应于所述第二分辨率的视频流。

在第一方面的第一种实现方式中,所述若当前上行码率大于或者等于所述第一分辨率对应的最低码率以及所述码率阈值之和,以所述第一分辨率向所述订阅设备发送所述视频流,具体为:

若当前可分配码率大于或者等于所述第一分辨率对应的最低码率以及所述码率阈值之和,根据所述第一分辨率对应的最低码率确定传输码率;

以所述传输码率向所述订阅设备发送对应于所述第一分辨率的视频流。

在第一方面的第二种实现方式中,所述若当前上行码率大于或者等于所述第二分辨率对应的最低码率以及所述码率阈值之和,向所述订阅设备发送对应于所述第二分辨率的视频流,具体为:

若当前可分配码率大于或者等于所述第二分辨率对应的最低码率以及所述码率阈值之和,根据所述第二分辨率对应的最低码率确定传输码率;

以所述传输码率向所述订阅设备发送对应于所述第二分辨率的视频流。

根据第一方面的第一种实现方式或者第二种实现方式,在第一方面的第三种实现方式中,所述当前可分配码率为所述上行码率与所述传输码率之差。

根据第一方面的第三种实现方式,在第一方面的第四种实现方式中,还包括:

当检测到当前上行码率更新,且上一时刻已向所述订阅设备发送所述第一分辨率的视频流时,获取所述订阅设备所订阅的视频流的第一分辨率对应的最低码率以及码率阈值;

若当前可分配码率大于或者等于所述第一分辨率对应的最低码率以及所述码率阈值之差,向所述订阅设备发送对应于所述第一分辨率的视频流。

根据第一方面的第四种实现方式,在第一方面的第五种实现方式中,还包括:

若当前可分配码率小于所述第一分辨率对应的最低码率以及所述码率阈值之差,确定所述视频流是否包括有低于所述第一分辨率的未订阅的第二分辨率;

若所述视频流包括有低于所述第一分辨率的未订阅的第二分辨率,根据所述第二分辨率获取该第二分辨率的最低码率以及码率阈值;

若当前可分配码率大于或者等于所述第二分辨率对应的最低码率以及所述码率阈值之和,向所述订阅设备发送对应于所述第二分辨率的视频流。

根据第一方面的以上任一种实现方式,在第一方面的第六种实现方式中,还包括:

接收所述订阅设备的视频订阅信息;其中,所述视频订阅信息包括订阅的视频流的第一分辨率。

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

视频订阅信息获取单元,用于当检测到当前上行码率更新,且上一时刻未向订阅设备发送订阅的第一分辨率的视频流时,获取所述订阅设备的视频订阅信息;其中,所述视频订阅信息包括订阅的视频流的第一分辨率;

第一码率参数确定单元,用于根据所述第一分辨率获取该第一分辨率对应的最低码率以及码率阈值;

第一视频流发送单元,用于若当前上行码率大于或者等于所述第一分辨率对应的最低码率以及所述码率阈值之和,向所述订阅设备发送对应于所述第一分辨率的视频流;

第二码率参数确定单元,用于若当前上行码率小于所述第一分辨率对应的最低码率以及所述码率阈值之和,且所述视频流包括有低于所述第一分辨率的未订阅的第二分辨率时,根据所述第二分辨率获取该第二分辨率对应的最低码率以及码率阈值;

第二视频流发送单元,用于若当前上行码率大于或者等于所述第二分辨率对应的最低码率以及所述码率阈值之和,向所述订阅设备发送对应于所述第二分辨率的视频流。

在第二方面的第一种实现方式中,所述第一视频流发送单元,具体包括:

第一传输码率确定模块,用于若当前可分配码率大于或者等于所述第一分辨率对应的最低码率以及所述码率阈值之和,根据所述第一分辨率对应的最低码率确定传输码率;

第一视频流发送模块,用于以所述传输码率向所述订阅设备发送对应于所述第一分辨率的视频流。

在第二方面的第二种实现方式中,所述第二视频流发送单元具体包括:

第二传输码率确定单元,用于若当前可分配码率大于或者等于所述第二分辨率对应的最低码率以及所述码率阈值之和,根据所述第二分辨率对应的最低码率确定传输码率;

第二视频流发送模块,用于以所述传输码率向所述订阅设备发送对应于所述第二分辨率的视频流。

根据第二方面的第一种实现方式或者第二种实现方式,在第二方面的第三种实现方式中,所述当前可分配码率为所述上行码率与所述传输码率之差。

根据第二方面的第三种实现方式,在第二方面的第四种实现方式中,还包括:

第三码率参数确定模块,用于当检测到当前上行码率更新,且上一时刻已向所述订阅设备发送所述第一分辨率的视频流时,获取所述订阅设备所订阅的视频流的第一分辨率对应的最低码率以及码率阈值;

第三视频流发送单元,用于若当前可分配码率大于或者等于所述第一分辨率对应的最低码率以及所述码率阈值之差,向所述订阅设备发送对应于所述第一分辨率的视频流。

根据第二方面的第四种实现方式,在第二方面的第五种实现方式中,还包括:

第二分辨率确定模块,用于若当前可分配码率小于所述第一分辨率对应的最低码率以及所述码率阈值之差,确定所述视频流是否包括有低于所述第一分辨率的未订阅的第二分辨率;

第四码率参数确定模块,用于若所述视频流包括有低于所述第一分辨率的未订阅的第二分辨率,根据所述第二分辨率获取该第二分辨率的最低码率以及码率阈值;

第四视频流发送单元,用于若当前可分配码率大于或者等于所述第二分辨率对应的最低码率以及所述码率阈值之和,向所述订阅设备发送对应于所述第二分辨率的视频流。

根据第二方面的以上任一种实现方式,在第二方面的第六种实现方式中,还包括:

订阅信息接收模块,用于接收所述订阅设备的视频订阅信息;其中,所述视频订阅信息包括订阅的视频流的第一分辨率。

第三方面,本发明实施例提供了一种视频传输装置设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面中任意一项所述的视频传输方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如第一方面中任意一项所述的视频传输方法。

以上实施例具有如下有益效果:

当检测到当前上行码率更新,且上一时刻未向订阅设备发送订阅的第一分辨率的视频流时,获取订阅设备的视频订阅信息并确定订阅的视频流的第一分辨率对应的最低码率以及码率阈值,若当前上行码率大于或者等于所述第一分辨率对应的最低码率以及所述码率阈值之和,向所述订阅设备发送对应于所述第一分辨率的视频流,若当前上行码率小于所述第一分辨率对应的最低码率以及所述码率阈值之和,且所述视频流包括有低于所述第一分辨率的未订阅的第二分辨率时,根据所述第二分辨率获取该第二分辨率对应的最低码率以及码率阈值,若当前上行码率大于或者等于所述第二分辨率对应的最低码率以及所述码率阈值之和,向所述订阅设备发送对应于所述第二分辨率的视频流,其中从第一分辨率切换为第二分辨率的条件由所述第二分辨率的最低码率及切换阈值确定的,通过对应的最低码率及切换阈值对所述第一分辨率和第二分辨率的发送条件进行动态调整,使得不同分辨率的视频流层次之间的切换不再基于各个视频流层次的最低码率,从而实现对于分辨率之间切换的控制,有利于减少因上行码率的影响导致的不同分辨率的视频流频繁切换的问题,从而减少关键帧的发送,减少过多的上行带宽的占用,实现运行资源的综合使用,同时也保证订阅者良好的订阅体验。

附图说明

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

图1是本发明第一实施例提供的视频传输方法的流程示意图。

图2是本发明第二实施例提供的视频传输装置的结构示意图。

图3是本发明第三实施例提供的视频传输设备的结构示意图。

具体实施方式

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

请参阅图1,本发明第一实施例提供了一种视频传输方法,其可由视频传输设备来执行,所述视频传输设备可以是两个或多个物理实体构成,也可以是一个物理实体构成,该视频传输设备可以是电脑,手机,平板电脑、智能平板或者服务器等计算设备。所述视频传输设备作为发布-订阅模式中的发布者视频源端,根据订阅设备的订阅情况向订阅设备传输订阅的视频流,所述订阅设备可以是电脑,手机,平板电脑、智能平板或者服务器等计算设备,所述订阅设备可以根据自身的实际情况订阅一个分辨率层级的视频流,也可以订阅多个分辨率层级的视频流。

请参阅图1,所述视频传输方法包括以下步骤:

s11,当检测到当前上行码率更新,且上一时刻未向订阅设备发送订阅的第一分辨率的视频流时,获取所述接收订阅设备的视频订阅信息;其中,所述视频订阅信息包括订阅的视频流的第一分辨率。

在本发明实施例中,在作为视频源发布者的所述视频传输设备中,所述视频流设置有若干分辨率,例如所述视频流设置有4种分辨率层级,分别为180p、360p、720p及1080p等,所述订阅设备会向作为视频源发布者的所述视频传输设备订阅期望的视频流,订阅者向所述视频传输设备订阅视频流时,需要携带分辨率信息,告知所述视频传输设备自己期望接收的分辨率,所述视频传输设备在接收所述订阅设备的视频订阅信息之后,获取所述视频订阅信息中包括的订阅的视频流的第一分辨率,然后根据所述订阅设备期望的第一分辨率确定发送的视频流,需要说明的是,所述订阅设备可订阅一个分辨率层级的视频流,也可以订阅多个不同分辨率层级的视频流,为将所述订阅设备所订阅的分辨率层级以及非订阅的分辨率层级区别开来,将作为所述订阅设备订阅的所述视频流的分辨率层级定义为第一分辨率,将所述订阅者非订阅的所述视频流的分辨率层级定义为第二分辨率。

在本发明实施例中,当检测到当前上行码率更新,且上一时刻未向订阅设备发送订阅的第一分辨率的视频流时,可能是所述视频传输设备刚接收到该订阅者的订阅请求的情况,上一次上行码率更新时没有为该第一视频流层级分配码率,也可能是上一次上行码率更新时上一次的可分配码率不满足该第一分辨率的需求码率范围,因此或者满足向下切换确定了第二分辨率,或者不满足向下切换条件也没有确定第二分辨率,此时所述视频传输设备获取所述接收订阅设备的视频订阅信息。

s12,根据所述第一分辨率获取该第一分辨率对应的最低码率以及码率阈值。

在本发明实施例中,需要说明的是,在作为视频源发布者的所述视频传输设备中,所述视频流设置有若干分辨率,例如所述视频流设置有4种分辨率层级,分别为180p,360p,720p,1080p等,每一分辨率层级分别设置有对应的最低码率以及切换阈值,其中所述最低码率表示传输给该分辨率层级的视频流所需要的最小传输码率,例如设置180p分辨率的视频流需要的最低码率为30k,对应的切换阈值为0k;360p分辨率的视频流需要的最低码率为200k,对应的切换阈值为50k;720p分辨率的视频流需要的最低码率为600k,对应的切换阈值为100k;1080p分辨率的视频流需要的最低码率为800k,对应的切换阈值为150k等等;需要说明的是,本发明对于分辨率层级的划分以及最低码率、切换阈值的具体数值的设置不做任何限定,上述数值仅为举例说明,本领域技术人员可以理解的是,所述分辨率层级的划分以及最低码率、切换阈值的具体数值的设置可依据实际情况进行具体设置,为进一步发送所述订阅设备订阅的所述视频流,首先所述视频传输设备根据所述第一分辨率获取该第一分辨率对应的最低码率以及码率阈值,以进一步确定是否要发送所述第一分辨率的视频流。

s13,若当前上行码率大于或者等于所述第一分辨率对应的最低码率以及所述码率阈值之和,向所述服务器发送对应于所述第一分辨率的视频流。

在本发明实施例中,所述订阅设备可订阅一个分辨率层级的视频流,也可以订阅多个不同分辨率层级的视频流,当所述订阅设备订阅一个分辨率层级的视频流时,当前可分配码率为上行码率与传输码率之差,已分配的传输码率为0,则当前可分配码率等于当前上行码率,所述视频传输设备判断当前可分配码率(即当前上行码率)与所述第一分辨率对应的最低码率和所述码率阈值之和的大小关系,若当前可分配码率大于或者等于所述第一分辨率对应的最低码率以及所述码率阈值之和,则所述视频传输设备根据所述第一分辨率对应的最低码率确定传输码率,然后以所述传输码率向所述订阅设备发送对应于所述第一分辨率的视频流。

在本发明实施例中,当所述视频传输设备订阅多个不同分辨率层级的视频流时,所述视频传输设备以订阅的最低层级的第一分辨率为起始,且以订阅的最高层级的第一分辨率为终止,从低到高依次遍历所述订阅设备所订阅的所有第一分辨率,在遍历的每一层级的第一分辨率中,若在遍历到所述第一分辨率之前可能已经遍历了层级更低的第一分辨率并确定了相应的传输码率,则所述传输码率不为0,所述当前可分配码率为所述上行码率与所述传输码率之差,所述视频传输设备判断当前可分配码率与所述第一分辨率对应的最低码率和所述码率阈值之和的大小关系,若当前可分配码率大于或者等于所述第一分辨率对应的最低码率以及所述码率阈值之和,则所述视频传输设备根据所述第一分辨率对应的最低码率确定传输码率,然后以所述传输码率向所述订阅设备发送对应于所述第一分辨率的视频流。

s14,若当前上行码率小于所述第一分辨率对应的最低码率以及所述码率阈值之和,且所述视频流包括有低于所述第一分辨率的未订阅的第二分辨率时,根据所述第二分辨率获取该第二分辨率对应的最低码率以及码率阈值。

在本发明实施例中,所述视频传输设备判断当前可分配码率与所述第一分辨率对应的最低码率和所述码率阈值之和的大小关系,若当前可分配码率小于所述第一分辨率对应的最低码率以及所述码率阈值之和,表明当前可分配码率不支持发送所述第一分辨率的视频流,则所述视频传输设备确定所述视频流是否包括有低于所述第一分辨率的未订阅的第二分辨率,以进行分辨率切换的过程,若所述视频流包括有低于所述第一分辨率的未订阅的第二分辨率,则所述视频传输设备根据所述第二分辨率获取该第二分辨率的最低码率以及码率阈值。

s15,若当前上行码率大于或者等于所述第二分辨率对应的最低码率以及所述码率阈值之和,向所述服务器发送对应于所述第二分辨率的视频流。

在本发明实施例中,所述视频传输设备判断当前可分配码率与所述第二分辨率对应的最低码率和所述码率阈值之和的大小关系,若当前可分配码率大于或者等于所述第二分辨率对应的最低码率以及所述码率阈值之和,则所述视频传输设备根据所述第二分辨率对应的最低码率确定传输码率,并以所述传输码率向所述订阅设备发送对应于所述第二分辨率的视频流;若当前可分配码率小于所述第二分辨率对应的最低码率以及所述码率阈值之和,则所述视频传输设备不发送所述视频流;需要说明的是,若所述视频传输设备获取有多个未订阅的第二分辨率,且所述第二分辨率均满足当前可分配码率大于或者等于所述第二分辨率对应的最低码率以及所述码率阈值之和时,选择层级最高的第二分辨率,比如订阅设备订阅第一分辨率为720p层级的视频流,当前可分配码率不满足该层级的码率需求,无法为该第一视频流层级确定传输码率,但是未订阅的第二分辨率的180p层级和360p层级都满足条件,则选择较高层级的360p层级确定传输码率。

在本发明实施例中,所述视频传输设备对确定了传输码率的所述视频流进行编码和发送,因为确定传输码率的所述视频流的分辨率与订阅设备向所述视频传输设备订阅的视频流的期望分辨率可能不一样,如果上行码率满足订阅的第一分辨率对应的最低码率以及所述码率阈值之和,所述视频传输设备发送与订阅设备订阅的第一分辨率相同质量的视频流,但是当上行码率较低时,即不满足订阅的第一分辨率对应的最低码率以及所述码率阈值之和,所述视频传输设备会根据符合条件发送订阅者非订阅的第二分辨率的质量的视频流,所述第一分辨率的层级高于所述第二分辨率的层级,当所述视频传输设备开始发送某一分辨率的视频流时,首先需要发送该分辨率层级对应的关键帧,当所述订阅设备接收到该视频流的分辨率层级对应的关键帧时,才能根据收到的关键帧开始解码接收到的所述视频流。

在本发明实施例中,例如所述视频传输设备设置180p,360p,720p,1080p共4个分辨率层级,设置180p分辨率的视频流需要的最低码率为30k,对应的切换阈值为0k;360p分辨率的视频流需要的最低码率为200k,对应的切换阈值为50k;720p分辨率的视频流需要的最低码率为600k,对应的切换阈值为100k;1080p分辨率的视频流需要的最低码率为800k,对应的切换阈值为150k;比如订阅设备向所述视频传输设备订阅360p层级的视频流,初始第一时刻,作为视频发布源端的所述视频传输设备的上行码率为210k,视频传输设备所述视频传输设备需要判断此时的当前可分配码率,即此刻的上行码率是否满足大于或者等于360p的第一分辨率对应的最低码率及切换阈值之和,由于210k小于250k,因此不给订阅的360p的第一视频流层次确定传输码率,下面判断是否满足向下切换条件:确定存在比订阅的360p的第一分辨率的层级更低的非订阅的180p的第二分辨率,且此刻的上行码率大于所述第二分辨率对应的最低码率及切换阈值之和,210k大于30k,满足向下切换的条件,根据180p的第二分辨率的最低码率确定传输码率,并以所述传输码率向所述订阅者发送对应于所述第二分辨率的视频流;第二时刻,作为视频发布源端的所述视频传输设备上行码率更新为300k,由于第一时刻所述视频传输设备没有给360p的第一视频流层次确定传输码率,因此需要判断当前可分配码率,即上行码率是否满足大于或者等于360p的第一分辨率对应的最低码率及切换阈值之和,由于300k高于250k,因此根据360p的第一分辨率的最低码率确定传输码率,并以所述传输码率向所述订阅设备发送对应于所述第一分辨率的视频流;第三时刻,作为视频发布源端的所述视频传输设备上行码率为180k,由于第二时刻源端有给360p的第一视频流层次确定传输码率,因此需要判断当前可分配码率,即此刻的上行码率是否满足大于或者等于360p的第一分辨率对应的最低码率及切换阈值之差,由于180k高于150k,因此第三时刻仍然根据360p的第一分辨率的最低码率确定传输码率,并以所述传输码率向所述订阅设备发送对应于所述第一分辨率的视频流,这样即使上行的码率在最低码率附近波动时,只要波动的幅度不超过切换阈值的2倍,也不会频繁的切换,从而避免占据过多的上行带宽,保证所述视频流的传输效率。

综上所述,本发明第一实施例提供了一种视频传输方法,接收订阅设备的视频订阅信息并确定订阅的视频流的第一分辨率对应的最低码率以及码率阈值,若当前上行码率大于或者等于所述第一分辨率对应的最低码率以及所述码率阈值之和,向所述订阅设备发送对应于所述第一分辨率的视频流,若当前上行码率小于所述第一分辨率对应的最低码率以及所述码率阈值之和,且所述视频流包括有低于所述第一分辨率的未订阅的第二分辨率时,根据所述第二分辨率获取该第二分辨率对应的最低码率以及码率阈值,若当前上行码率大于或者等于所述第二分辨率对应的最低码率以及所述码率阈值之和,向所述订阅设备发送对应于所述第二分辨率的视频流,其中从第一分辨率切换为第二分辨率的条件由所述第二分辨率的最低码率及切换阈值确定的,通过对应的最低码率及切换阈值对所述第一分辨率和第二分辨率的发送条件进行动态调整,使得不同分辨率的视频流之间的切换不再基于各个分辨率的最低码率,从而实现对于分辨率之间切换的控制,有利于减少因上行码率的影响导致的不同分辨率的视频流频繁切换的问题,从而减少关键帧的发送,减少过多的上行带宽的占用,实现运行资源的综合使用,同时也保证订阅者良好的订阅体验。

为了便于对本发明的理解,下面将对本发明的一些优选实施例做更进一步的描述。

本发明第一个优选实施例:

在本发明第一实施例的基础上,所述视频传输方法还包括:

当检测到当前上行码率更新,且上一时刻已向所述订阅设备发送所述视频流时,获取所述订阅设备所订阅的视频流的第一分辨率对应的最低码率以及码率阈值。

若当前可分配码率大于或者等于所述第一分辨率对应的最低码率以及所述码率阈值之差,向所述订阅设备发送对应于所述第一分辨率的视频流。

在本发明实施例中,所述视频传输设备实时检测上行接口的总的码率,即上行码率,以保证向所述订阅设备发送的视频流的质量,所述视频传输设备在检测到当前上行码率更新,且上一时刻已向所述订阅设备发送所述视频流时,其中所述更新的条件可依据实际情况进行具体设置,例如可以为本次的上行码率较上一次的上行码率发生了变化,或者本次的上行码率较上一次的上行码率的变化幅度超过了预设幅度阈值等等,当前所述视频传输设备根据当前更新的上行码率重新确认可以发送的所述视频流的分辨率,所述订阅设备可订阅一个分辨率层级的视频流,也可以订阅多个不同分辨率层级的视频流,当所述订阅设备订阅一个分辨率层级的视频流时,已分配的传输码率为0,则当前可分配码率等于当前上行码率;当所述视频传输设备订阅多个不同分辨率层级的视频流时,所述视频传输设备以订阅的最低层级的第一分辨率为起始,且以订阅的最高层级的第一分辨率为终止,从低到高依次遍历所述订阅设备所订阅的所有第一分辨率,所述当前可分配码率为所述上行码率与所述传输码率之差,若当前遍历的是所述订阅者的第一个第一分辨率,则所述传输码率为0,所述当前可分配码率等于所述上行码率,若在遍历到所述第一分辨率之前可能已经遍历了层级更低的第一分辨率并确定了相应的传输码率,则所述当前可分配码率为所述上行码率与所述传输码率之差,则所述视频传输设备获取所述订阅设备所订阅的视频流的第一分辨率对应的最低码率以及码率阈值,所述当前可分配码率为所述上行码率与所述传输码率之差,所述视频传输设备判断当前可分配码率与所述第一分辨率对应的最低码率和所述码率阈值之差的大小关系,若当前可分配码率大于或者等于所述第一分辨率对应的最低码率以及所述码率阈值之差,所述视频传输设备仍然根据所述第一分辨率对应的最低码率确定传输码率,并以所述传输码率向所述订阅设备发送对应于所述第一分辨率的视频流。

在本发明实施例中,在上行码率较低时,所述视频传输设备从订阅的第一分辨率向下切换为非订阅的第二分辨率时,需要满足所述当前可分配码率小于所述第一分辨率对应的最低码率及对应的切换阈值之差,在上行码率较高时,所述视频传输设备从所述第二分辨率向上切换为订阅的第一分辨率,需要满足所述当前可分配码率大于或者等于所述第一分辨率对应的最低码率及对应的切换阈值之和,这样即使上行的码率在最低码率附近波动时,只要波动的幅度不超过切换阈值的2倍,也不会频繁的切换,从而避免占据过多的上行带宽,保证视频流的传输效率。

本发明第二个优选实施例:

在本发明第一优选实施例的基础上,所述视频传输方法还包括:

若当前可分配码率小于所述第一分辨率对应的最低码率以及所述码率阈值之差,确定所述视频流是否包括有低于所述第一分辨率的未订阅的第二分辨率。

若所述视频流包括有低于所述第一分辨率的未订阅的第二分辨率,根据所述第二分辨率获取该第二分辨率的最低码率以及码率阈值。

若当前可分配码率大于或者等于所述第二分辨率对应的最低码率以及所述码率阈值之和,向所述订阅设备发送对应于所述第二分辨率的视频流。

在本发明实施例中,所述当前可分配码率为所述上行码率与所述传输码率之差,所述视频传输设备判断当前可分配码率与所述第一分辨率对应的最低码率和所述码率阈值之差的大小关系,若当前可分配码率小于所述第一分辨率对应的最低码率以及所述码率阈值之差,并且所述视频流包括有低于所述第一分辨率的未订阅的第二分辨率时,根据第二分辨率获取该第二分辨率的最低码率以及码率阈值,所述视频传输设备判断当前可分配码率与所述第二分辨率对应的最低码率和所述码率阈值之和的大小关系,若当前可分配码率大于或者等于所述第二分辨率对应的最低码率以及所述码率阈值之和,则所述视频传输设备根据所述第二分辨率对应的最低码率确定传输码率,并以所述传输码率向所述订阅设备发送对应于所述第二分辨率的视频流;若当前可分配码率小于所述第二分辨率对应的最低码率以及所述码率阈值之和,则所述视频传输设备不发送所述视频流。

在本发明实施例中,例如所述视频传输设备设置180p,360p,720p,1080p共4个分辨率层级,设置180p分辨率的视频流需要的最低码率为30k,对应的切换阈值为0k;360p分辨率的视频流需要的最低码率为200k,对应的切换阈值为50k;720p分辨率的视频流需要的最低码率为600k,对应的切换阈值为100k;1080p分辨率的视频流需要的最低码率为800k,对应的切换阈值为150k;;例如订阅设备向所述视频传输设备订阅180p层级和720p层级的视频流,t0时刻,作为视频发布源端的所述视频传输设备的上行码率为20k,从低到高遍历所有第一分辨率,首先遍历180p的第一分辨率,由于当前可分配码率,即此刻的上行码率小于180p的第一分辨率对应的最低码率及切换阈值之和,20k<30k,因此不给180p的第一分辨率确定传输码率,由于没有比180p的第一分辨率的层级更低的第二分辨率,向下切换条件不满足,结束。t1时刻,作为视频发布源端的所述视频传输设备的上行码率更新为30k,从低到高遍历所有第一分辨率,首先遍历180p的第一分辨率,由于当前可分配码率,即此刻的上行码率满足大于或者等于180p的第一分辨率对应的最低码率及切换阈值之和,30k≥30k,因此给180p的第一分辨率确定传输码率,且确定的传输码率最小为30k,剩下的当前可分配码率为所述上行码率与所述传输码率之差,即剩下的当前可分配码率为0,结束。t2时刻,作为视频发布源端的所述分辨率视频传输设备的上行码率更新为400k,从低到高遍历所有第一分辨率,首先遍历180p的第一分辨率,由于当前可分配码率,即此刻的上行码率满足大于或者等于180p的第一分辨率对应的最低码率及切换阈值之和,400k≥30k,因此给180p的第一分辨率确定传输码率,且确定的传输码率最小为30k,剩下的当前可分配码率为370k(400k-30k=370k),继续遍历,取下一个订阅的720p的第一分辨率,由于当前可分配码率小于720p的第一分辨率对应的最低码率及切换阈值之和,370k<750k,因此不给720p的第一分辨率确定传输码率,下面判断向下切换条件是否满足:确定非订阅的第二分辨率360p,没有分配过码率,且当前可分配码率满足大于或者等于360p的第二分辨率对应的最低码率及切换阈值之和,370k≥300k,因此360p的第二分辨率满足向下切换条件,给360p的第二分辨率确定传输码率,并以所述传输码率向所述订阅设备发送对应于所述第二分辨率的视频流。t3时刻,作为视频发布源端的所述视频传输设备的上行码率更新为800k,从低到高遍历所有第一分辨率,首先遍历180p的第一分辨率,由于当前可分配码率,即此刻的上行码率满足大于或者等于180p的第一分辨率对应的最低码率及切换阈值之和,800k≥30k,因此给180p的第一分辨率确定传输码率,且确定的传输码率最小为30k,剩下的当前可分配码率为770k(800k-30k=770k),继续遍历,取下一个订阅的720p的第一分辨率,由于当前可分配码率满足待遇或者等于720p的第一分辨率对应的最低码率及切换阈值之和,因此给720p的第一分辨率确定传输码率,并以所述传输码率向所述订阅设备发送对应于所述第一分辨率的视频流,遍历结束,返回。

在本发明实施例中,需要说明的是,所述视频传输设备的每一分辨率设置有对应于该分辨率的最高码率,例如所述分辨率视频传输设备设置180p,360p,720p,1080p共4个分辨率,设置180p的分辨率对应的最低码率为30k,最高码率为200k,对应的切换阈值为0k;360p的分辨率对应最低码率为200k,最高码率为700k,对应的切换阈值为50k;720p的分辨率对应最低码率为600k,最高码率为1800k,对应的切换阈值为100k;1080p的分辨率对应最低码率为800k,最高码率为3000k,对应的切换阈值为150k;例如订阅设备向所述视频传输设备订阅360p层级和720p层级的视频流,t0时刻,作为视频发布源端的所述分辨率视频传输设备的上行码率为600k,从低到高遍历所有第一分辨率,首先遍历360p的第一分辨率,由于当前可分配码率,即此刻的上行码率满足大于或者等于360p的第一分辨率对应的最低码率及切换阈值之和,600k≥250k,因此给360p的第一分辨率确定传输码率,且确定的传输码率最小为200k,剩下的当前可分配码率为400k(600k-200k=400k),继续遍历,取下一个订阅的720p的第一分辨率,由于当前可分配码率小于720p的第一分辨率对应的最低码率及切换阈值之和,400k<750k,因此不给720p的第一分辨率确定传输码率,下面判断向下切换条件是否满足:确定非订阅的第二分辨率180p,没有分配过码率,且当前可分配码率满足大于或者等于180p的第二分辨率对应的最低码率及切换阈值之和,400k≥30k,因此180p的第二分辨率满足向下切换条件,又400k≥200k,根据180p的第二分辨率的最高码率给180p的第二分辨率确定传输码率,剩余的码率不再进行分配,并以所述传输码率向所述订阅者发送对应于所述第二视频层次的视频流,需要说明的是,所述分辨率视频传输设备的每一分辨率设置有对应于该分辨率的最高码率,表示该分辨率最大允许的码率,所述分辨率视频传输设备为任一分辨率确定的传输码率不能大于该分辨率的最高码率,若当前可分配码率大于确定的其中一个分辨率的最高码率,则根据所述分辨率的最高码率确定传输码率,剩余的码率不再进行分配。

在本发明第三个优选实施例中:

在以上任一实施例的基础上,所述视频传输方法还包括:

接收所述订阅设备的视频订阅信息;其中,所述视频订阅信息包括订阅的视频流的第一分辨率。

在本发明实施例中,在作为视频源发布者的所述视频传输设备中,所述视频流设置有若干分辨率,例如所述视频流设置有4种分辨率层级,分别为180p、360p、720p及1080p等,所述订阅设备会向作为视频源发布者的所述视频传输设备订阅期望的视频流,订阅者向所述视频传输设备订阅视频流时,需要携带分辨率信息,告知所述视频传输设备自己期望接收的分辨率,所述视频传输设备在接收所述订阅设备的视频订阅信息之后,获取所述视频订阅信息中包括的订阅的视频流的第一分辨率,然后根据所述订阅设备期望的第一分辨率确定发送的视频流。

请参阅图2,本发明第二实施例提供了一种视频传输装置,包括:

视频订阅信息获取单元11,用于当检测到当前上行码率更新,且上一时刻未向订阅设备发送订阅的第一分辨率的视频流时,获取所述订阅设备的视频订阅信息;其中,所述视频订阅信息包括订阅的视频流的第一分辨率。

第一码率参数确定单元12,用于根据所述第一分辨率获取该第一分辨率对应的最低码率以及码率阈值。

第一视频流发送单元13,用于若当前上行码率大于或者等于所述第一分辨率对应的最低码率以及所述码率阈值之和,向所述订阅设备发送对应于所述第一分辨率的视频流。

第二码率参数确定单元14,用于若当前上行码率小于所述第一分辨率对应的最低码率以及所述码率阈值之和,且所述视频流包括有低于所述第一分辨率的未订阅的第二分辨率时,根据所述第二分辨率获取该第二分辨率对应的最低码率以及码率阈值。

第二视频流发送单元15,用于若当前上行码率大于或者等于所述第二分辨率对应的最低码率以及所述码率阈值之和,向所述订阅设备发送对应于所述第二分辨率的视频流。

在第二实施例的第一种实现方式中,所述第一视频流发送单元13,具体包括:

第一传输码率确定模块,用于若当前可分配码率大于或者等于所述第一分辨率对应的最低码率以及所述码率阈值之和,根据所述第一分辨率对应的最低码率确定传输码率。

第一视频流发送模块,用于以所述传输码率向所述订阅设备发送对应于所述第一分辨率的视频流。

在第二实施例的第二种实现方式中,所述第二视频流发送单元15具体包括:

第二传输码率确定单元,用于若当前可分配码率大于或者等于所述第二分辨率对应的最低码率以及所述码率阈值之和,根据所述第二分辨率对应的最低码率确定传输码率。

第二视频流发送模块,用于以所述传输码率向所述订阅设备发送对应于所述第二分辨率的视频流。

根据第二实施例的第一种实现方式或者第二种实现方式,在第二实施例的第三种实现方式中,所述当前可分配码率为所述上行码率与所述传输码率之差。

根据第二实施例的第三种实现方式,在第二实施例的第四种实现方式中,还包括:

第三码率参数确定模块,用于当检测到当前上行码率更新,且上一时刻已向所述订阅设备发送所述第一分辨率的视频流时,获取所述订阅设备所订阅的视频流的第一分辨率对应的最低码率以及码率阈值。

第三视频流发送单元,用于若当前可分配码率大于或者等于所述第一分辨率对应的最低码率以及所述码率阈值之差,向所述订阅设备发送对应于所述第一分辨率的视频流。

根据第二实施例的第四种实现方式,在第二实施例的第五种实现方式中,还包括:

第二分辨率确定模块,用于若当前可分配码率小于所述第一分辨率对应的最低码率以及所述码率阈值之差,确定所述视频流是否包括有低于所述第一分辨率的未订阅的第二分辨率。

第四码率参数确定模块,用于若所述视频流包括有低于所述第一分辨率的未订阅的第二分辨率,根据所述第二分辨率获取该第二分辨率的最低码率以及码率阈值。

第四视频流发送单元,用于若当前可分配码率大于或者等于所述第二分辨率对应的最低码率以及所述码率阈值之和,向所述订阅设备发送对应于所述第二分辨率的视频流。

根据第二实施例的以上任一种实现方式,在第二实施例的第六种实现方式中,还包括:

订阅信息接收模块,用于接收所述订阅设备的视频订阅信息;其中,所述视频订阅信息包括订阅的视频流的第一分辨率。

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

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

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

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

程序152。

具体地,处理器11用于调用存储器15中存储的程序152,执行上述实施例所述的视频传输方法,例如图1所示的步骤s11。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如视频订阅信息接收单元。

示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述视频传输设备中的执行过程。

所述视频传输设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述视频传输设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是所述视频传输设备的示例,并不构成对所述视频传输设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。

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

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

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

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

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