一种视频编码的方法、装置、服务器和存储介质与流程

文档序号:20511232发布日期:2020-04-24 18:33阅读:133来源:国知局
一种视频编码的方法、装置、服务器和存储介质与流程

本发明实施例涉及视频处理领域,尤其涉及一种视频编码的方法、装置、服务器和存储介质。



背景技术:

当今时代,在各类应用程序中多人视频的应用场景越来越普遍,如多人视频会议或多人视频聊天等方式,从而使得人与人之间的交流越来越方便。由于多人视频场景下,某一下行用户接收其他上行用户的视频流的下行带宽是一定的,而不同下行用户的下行带宽是不同的,因此不同下行用户对于同一视频流的需求码率也不相同。如果某一视频流的编码码率大于下行用户对该视频流的需求码率,则会因为该下行用户的下行带宽不够而产生丢包;如果某一视频流的编码码率小于下行用户对该视频流的需求码率,则会造成该下行用户观看该视频流时不清晰。

目前为了解决上述问题,上行用户所在终端会将编码后的原始视频流上传到流媒体服务器,同时下行用户所在终端将自身的网络状态(如下行带宽)反馈给流媒体服务器,此时流媒体服务器将原始视频流以及根据各个下行用户的网络状态所确定的适配参数发送给码率适配服务器,由码率适配服务器根据各个下行用户对应的适配参数对原始视频流进行码率适配,从而得到各个下行用户对应的不同码率下的视频流,并转发回流媒体服务器,由流媒体服务器将每一下行用户在对应码率下的视频流发送给该下行用户所在终端。

此时如果多个下行用户需要观看同一视频流,而不同下行用户的网络状态差异较大时,码率适配服务器会根据不同下行用户的适配参数对该视频流进行多种码率下的视频编码,或者通知上行用户所在客户端直接采用多码率编码,极大增加了码率适配服务器或上行用户所在客户端对同一视频流进行码率适配编码的压力。



技术实现要素:

本发明实施例提供了一种视频编码的方法、装置、服务器和存储介质,保证不同视频通话模式下编码码率的适配范围,降低上行视频流的编码压力。

第一方面,本发明实施例提供了一种视频编码的方法,该方法包括:

确定上行视频流在不同视频通话模式下与对应下行探测带宽匹配的需求码率列表;

在每一视频通话模式下的需求码率列表中,选取码率适配范围内覆盖的需求码率最多的目标码率,作为所述上行视频流在该视频通话模式下的编码码率。

第二方面,本发明实施例提供了一种视频编码的装置,该装置包括:

需求码率确定模块,用于确定上行视频流在不同视频通话模式下与对应下行探测带宽匹配的需求码率列表;

编码码率选取模块,用于在每一视频通话模式下的需求码率列表中,选取码率适配范围内覆盖的需求码率最多的目标码率,作为所述上行视频流在该视频通话模式下的编码码率。

第三方面,本发明实施例提供了一种服务器,该服务器包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的视频编码的方法。

第四方面,本发明实施例提供了一种视频编码的系统,该系统包括:上行终端、下行终端以及本发明第三方面中所述的服务器;

所述下行终端向所述服务器上报针对所述上行终端的视频通话模式以及对应的下行探测带宽;所述服务器执行本发明任意实施例所述的视频编码的方法,得到所述上行终端的上行视频流在不同视频通话模式下的编码码率,并下发给所述上行终端;所述上行终端采用不同视频通话模式下的编码码率分别对所述上行视频流进行编码。

第五方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的视频编码的方法。

本发明实施例提供了一种视频编码的方法、装置、服务器和存储介质,首先确定上行视频流在不同视频通话模式下与该视频通话模式下的下行探测带宽匹配的需求码率列表,并在每一视频通话模式下的需求码率列表中,选取出码率适配范围内覆盖的需求码率最多的目标码率,作为上行视频流在该视频通话模式下的编码码率,从而使该编码码率在需求码率列表中的码率适配范围最广,保证不同视频通话模式下编码码率的适配范围,无需根据下行探测带宽确定多种编码码率而进行多码率编码,降低了上行视频流的编码压力。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明实施例提供的一种视频编码的系统的场景架构图;

图2a为本发明实施例一提供的一种视频编码的方法的流程图;

