一种提供直播服务的方法和系统与流程

文档序号:15359249发布日期:2018-09-05 00:26阅读:293来源:国知局

本发明涉及视频处理技术领域,特别涉及一种提供直播服务的方法和系统。



背景技术:

目前直播服务后台多采用主备服务器的部署方式,一般情况下由主服务器提供直播服务,如果主服务器出现故障,则由备服务器继续提供直播服务,以保证直播视频的播放稳定性。

具体来说,直播服务后台的管理服务器从直播源获取到直播数据后,可以将直播数据同时提供给主服务器和备服务器,主服务器和备服务器可以按照指定的转码规则(即指定的分辨率和码率)对获取到的直播数据进行转码处理,并实时对已转码完的部分直播数据进行封装。这样,管理服务器在接收到外界对于直播数据的获取请求后,可以向外界反馈封装后的直播数据。

在实现本发明的过程中,发明人发现现有技术至少存在以下问题:

受播放终端多样、用户需求不同的影响,直播服务后台需要对同一直播数据,通过多个转码服务器分别按照不同的转码规则进行多种转码处理。而由于直播源的数量较多、转码服务器的硬件成本较高、转码服务器的并行转码能力有限等,直播服务后台往往需要设置大量的转码服务器,故而提供直播服务的成本较高。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种提供直播服务的方法和系统。所述技术方案如下:

第一方面,提供了一种提供直播服务的方法,所述方法包括:

管理服务器在获取到目标直播数据的转码请求后,根据所述转码请求中携带的n种转码规则对应生成对于所述目标直播数据的n个转码任务;

所述管理服务器向目标转码服务器发送所述n个转码任务,并向目标备服务器发送所述目标直播数据的封装任务;

所述目标转码服务器获取所述目标直播数据,按照所述至少一种转码规则对所述目标直播数据进行转码,并对转码后的目标直播数据进行封装;

所述目标备服务器获取所述目标直播数据,并对所述目标直播数据进行封装;

所述目标转码服务器和/或所述目标备服务器基于封装后的目标直播数据,通过预设的目标vip提供直播服务。

可选的,所述管理服务器向目标备服务器发送所述目标直播数据的封装任务,包括:

如果在本次接收所述目标直播数据的转码请求之前,未接收到所述目标直播数据的转码请求,所述管理服务器则向目标备服务器发送所述目标直播数据的封装任务。

可选的,所述管理服务器向目标转码服务器发送所述n个转码任务,包括:

所述管理服务器确定未对所述目标直播数据进行转码处理的m个转码服务器;

如果m大于或等于n,所述管理服务器则在m个转码服务器中确定负载最低的n个目标转码服务器,并将所述n个转码任务分别发送至所述n个目标转码服务器;

如果m小于n,所述管理服务器则在将所述n个转码任务中的m个转码任务分别发送至所述m个转码服务器之后,在所有转码服务器中确定负载最低的n-m个目标转码服务器,并将所述n个转码任务中剩余的n-m个转码任务分别发送至所述n-m个目标转码服务器。

可选的,所述方法还包括:

所述管理服务器根据预先存储的转码任务权值表,确定每个转码服务器当前执行的所有转码任务的权值;

所述管理服务器将每个转码服务器当前执行的所有转码任务的权值之和,确定为每个转码服务器的权值;

所述管理服务器按照每个转码服务器的权值的大小判断每个转码服务器的负载的高低。

可选的,所述目标转码服务器和/或所述目标备服务器基于封装后的目标直播数据,通过预设的目标vip提供直播服务,包括:

当所述目标转码服务器正常工作时,所述目标转码服务器基于封装后的目标直播数据,通过创建的目标vip提供直播服务;

当所述目标转码服务器出现故障时,所述目标备服务器基于封装后的目标直播数据,通过创建的目标vip提供直播服务。

第二方面,提供了一种提供直播服务的系统,所述系统包括管理服务器、目标转码服务器和目标备服务器,其中:

所述管理服务器,用于在获取到目标直播数据的转码请求后,根据所述转码请求中携带的n种转码规则对应生成对于所述目标直播数据的n个转码任务,向所述目标转码服务器发送所述n个转码任务,并向所述目标备服务器发送所述目标直播数据的封装任务;

所述目标转码服务器,用于获取所述目标直播数据,按照所述至少一种转码规则对所述目标直播数据进行转码,并对转码后的目标直播数据进行封装,基于封装后的目标直播数据,通过预设的目标vip提供直播服务;

所述目标备服务器,用于获取所述目标直播数据,并对所述目标直播数据进行封装,基于封装后的目标直播数据,通过预设的目标vip提供直播服务。

可选的,所述管理服务器,具体用于:

如果在本次接收所述目标直播数据的转码请求之前,未接收到所述目标直播数据的转码请求,则向目标备服务器发送所述目标直播数据的封装任务。

可选的,所述管理服务器,具体用于:

确定未对所述目标直播数据进行转码处理的m个转码服务器;

如果m大于或等于n,则在m个转码服务器中确定负载最低的n个目标转码服务器,并将所述n个转码任务分别发送至所述n个目标转码服务器;

如果m小于n,则在将所述n个转码任务中的m个转码任务分别发送至所述m个转码服务器之后,在所有转码服务器中确定负载最低的n-m个目标转码服务器,并将所述n个转码任务中剩余的n-m个转码任务分别发送至所述n-m个目标转码服务器。

可选的,所述管理服务器,还用于:

根据预先存储的转码任务权值表,确定每个转码服务器当前执行的所有转码任务的权值;

将每个转码服务器当前执行的所有转码任务的权值之和,确定为每个转码服务器的权值;

按照每个转码服务器的权值的大小判断每个转码服务器的负载的高低。

可选的,所述目标转码服务器,具体用于当所述目标转码服务器正常工作时,基于封装后的目标直播数据,通过预设的目标vip提供直播服务;

所述目标备服务器,具体用于当所述目标转码服务器出现故障时,基于封装后的目标直播数据,通过预设的目标vip提供直播服务。

本发明实施例提供的技术方案带来的有益效果是:

本发明实施例中,管理服务器在获取到目标直播数据的转码请求后,根据转码请求中携带的n种转码规则对应生成对于目标直播数据的n个转码任务,管理服务器向目标转码服务器发送n个转码任务,并向目标备服务器发送目标直播数据的封装任务,目标转码服务器获取目标直播数据,按照至少一种转码规则对目标直播数据进行转码,并对转码后的目标直播数据进行封装,目标备服务器获取目标直播数据,并对目标直播数据进行封装,目标转码服务器和/或目标备服务器基于封装后的目标直播数据,通过预设的目标vip提供直播服务。这样,可以采用硬件成本较低的普通服务器作为备服务器,同时对相同直播数据进行转码的多个转码服务器,可以采用同一服务器作为备服务器,减少了直播服务后台所需的转码服务器的数量,从而可以降低提供直播服务的成本。

附图说明

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

图1是本发明实施例提供的一种提供直播服务的系统框架示意图;

图2是本发明实施例提供的一种提供直播服务的方法流程图;

图3是本发明实施例提供的一种转码服务器和备服务器的vip示意图;

图4是本发明实施例提供的一种提供直播服务的系统框架示意图;

图5是本发明实施例提供的一种提供直播服务的系统框架示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

本发明实施例提供了一种提供直播服务的方法,该方法可以由直播数据处理系统中的管理服务器、转码服务器和备服务器共同实现。其中,管理服务器可以用于接收对于直播数据的转码请求,生成相应的转码任务,并对转码任务进行分配;转码服务器可以是直播数据处理系统中转码服务器组的服务器,可以用于对直播数据进行转码、封装等处理,转码服务器组中可以包含有多个转码服务器;备服务器可以属于直播数据处理系统中的备服务器组,可以用于对直播数据进行封装处理,备服务器组中可以包含有多个备服务器,具体的系统框架可以参照图1所示。上述服务器中均可以包括处理器、存储器、收发器,处理器可以用于进行下述流程中的提供直播服务的处理,存储器可以用于存储下述处理过程中需要的数据以及产生的数据,收发器可以用于接收和发送下述处理过程中的相关数据。