图2b为本发明实施例一提供的方法中视频通话模式的原理示意图;

图3a为本发明实施例二提供的一种视频编码的方法的流程图;

图3b为本发明实施例二提供的上行视频流的编码码率确定过程的原理示意图;

图4为本发明实施例三提供的一种视频编码的方法的流程图;

图5a为本发明实施例四提供的一种视频编码的方法的流程图;

图5b为本发明实施例四提供的视频编码过程的原理示意图;

图6为本发明实施例五提供的一种视频编码的装置的结构示意图;

图7为本发明实施例六提供的一种服务器的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

本实施例中主要针对多人视频通话场景下,由于各个下行用户的下行探测带宽各不相同,对同一上行视频流适配的需求码率也各不相同,此时对上行视频流采用多码率编码时造成的编码压力过大的问题,本发明实施例结合多人视频通话中各个下行终端实际采用的下行探测带宽以及对上行视频流选用的视频通话模式,调整出该上行视频流在不同视频通话模式下适合的编码码率,无需针对每一下行终端进行对应码率的编码,极大降低了上行视频流的编码压力。

图1为本发明实施例提供的一种视频编码的系统的场景架构图。具体的,参照图1,该视频编码的系统中包括上行终端10,下行终端20以及服务器30。

其中,上行终端10和下行终端20上均配置有具备多人视频通话功能的应用程序,不同终端的用户通过触发该应用程序的多人视频通话功能进入相应的多人视频通话间,此时任一用户的视频画面均会在其他用户的终端界面中显示,因此上行终端10可以是指进入多人视频通话间的任一用户在的终端,下行终端20为该多人视频通话间中除上行终端10对应的用户外的其他用户所在的终端。服务器30为能够对多人视频通话间中的不同用户实时上传的视频流进行处理,以确定各个下行终端20对上行终端10中的上行视频流进行编码时的需求码率的流媒体服务器,该服务器30能够根据各个下行终端20对上行视频流的需求码率计算出在不同视频通话模式下适合绝大多数下行终端20的下行探测带宽的编码码率,以保证多人视频通话间中绝大多数用户的视频体验。

具体的,由于上行终端10的上行视频流在多人视频通话间的各个下行终端20中会根据下行用户所选择的不同展示形式存在多种样式,且某一下行终端20的视频界面中会相应展示多人视频通话间中除该下行终端20的用户之外的其他用户的视频画面,此时不同的下行终端20针对上行终端10中上行视频流的视频通话模式可以包括大流视频通话、中流视频通话和小流视频通话,该大流视频通话为下行终端20的用户选择在视频界面中大屏显示该上行终端10的视频画面,而小屏显示该多人视频通话间中其他用户的视频画面,该中流视频通话为下行终端20的用户选择在视频界面中采用均分方式均匀显示该上行终端10和该多人视频通话间中其他用户的视频画面,该小流视频通话为下行终端20的用户选择在视频界面中小屏显示该上行终端10的视频画面,而大屏显示该多人视频通话间中其他用户中某一用户的视频画面。

此时,由于上行终端10的视频画面在不同下行终端20中的显示区域大小不同,因此为了保证视频画面的清晰度,不同下行终端20对于该上行终端10的上行视频流的需求码率也不同,也就是不同下行终端20针对该上行终端10所选择的不同视频通话模式,也会对该下行终端20对上行终端10的上行视频流的需求码率造成影响。因此,多人视频通话间中的各个下行终端20会根据下行用户在视频界面中执行的模式选择操作向服务器30上报针对上行终端的视频通话模式,同时由于网络状态实时变化,也会实时向服务器30上报该下行终端20对应的下行探测带宽,使得服务器30根据各个下行终端20针对上行终端10的视频通话模式,以及各个下行终端20对应的下行探测带宽,确定上行视频流在不同视频通话模式下与对应下行探测带宽匹配的需求码率列表,也就是在大流视频通话模式、中流视频通话模式和小流视频通话模式下分别对应维护一个上行视频流的需求码率列表,并根据各个下行终端20的视频通话模式和下行探测带宽实时更新,进而在每一视频通话模式下的需求码率列表中,针对每一需求码率对应的码率适配范围,选取出各码率适配范围内覆盖的需求码率最多的目标码率,作为上行视频流在该视频通话模式下的编码码率,从而得到上行视频流在不同视频通话模式下的编码码率,并下发给上行终端10,由上行终端10分别采用不同视频通话模式下的编码码率对上行视频流进行编码,进而将在不同视频通话模式下编码后的上行视频流上传给服务器30,由服务器30根据多人视频通话间中各下行终端20针对该上行终端10的视频通话模式,向各个下行终端20下发对应视频通话模式下编码后的上行视频流,此时不同视频通话模式下编码后的上行视频流能够满足多人视频通话间中绝大多数用户的视频显示需求,保证不同视频通话模式下编码码率的适配范围,同时无需根据下行探测带宽确定多种编码码率而进行多码率编码,降低了上行视频流的编码压力。