下面将结合具体实施方式,对图2所示的处理流程进行详细的说明,内容可以如下:

步骤201,管理服务器在接收到目标直播数据的转码请求后,根据转码请求中携带的n种转码规则对应生成对于目标直播数据的n个转码任务。

在实施中,当需要对某直播频道的直播数据(如目标直播数据)进行转码处理时,管理服务器可以获取到目标直播数据的转码请求。在一种情况下,如果直播数据处理系统为直播服务后台的内置系统,则上述转码请求可以是直播服务后台的技术人员在管理服务器上手动设置的,或者是由直播服务后台的其他服务器发送给管理服务器的;在另一种情况下,如果直播数据处理系统为独立于直播服务后台之外的系统,则上述转码请求可以是直播服务后台系统发送至管理服务器的。

上述转码请求中可以携带有n(n为正整数)种转码规则,每种转码规则都记录有指定的目标分辨率和目标码率。之后,管理服务器可以提取该转码请求中的n种转码规则,并可以基于每一种转码规则,对应生成一个目标直播数据的转码任务,进而总共可以生成n个转码任务,其中,每个转码任务可以包含目标直播数据的url(uniformresourcelocator,统一资源定位符)、目标分辨率和目标码率。值得一提的是,可以通过标识信息来标识每个转码任务所对应的直播数据,不同直播数据的转码任务可以有不同的标识信息,同一直播数据的转码任务的标识信息相同,该标识信息可以由管理服务器设定,或者可以由第三方系统设定。

步骤202,管理服务器向目标转码服务器发送n个转码任务,并向目标备服务器发送目标直播数据的封装任务。

在实施中,管理服务器在基于转码请求生成了n个转码任务后,可以在转码服务器组中选择至少一个目标转码服务器,然后向至少一个目标转码服务器发送上述n个转码任务。同时,管理服务器可以在备服务器组中选择至少一个目标备服务器,然后向至少一个目标备服务器发送目标直播数据的封装任务。

值得一提的是,转码任务包含对于直播数据的转码和封装处理,封装任务仅包含对于直播数据的封装处理,故而目标备服务器无需对直播数据进行转码处理,则可以选用性能远低于目标转码服务器的服务器设备,如此一来,可降低设备投入成本。

步骤203,目标转码服务器获取目标直播数据,按照至少一种转码规则对目标直播数据进行转码,并对转码后的目标直播数据进行封装。

在实施中,目标转码服务器可以接收到管理服务器发送的转码任务,然后可以基于转码任务中包含的目标直播数据的url,从直播源处获取目标直播数据。之后,目标转码服务器可以按照接收到的转码任务中包含的转码规则,将目标直播数据的分辨率和码率转码为转码规则中指定的目标分辨率和目标码率。进而,目标转码服务器可以对转码后的目标直播数据进行封装。需要说明的是,本步骤中的目标转码服务器可以为多个,每个目标转码服务器可以按照本步骤进行n个转码任务中的一个或多个转码任务的处理,每个转码任务仅由一个目标转码服务器负责。

步骤204,目标备服务器获取目标直播数据,并对目标直播数据进行封装。

在实施中,目标备服务器可以接收到管理服务器发送的封装任务,然后可以基于封装任务中包含的目标直播数据的url,从直播源处获取目标直播数据。之后,目标备服务器可以对获取到的目标直播数据进行封装,从而获得原始码率、原始分辨率的封装直播数据。需要说明的是,本步骤中的目标备服务器可以为包含多个备服务器的小组,其中小组中的每个备服务器可以对目标直播数据进行同样的封装处理。

进一步的,备服务器组中包含有多个小组,不同小组处理不同直播数据的封装任务,而同一小组内部的多个备服务器处理相同的封装任务,因此,当备服务器组的处理能力达到上限时,可通过增加小组的方式来进行扩容,相应的,当小组处于空闲状态时,可将该小组进行删除,从而节省设备。

步骤205,目标转码服务器和/或目标备服务器基于封装后的目标直播数据,通过预设的目标vip(virtualipaddress,虚拟ip地址)提供直播服务。

具体的,在部署每一个转码服务器时,都会分别对应创建该转码服务器与每个备服务器之间共用的vip(virtualipaddress,虚拟ip地址),同样的,在新增一个备服务器时,也会分别创建该备服务器与现存的每个转码服务器之间共用的vip,从而使得当前部署的每一个目标转码服务器与每一个目标备服务器之间都会有一个预设的目标vip。这样,目标转码服务器和目标备服务器可以基于封装后的目标直播数据,通过对应的预设目标vip提供直播服务,如此两者之间可进行随意切换。

考虑上述多个目标转码服务器和多个目标备服务器的情况,多个目标备服务器可以构成一个小组,每个目标转码服务器均与该小组创建有各自不同的目标vip,具体可以参考图3所示。

可选的,如果当前目标直播数据的封装任务已存在,管理服务器则在接收到该目标直播数据的转码请求后无需再次向备服务器发送封装任务,而直接确定处理该封装任务的备服务器为目标备服务器,相应的,步骤202的部分处理可以如下:如果在本次接收目标直播数据的转码请求之前,未接收到该目标直播数据的转码请求,管理服务器则向目标备服务器发送目标直播数据的封装任务。

在实施中,管理服务器在接收到目标直播数据的转码请求后,可以检测在本次接收目标直播数据的转码请求之前,管理服务器是否已接收过同一目标直播数据的转码请求。如果未接收过相应的转码请求,管理服务器则可以向目标备服务器发送目标直播数据的封装任务;如果已接收过相应的转码请求,则表示管理服务器已向备服务器组发送过目标直播数据的封装任务,进而,管理服务器只需确定对目标直播数据进行封装处理的备服务器为目标备用服务器,以便确定各目标转码服务器与目标备服务器之间共用的vip,从而通过这些vip提供直播服务。

可选的,管理服务器可以将同一直播数据的不同转码任务均分到所有转码服务器中,相应的,步骤202的部分处理可以如下:管理服务器确定未对目标直播数据进行转码处理的m个转码服务器;如果m大于或等于n,管理服务器则在m个转码服务器中确定负载最低的n个目标转码服务器,并将n个转码任务分别发送至n个目标转码服务器;如果m小于n,管理服务器则在将n个转码任务中的m个转码任务分别发送至m个转码服务器之后,在所有转码服务器中确定负载最低的n-m个目标转码服务器,并将剩余的n-m个转码任务分别发送至这些目标转码服务器。如此一来,可以在一定程度上均衡各转码服务器的负载。

在实施中,管理服务器在多个转码服务器中选择目标转码服务器的过程中,可以先确定多个转码服务器中当前未对目标直播数据进行转码处理的m(m为自然数)个转码服务器(即所有未被分配目标直播数据的转码任务的转码服务器)。如果m大于或等于n,管理服务器则可以在m个转码服务器中确定负载最低的n个目标转码服务器,然后将n个转码任务分别发送至n个目标转码服务器,即一个目标转码服务器分配一个转码任务。如果m小于n,管理服务器则可以先将n个转码任务中的任意m个转码任务分别发送至m个转码服务器,再在所有转码服务器中确定出负载最低的n-m个目标转码服务器,然后将剩余的n-m个转码任务分别发送至上述n-m个目标转码服务器。同理,管理服务器在选择目标备服务器时,也可以选取负载较低的多个备服务器。

可选的,可以根据当前执行的转码任务来判断每个转码服务器的负载的高低,相应的处理可以如下:管理服务器根据预先存储的转码任务权值表,确定每个转码服务器当前执行的所有转码任务的权值;管理服务器将每个转码服务器当前执行的所有转码任务的权值之和,确定为每个转码服务器的权值;管理服务器按照每个转码服务器的权值的大小判断每个转码服务器的负载的高低。