需要说明的是,本实施例对于下行终端20的数量不作限定,具体根据多人视频通话间中参与用户的数量确定,同时通过服务器30确定上行视频流在不同视频通话模式下的编码码率的具体操作在下述视频编码的方法中进行详细的解释说明,在此不作具体介绍。

实施例一

图2a为本发明实施例一提供的一种视频编码的方法的流程图,本实施例可应用于任一种多人视频通话间中对上行视频流进行编码的情况中。本实施例提供的一种视频编码的方法可以由本发明实施例提供的视频编码的装置来执行,该装置可以通过软件和/或硬件的方式来实现,并集成在执行本方法的服务器中,该服务器可以是具备多人视频通话功能的应用程序对应的能够对各用户上传的视频流进行处理的流媒体服务器。

具体的,参考图2a,该方法可以包括如下步骤:

s210,确定上行视频流在不同视频通话模式下与对应下行探测带宽匹配的需求码率列表。

具体的,本实施例主要应用于多人视频通话场景下,此时加入多人视频通话间的各个用户均会向服务器上传自身的视频流数据,并由服务器转发给该多人视频通话间中的其他用户,因此本实施例中的上行视频流是指多人视频通话间中任一用户向服务器上传的视频流,需要由服务器转发给多人视频通话间中的其他用户,因此相对于该上行视频流对应的用户,多人视频通话间中的其他用户则为下行用户。

同时,由于多人视频通话间中的某一用户接收到服务器转发的其他用户的上行视频流时,会在本地的视频界面中选择相应的区域显示各个其他用户的视频画面,不同用户得视频画面的显示区域可以不同,因此对于多人视频通话间中某一用户的上行视频流,不同下行用户在本地的视频界面中会采用不同视频通话模式对应显示同一上行视频流,此时视频通话模式包括大流视频通话(大屏显示上行视频流)、中流视频通话(区域均分显示上行视频流)和小流视频通话(小屏显示上行视频流)三种。

此外,由于不同下行用户所在终端的网络状态不稳定,为了保证上行视频流在不同下行用户的视频界面中适应性显示,不同下行用户根据各自的下行探测带宽以及各自视频界面中上行视频流的显示区域划分,会对各个上行视频流分配不同的需求码率,因此针对不同下行用户的下行探测带宽,上行视频流在不同视频通话模式下均对应维护一个需求码率列表,该需求码率列表中包括采用该视频通话模式显示上行视频流的各个下行用户所在终端根据其自身的下行探测带宽为该上行视频流分配的需求码率。

可选的,针对多人视频通话间中的任一上行用户录制的上行视频流,首先确定多人视频通话间中其他用户(各个下行用户)对该上行用户的上行视频流所选用的视频通话模式,从而确定该上行用户的上行视频流在不同视频通话模式下对应的下行用户,并将不同视频通话模式下各个下行用户的下行探测带宽按照对应视频通话模式所指示的上行视频流的显示区域划分情况为该上行视频流分配对应的需求码率,从而得到上行视频流在不同视频通话模式下的需求码率列表。

示例性的,本实施例中确定上行视频流在不同视频通话模式下与对应下行探测带宽匹配的需求码率列表,具体可以包括:针对每一视频通话模式,确定上行视频流所在的视频通话间中通过该视频通话模式播放上行视频流的下行终端;根据该视频通话模式和下行终端的下行探测带宽,计算下行终端为上行视频流分配的需求码率,得到上行视频流在该视频通话模式下的需求码率列表。

具体的,针对上行用户的上行视频流对应的每一视频通话模式被下行用户的选用情况,首先确定该上行用户所在的视频通话间中选用该视频通话模式在本地的视频界面中播放该上行用户的上行视频流的各个下行终端(下行用户所在终端),进而根据该视频通话模式下上行视频流在各个下行终端本地的视频界面中所占据的显示区域比例,计算各下行终端基于各自的下行探测带宽按照该显示区域比例为该上行视频流对应分配的需求码率,从而得到上行视频流在该视频通话模式下的需求码率列表;对每一视频通话模式均执行上述步骤,得到上行视频流在不同视频通话模式下的需求码率列表。

以四人视频通话间为例,如图2b所示,若终端a、b、c和d之间进行视频通话,以终端a为上行用户所在终端为例,此时终端b、c和d对应为下行用户所在终端,若终端b对终端a的上行视频流选用大流视频通话,也就是选择大屏显示终端a的视频画面,小屏显示终端c和d的视频画面,终端c和d对终端a的上行视频流选用中流视频通话,也就是选择均分屏幕的方式分别显示终端a的视频画面,而终端b、c和d的下行探测带宽分别为bw_b、bw_c和bw_d,此时若预先设定小流视频通话的需求码率为固定值90k,则由在终端b中a为大屏显示,c和d为小屏显示,在终端c和d中都是均分显示其他用户的视频画面,从而确定终端a的上行视频流在大流视频通话下的需求码率列表为{bw_b-90k*2},在中流视频通话下的需求码率列表为{bw_c/3,bw_d/3},在小流视频通话下的需求码率列表为空。

s220,在每一视频通话模式下的需求码率列表中,选取码率适配范围内覆盖的需求码率最多的目标码率,作为上行视频流在该视频通话模式下的编码码率。

具体的,由于不同视频通话模式下上行视频流适用的编码码率差异较大,而同一视频通话模式下上行视频流适用的编码码率差异较小,因此本实施例中针对每一视频通话模式,均对应确定一个合适的编码码率。

可选的,在每一视频通话模式下的需求码率列表中可以包括视频通话间中选用该视频通话模式显示该上行视频流的各个下行终端根据各自的下行探测带宽为该上行视频流分配的需求码率,此时需求码率列表中的每一需求码率均设定匹配有一个码率适配范围,本实施例中要求所设定的码率适配范围能够保证如果采用该码率适配范围对应的需求码率对上行视频流进行编码,编码后的上行视频流能够满足该需求码率列表中处于该码率适配范围内的需求码率所对应的各个下行终端的下行探测带宽,也就是保证处于该码率适配范围内的需求码率所对应的各个下行终端在接收采用该码率适配范围对应的需求码率进行编码后的上行视频流时,能够避免上行视频流的丢包情况或者上行视频流在下行终端显示不清晰的情况,从而保障处于该码率适配范围内的需求码率所对应的各个下行终端对该上行视频流的显示性能。

为了保证上行视频流的编码码率在多人视频通话中的适用范围,需要保证该视频通话模式下的需求码率列表中处于最终编码采用的需求码率所对应的码率适配范围内的需求码率最多,使得最终编码采用的需求码率在多人视频通话中的适用用户也最多,也就满足多人视频通话中绝大多数用户对上行视频流的编码要求;因此,在每一视频通话模式下的需求码率列表中,首先确定该需求码率列表中的每一需求码率对应的码率适配范围内覆盖的需求码率数量,进而选取出所覆盖的需求码率数量最多的码率适配范围,此时该码率适配范围对应的需求码率为本实施例中的目标码率,将该目标码率作为上行视频流在该视频通话模式下的编码码率,以便后续在该视频通话模式下,上行终端采用该编码码率对上行视频流进行编码,满足多人视频通话中选用该视频通话模式的下行终端中绝大多数用户对上行视频流的编码要求,使该编码码率在需求码率列表中的码率适配范围最广。同时,对于每一视频通话模式下的需求码率列表均执行上述步骤,得到上行视频流在不同视频通话模式下的编码码率,此时上行终端仅在每一视频通话模式下对上行视频流进行对应编码,无需根据各个下行终端的下行探测带宽确定多种编码码率而进行多码率编码,降低了上行视频流的编码压力。