在实施中,直播数据处理系统的技术人员可以根据转码任务对应的原分辨率、原码率、目标分辨率和目标码率,确定不同转码任务占用的转码服务器的负载大小,并以权值的形式来体现该负载大小,从而可以创建转码任务权值表(可参考表1),然后将转码任务权值表存储在管理服务器中。

表1

这样,在判断各转码服务器的负载的高低时,管理服务器先可以根据上述转码任务权值表,确定每个转码服务器当前执行的所有转码任务的权值,再将每个转码服务器当前执行的所有转码任务的权值之和,确定为每个转码服务器的权值。进而,管理服务器可以按照每个转码服务器的权值的大小判断每个转码服务器的负载的高低,其中,权值越小则转码服务器的负载越低。

可选的,目标备服务器可以在目标转码服务器发生故障时,代替目标转码服务器继续提供直播服务,相应的,步骤205的处理可以如下:当目标转码服务器正常工作时,目标转码服务器基于封装后的目标直播数据,通过预设的目标vip提供直播服务;当目标转码服务器出现故障时,目标备服务器基于封装后的目标直播数据,通过预设的目标vip提供直播服务。

在实施中,当用户想要通过终端获取目标直播数据时,终端可以向目标vip发送目标直播数据的获取请求。如果目标转码服务器处于正常工作状态,目标vip指向目标转码服务器,目标转码服务器则可以接收到上述获取请求,进而可以将封装后的目标直播数据反馈给终端。而如果目标转码服务器处于故障状态,目标vip指向目标备服务器,目标备服务器则可以接收到上述获取请求,进而可以将封装后的目标直播数据反馈给终端。此处,目标转码服务器和目标备服务器上均可以安装有主备服务软件,该主备服务软件可以用于调整服务器对外展示的ip。具体的,当目标转码服务器正常工作时,目标转码服务器上的主备服务软件将对外展示的ip修改为预设的目标vip,目标备服务器上的主备服务软件将对外展示的ip设置为本机ip;当目标转码服务器出现故障时,目标转码服务器上的主备服务软件将对外展示的ip设置为本机ip,目标备服务器上的主备服务软件将对外展示的ip修改为预设的目标vip。

通过上述方法,可实现目标转码服务器在发生故障时的备份切换,以保证用户可以顺利获取直播数据,从而尽可能的降低故障带来的不良用户体验,并且当目标转码服务器恢复正常时,可及时从目标备服务器切换回目标转码服务器,以尽快恢复正常的码率、分辨率显示,从而保证了用户体验。

值得注意的是,本发明实施例中,管理服务器接收到的目标直播数据的转码请求,根据指定的不同的目标分辨率和目标码率,转化成不同的转码任务,并分配到至少一个目标转码服务器上,并针对该目标直播数据对应的各转码任务设置一个目标备服务器来为任一目标转码服务器出现故障时提供备份服务,也就是说同一直播数据对应的各转码任务都对应到同一目标备份服务器上,而无需为每个转码任务都分配一台备服务器来处理备份任务,从而节省了备服务器资源,并可以通过调度策略的设置以及备服务器组的管理来保证备服务器的利用率。

本发明实施例中,管理服务器在获取到目标直播数据的转码请求后,根据转码请求中携带的n种转码规则对应生成对于目标直播数据的n个转码任务,管理服务器向目标转码服务器发送n个转码任务,并向目标备服务器发送目标直播数据的封装任务,目标转码服务器获取目标直播数据,按照至少一种转码规则对目标直播数据进行转码,并对转码后的目标直播数据进行封装,目标备服务器获取目标直播数据,并对目标直播数据进行封装,目标转码服务器和/或目标备服务器基于封装后的目标直播数据,通过预设的目标vip提供直播服务。这样,可以采用硬件成本较低的普通服务器作为备服务器,同时对相同直播数据进行转码的多个转码服务器,可以采用同一服务器作为备服务器,减少了直播服务后台所需的转码服务器的数量,从而可以降低提供直播服务的成本。