本实施例提供的技术方案,首先确定上行视频流在不同视频通话模式下与该视频通话模式下的下行探测带宽匹配的需求码率列表,并在每一视频通话模式下的需求码率列表中,选取出码率适配范围内覆盖的需求码率最多的目标码率,作为上行视频流在该视频通话模式下的编码码率,从而使该编码码率在需求码率列表中的码率适配范围最广,保证不同视频通话模式下编码码率的适配范围,无需根据下行探测带宽确定多种编码码率而进行多码率编码,降低了上行视频流的编码压力。

实施例二

图3a为本发明实施例二提供的一种视频编码的方法的流程图,图3b为本发明实施例二提供的上行视频流的编码码率确定过程的原理示意图。本实施例是在上述实施例的基础上进行优化,本实施例主要对上行视频流在不同视频通话模式下的编码码率的具体确定过程进行详细的解释说明。

可选的,如图3a所示,本实施例可以包括如下步骤:

s310,确定上行视频流在不同视频通话模式下与对应下行探测带宽匹配的需求码率列表。

s320,按照预设顺序遍历每一视频通话模式下的需求码率列表,并确定该需求码率列表中各个需求码率对应的码率适配范围内的需求码率覆盖量。

可选的,由于对每一视频通话模式下的需求码率列表中的每一需求码率均需要进行分析,因此本实施例中可以按照预设顺序遍历每一视频通话模式下的需求码率列表,该预设顺序可以是按照需求码率列表中需求码率值从大到小的顺序,从大到小遍历需求码率列表中的每一需求码率,并确定各个需求码率对应的码率适配范围,同时计算该需求码率列表中在码率适配范围内的需求码率覆盖量,也就是处于各个需求码率对应的码率适配范围内的需求码率数量,以便后续根据各个码率适配范围内的需求码率覆盖量选取覆盖最多的目标码率。

示例性的,如图3b所示,若在上行终端的中流视频通话下的需求码率列表为{needbr1,needbr2,needbr3,needbr4,needbr5,needbr6,needbr7,needbr8},且该需求码率列表从小到大排列,则从needbr8开始遍历该需求码率列表:将当前需求码率设为目标码率targetbw,同时设定该目标码率对应的码率适配范围为[targetbw/2,targetbw],依次计算该需求码率列表中位于码率适配范围[targetbw/2,targetbw]内的需求码率覆盖量,进而将下一需求码率设为目标码率targetbw,继续计算对应的码率适配范围[targetbw/2,targetbw]内的需求码率覆盖量,直至遍历完成。优选的,为了保证需求码率列表的遍历高效性,本实施例将该需求码率列表看作是一个按顺序排列的数轴,码率适配范围[targetbw/2,targetbw]作为一个滑窗,从需求码率列表中的最大值needbr8开始,之后每次滑窗往左移动的距离是让targetbw到达下一个最近的需求码率点或者targetbw/2到达下一个最近的需求码率点所需要移动的较小距离,从而减少该需求码率列表中很多没有意义的遍历,每次选取的targetbw值都是需求码率覆盖量可能会变大变小的临界点。

s330,选取需求码率覆盖量中的最大值,并将该最大值对应的需求码率作为上行视频流在该视频通话模式下的编码码率。

可选的,在确定该需求码率列表中各个需求码率对应的码率适配范围内的需求码率覆盖量后,选取出该需求码率覆盖量中的最大值,也就是选取在需求码率列表中所覆盖的需求码率最多的码率适配范围,并将该最大值下的码率适配范围对应的需求码率作为上行视频流在该视频通话模式下的编码码率,使得该编码码率能够满足多人视频通话中选用该视频通话模式显示上行视频流的各个下行终端中绝大多数下行用户对上行视频流的编码要求;此时采用上述方式对各个视频通话模式下的遍历进行分析,得到上行视频流在不同视频通话模式下的编码码率。

需要说明的是,由于需求码率列表在遍历过程中可能有多个码率适配范围内的需求码率覆盖量达到该最大值,为了降低上行终端的编码压力,本实施例中将该最大值对应的需求码率作为上行视频流在该视频通话模式下的编码码率,具体可以包括:如果最大值对应两个或两个以上的需求码率,则选取最小需求码率作为上行视频流在该视频通话模式下的编码码率。

具体的,在需求码率列表中有两个或两个以上的码率适配范围内的需求码率覆盖量达到该最大值,则选取出码率适配范围所对应的需求码率最小值作为上行视频流在该视频通话模式下的编码码率,降低上行视频流的编码压力。

本实施例提供的技术方案,首先确定上行视频流在不同视频通话模式下与该视频通话模式下的下行探测带宽匹配的需求码率列表,并遍历每一视频通话模式下的需求码率列表,选取出各个需求码率对应的码率适配范围内的需求码率覆盖量最大的需求码率,作为上行视频流在该视频通话模式下的编码码率,从而使该编码码率在需求码率列表中的码率适配范围最广,保证不同视频通话模式下编码码率的适配范围,无需根据下行探测带宽确定多种编码码率而进行多码率编码,降低了上行视频流的编码压力。

实施例三

图4为本发明实施例三提供的一种视频编码的方法的流程图。本实施例是在上述实施例的基础上进行优化,本实施例主要对上行视频流在不同视频通话模式下的编码码率的具体确定过程进行详细的解释说明。

可选的,如图4所示,本实施例可以包括如下步骤:

s410,确定上行视频流在不同视频通话模式下与对应下行探测带宽匹配的需求码率列表。

s420,按照预设顺序遍历每一视频通话模式下的需求码率列表中大于需求码率中间值的需求码率,并确定该需求码率对应的码率适配范围内的第一需求码率覆盖量以及码率未适配范围内的第二需求码率覆盖量。

可选的,由于每一视频通话模式下的需求码率列表中过小的需求码率无法满足较大需求码率的编码要求,且所设定的需求码率对应的码率适配范围为小于该需求码率的范围,而不对大于该需求码率的需求码率的适配性进行分析,因此本实施例中为了减少需求码率列表的遍历数据量,可以按照预设顺序遍历每一视频通话模式下的需求码率列表中大于需求码率中间值的需求码率,该预设顺序可以是按照需求码率列表中需求码率值从大到小的顺序,从大到小遍历需求码率列表中大于需求码率中间值的需求码率,并确定该需求码率对应的码率适配范围和码率未适配范围,同时计算码率适配范围内的第一需求码率覆盖量以及码率未适配范围内的第二需求码率覆盖量,以便后续判断码率适配范围内覆盖的需求码率数量。

示例性的,若在上行终端的中流视频通话下的需求码率列表为{needbr1,needbr2,needbr3,needbr4,needbr5,needbr6,needbr7,needbr8},且该需求码率列表从小到大排列,则从needbr8开始遍历该需求码率列表:将当前需求码率设为目标码率targetbw,同时设定该目标码率对应的码率适配范围为[targetbw/2,targetbw]和码率未适配范围为[0,targetbw*0.8/2],依次计算该需求码率列表中位于码率适配范围[targetbw/2,targetbw]内的第一需求码率覆盖量以及位于码率未适配范围[0,targetbw*0.8/2]内的第二需求码率覆盖量,进而将下一需求码率设为目标码率targetbw,继续计算对应的码率适配范围[targetbw/2,targetbw]内的第一需求码率覆盖量以及码率未适配范围[0,targetbw*0.8/2]内的第二需求码率覆盖量,直至遍历到targetbw小于needbr8/2,也就是达到需求码率列表中的中间值。优选的,为了保证需求码率列表的遍历高效性,本实施例将该需求码率列表看作是一个按顺序排列的数轴,码率适配范围[targetbw/2,targetbw]作为一个滑窗,从需求码率列表中的最大值needbr8开始,之后每次滑窗往左移动的距离是让targetbw到达下一个最近的需求码率点或者targetbw/2到达下一个最近的需求码率点所需要移动的较小距离,从而减少该需求码率列表中很多没有意义的遍历,每次选取的targetbw值都是需求码率覆盖量可能会变大变小的临界点。

s430,选取第一需求码率覆盖量和第二需求码率覆盖量的差值中的最大值,并将该最大值对应的需求码率作为上行视频流在该视频通话模式下的编码码率。