基于相同的技术构思,本发明实施例还提供了一种提供直播服务的系统,所述系统包括管理服务器、目标转码服务器和目标备服务器,其中:

所述管理服务器,用于在获取到目标直播数据的转码请求后,根据所述转码请求中携带的n种转码规则对应生成对于所述目标直播数据的n个转码任务,向所述目标转码服务器发送所述n个转码任务,并向所述目标备服务器发送所述目标直播数据的封装任务;

所述目标转码服务器,用于获取所述目标直播数据,按照所述至少一种转码规则对所述目标直播数据进行转码,并对转码后的目标直播数据进行封装,基于封装后的目标直播数据,通过预设的目标vip提供直播服务;

所述目标备服务器,用于获取所述目标直播数据,并对所述目标直播数据进行封装,基于封装后的目标直播数据,通过预设的目标vip提供直播服务。

可选的,所述管理服务器,具体用于:

如果在本次接收所述目标直播数据的转码请求之前,未接收到所述目标直播数据的转码请求,则向目标备服务器发送所述目标直播数据的封装任务。

可选的,所述管理服务器,具体用于:

确定未对所述目标直播数据进行转码处理的m个转码服务器;

如果m大于或等于n,则在m个转码服务器中确定负载最低的n个目标转码服务器,并将所述n个转码任务分别发送至所述n个目标转码服务器;

如果m小于n,则在将所述n个转码任务中的m个转码任务分别发送至所述m个转码服务器之后,在所有转码服务器中确定负载最低的n-m个目标转码服务器,并将所述n个转码任务中剩余的n-m个转码任务分别发送至所述n-m个目标转码服务器。

可选的,所述管理服务器,还用于:

根据预先存储的转码任务权值表,确定每个转码服务器当前执行的所有转码任务的权值;

将每个转码服务器当前执行的所有转码任务的权值之和,确定为每个转码服务器的权值;

按照每个转码服务器的权值的大小判断每个转码服务器的负载的高低。

可选的,所述目标转码服务器,具体用于当所述目标转码服务器正常工作时,基于封装后的目标直播数据,通过预设的目标vip提供直播服务;

所述目标备服务器,具体用于当所述目标转码服务器出现故障时,基于封装后的目标直播数据,通过预设的目标vip提供直播服务。

如图4所示,上述系统可以是直播数据处理系统,该系统可以包含一台管理服务器、转码服务器组和备服务器组,转码服务器组可以包括多台转码服务器,每台转码服务器可以执行多个直播数据的转码及封装任务,备服务器组可以包括多台备服务器,每台备服务器可以执行多个直播数据的封装任务。在一种情况下,如图5所示,上述每台转码服务器的功能可以由多台转码服务器构成的转码服务器小组来实现,同样,每台备服务器的功能也可以由多台备服务器构成的备服务器小组来实现,当转码服务器组/备服务器组的处理能力达到上限时,可通过增加转码服务器小组/备服务器小组的方式来进行扩容,相应的,当转码服务器组/备服务器组的处理能力过剩时,可删除处于空闲状态的部分小组,从而达到节省设备的目的。系统的具体功能实现,可以参考上述方法实施例。

本发明实施例中,管理服务器在获取到目标直播数据的转码请求后,根据转码请求中携带的n种转码规则对应生成对于目标直播数据的n个转码任务,管理服务器向目标转码服务器发送n个转码任务,并向目标备服务器发送目标直播数据的封装任务,目标转码服务器获取目标直播数据,按照至少一种转码规则对目标直播数据进行转码,并对转码后的目标直播数据进行封装,目标备服务器获取目标直播数据,并对目标直播数据进行封装,目标转码服务器和/或目标备服务器基于封装后的目标直播数据,通过预设的目标vip提供直播服务。这样,可以采用硬件成本较低的普通服务器作为备服务器,同时对相同直播数据进行转码的多个转码服务器,可以采用同一服务器作为备服务器,减少了直播服务后台所需的转码服务器的数量,从而可以降低提供直播服务的成本。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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