可选的,在确定该需求码率列表中各个需求码率对应的码率适配范围内的第一需求码率覆盖量以及码率未适配范围内的第二需求码率覆盖量后,分别计算各个需求码率对应的第一需求码率覆盖量和第二需求码率覆盖量的差值,并选取出该差值中的最大值,使得第一需求码率覆盖量尽可能大,并将该最大值下的码率适配范围对应的需求码率作为上行视频流在该视频通话模式下的编码码率,使得该编码码率能够满足多人视频通话中选用该视频通话模式显示上行视频流的各个下行终端中绝大多数下行用户对上行视频流的编码要求;此时采用上述方式对各个视频通话模式下的遍历进行分析,得到上行视频流在不同视频通话模式下的编码码率。

本实施例提供的技术方案,首先确定上行视频流在不同视频通话模式下与该视频通话模式下的下行探测带宽匹配的需求码率列表,并遍历每一视频通话模式下的需求码率列表中大于需求码率中间值的需求码率,选取出各个需求码率对应的码率适配范围内的第一需求码率覆盖量与码率未适配范围内的第二需求码率覆盖量的差值最大的需求码率,作为上行视频流在该视频通话模式下的编码码率,从而使该编码码率在需求码率列表中的码率适配范围最广,保证不同视频通话模式下编码码率的适配范围,无需根据下行探测带宽确定多种编码码率而进行多码率编码,降低了上行视频流的编码压力。

实施例四

图5a为本发明实施例四提供的一种视频编码的方法的流程图,图5b为本发明实施例四提供的视频编码过程的原理示意图。本实施例是在上述实施例的基础上进行优化,本实施例主要对多人视频通话的具体过程进行详细的解释说明。

可选的,如图5a所示,本实施例可以包括如下步骤:

s510,接收上行视频流所在的视频通话间中各下行终端上报的视频通话模式,并确定各下行终端的下行探测带宽。

具体的,视频通话间中下行终端会主动选择对上行终端的上行视频流的视频通话模式,下行终端在更新上行视频流的视频通话模式时,会主动向服务器上报对应的订阅消息,该订阅消息指示下行终端当前选用的视频通话模式,而由于下行终端的网络状态会实时发生变化,因此服务器需要实时检测下行终端的下行探测带宽,以便后续根据当前订阅消息指示的视频通话模式和下行探测带宽维护该视频通话模式下的需求码率列表。

s520,确定上行视频流在不同视频通话模式下与对应下行探测带宽匹配的需求码率列表。

s530,在每一视频通话模式下的需求码率列表中,选取码率适配范围内覆盖的需求码率最多的目标码率,作为上行视频流在该视频通话模式下的编码码率。

s540,向上行视频流所在的上行终端实时下发不同视频通话模式下的编码码率。

可选的,在得到上行视频流在不同视频通话模式下的编码码率后,需要将不同视频通话模式下的编码码率下发给上行视频流所在的上行终端,如图5b所示,由该上行终端分别采用不同视频通话模式下的编码码率对该上行视频流进行编码,从而得到适应不同视频通话模式的编码后的上行视频流,后续将不同视频通话模式下编码后的上行视频流上传给服务器,由服务器转发给对应的下行终端,以满足各个下行终端对上行视频流的编码要求。

s550,基于视频通话间中各下行终端的视频通话模式将上行终端按照该视频通话模式下的编码码率编码后的上行视频流对应下发给该下行终端。

可选的,在得到上行终端上传的不同视频通话模式下编码后的上行视频流后,可以根据视频通话间中各个下行终端所选用的视频通话模式,将该视频通话模式下编码后的上行视频流下发给该下行终端,也就是将按照不同视频通话模式下的编码码率进行编码后的上行视频流分别下发给选用该视频通话模式的下行终端。

本实施例提供的技术方案,根据视频通话间中各下行终端的视频通话模式和下行探测带宽,为不同视频通话模式选择码率适配范围最广的编码码率,由上行终端采用不同视频通话模式下的编码码率分别对上行视频流进行编码,并由服务器将对应视频通话模式下编码后的上行视频流转发给对应的下行终端,使得该编码码率在需求码率列表中的码率适配范围最广,保证不同视频通话模式下编码码率的适配范围,无需根据下行探测带宽确定多种编码码率而进行多码率编码,降低了上行视频流的编码压力。

实施例五

图6为本发明实施例五提供的一种视频编码的装置的结构示意图,具体的,如图6所示,该装置可以包括:

需求码率确定模块610,用于确定上行视频流在不同视频通话模式下与对应下行探测带宽匹配的需求码率列表;

编码码率选取模块620,用于在每一视频通话模式下的需求码率列表中,选取码率适配范围内覆盖的需求码率最多的目标码率,作为上行视频流在该视频通话模式下的编码码率。

本实施例提供的技术方案,首先确定上行视频流在不同视频通话模式下与该视频通话模式下的下行探测带宽匹配的需求码率列表,并在每一视频通话模式下的需求码率列表中,选取出码率适配范围内覆盖的需求码率最多的目标码率,作为上行视频流在该视频通话模式下的编码码率,从而使该编码码率在需求码率列表中的码率适配范围最广,保证不同视频通话模式下编码码率的适配范围,无需根据下行探测带宽确定多种编码码率而进行多码率编码,降低了上行视频流的编码压力。

进一步的,上述编码码率选取模块620,可以具体用于:

按照预设顺序遍历每一视频通话模式下的需求码率列表,并确定该需求码率列表中各个需求码率对应的码率适配范围内的需求码率覆盖量;

选取需求码率覆盖量中的最大值,并将该最大值对应的需求码率作为上行视频流在该视频通话模式下的编码码率。

进一步的,上述编码码率选取模块620,可以具体用于:

按照预设顺序遍历每一视频通话模式下的需求码率列表中大于需求码率中间值的需求码率,并确定该需求码率对应的码率适配范围内的第一需求码率覆盖量以及码率未适配范围内的第二需求码率覆盖量;

选取第一需求码率覆盖量和第二需求码率覆盖量的差值中的最大值,并将该最大值对应的需求码率作为上行视频流在该视频通话模式下的编码码率。

进一步的,上述编码码率选取模块620,还可以具体用于:

如果最大值对应两个或两个以上的需求码率,则选取最小需求码率作为上行视频流在该视频通话模式下的编码码率。

进一步的,上述需求码率确定模块610,可以具体用于:

针对每一视频通话模式,确定上行视频流所在的视频通话间中通过该视频通话模式播放上行视频流的下行终端;

根据该视频通话模式和下行终端的下行探测带宽,计算下行终端为上行视频流分配的需求码率,得到上行视频流在该视频通话模式下的需求码率列表。

进一步的,上述视频编码的装置,还可以包括:

下行参数确定模块,用于接收上行视频流所在的视频通话间中各下行终端上报的视频通话模式,并确定各下行终端的下行探测带宽。

进一步的,上述视频编码的装置,还可以包括:

编码码率下发模块,用于向上行视频流所在的上行终端实时下发不同视频通话模式下的编码码率;

视频流转发模块,用于基于视频通话间中各下行终端的视频通话模式将上行终端按照该视频通话模式下的编码码率编码后的上行视频流对应下发给该下行终端。

本实施例提供的视频编码的装置可适用于上述任意实施例提供的视频编码的方法,具备相应的功能和有益效果。

实施例六

图7为本发明实施例六提供的一种服务器的结构示意图,如图7所示,该服务器包括处理器70、存储装置71和通信装置72;服务器中处理器70的数量可以是一个或多个,图7中以一个处理器70为例;服务器中的处理器70、存储装置71和通信装置72可以通过总线或其他方式连接,图7中以通过总线连接为例。

存储装置71作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中提供的视频编码的方法对应的程序指令/模块。处理器70通过运行存储在存储装置71中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述视频编码的方法。

存储装置71可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置71可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置71可进一步包括相对于处理器70远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

通信装置72可用于实现设备间的网络连接或者移动数据连接。

本实施例提供的一种服务器可用于执行上述任意实施例提供的视频编码的方法,具备相应的功能和有益效果。

实施例七

本发明实施例七还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述任意实施例中的视频编码的方法。该方法具体可以包括:

确定上行视频流在不同视频通话模式下与对应下行探测带宽匹配的需求码率列表;

在每一视频通话模式下的需求码率列表中,选取码率适配范围内覆盖的需求码率最多的目标码率,作为上行视频流在该视频通话模式下的编码码率。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的视频编码的方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

值得注意的是,上述视频编码的装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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