本公开涉及通信领域,尤其涉及推送直播流媒体数据的方法及装置。
背景技术:
:相关技术中,预设服务器在接收到主播客户端上传的直播源数据之后,对所述直播源数据进行转码处理,获得相应的直播流媒体数据。进一步地,所述预设服务器将所述直播流媒体数据推送到观众客户端。但是,在实际应用中,如果海量观众客户端同步发起获取直播流媒体数据的数据获取请求时,会造成所述预设服务器资源压力较大,无法保证直播质量,也会使得观众客户端出现卡顿等情况,用户体验差。技术实现要素:有鉴于此,本公开提供了推送直播流媒体数据的方法及装置,以解决相关技术中的不足。根据本公开实施例的第一方面,提供一种推送直播流媒体数据的方法,所述方法包括:在作为直播中继节点的服务器集群中确定目标服务器;通过所述目标服务器从预设服务器获取直播源数据;通过所述目标服务器将直播流媒体数据推送给观众客户端,所述直播流媒体数据是所述直播源数据进行转码处理后得到的流媒体数据;其中,所述直播源数据是主播客户端在直播过程中采集并上传到所述预设服务器的多媒体数据。可选地,所述在作为直播中继节点的服务器集群中确定目标服务器,包括:获取作为直播中继节点的服务器集群中每个服务器上报的自身的负载信息;根据所述负载信息,确定所述每个服务器各自的权重值;将所述服务器集群中所述权重值最大的服务器作为所述目标服务器。可选地,所述负载信息包括负载值和资源利用率中的至少一项;所述根据所述负载信息,确定所述每个服务器各自的权重值,包括:根据负载信息和权重值之间的预设对应关系,确定所述每个服务器各自的权重值;所述预设对应关系包括:负载值与权重值成反比,以及资源利益率与权重值成反比。可选地,所述方法还包括:确定作为直播中继节点的所述服务器集群的总负载值;当所述总负载值超过预设值时,在所述服务器集群中添加预先指定的备选服务器。可选地,所述方法还包括:接收观众客户端发送的请求获取所述直播流媒体数据的数据获取请求;在确定接收到所述数据获取请求之后,执行所述通过所述目标服务器从预设服务器获取直播源数据的步骤。可选地,所述通过所述目标服务器将直播流媒体数据推送给观众客户端之后,所述方法还包括:对所述直播流媒体数据进行缓存。根据本公开实施例的第二方面,提供一种推送直播流媒体数据的装置,所述装置包括:第一确定模块,被配置为在作为直播中继节点的服务器集群中确定目标服务器;第一获取模块,被配置为通过所述目标服务器从预设服务器获取直播源数据;推送模块,被配置为通过所述目标服务器将直播流媒体数据推送给观众客户端,所述直播流媒体数据是所述直播源数据进行转码处理后得到的流媒体数据;其中,所述直播源数据是主播客户端在直播过程中采集并上传到所述预设服务器的多媒体数据。可选地,所述第一确定模块包括:获取子模块,被配置为获取作为直播中继节点的服务器集群中每个服务器上报的自身的负载信息;第一确定子模块,被配置为根据所述负载信息,确定所述每个服务器各自的权重值;第二确定子模块,被配置为将所述服务器集群中所述权重值最大的服务器作为所述目标服务器。可选地,所述负载信息包括负载值和资源利用率中的至少一项;所述第一确定子模块包括:确定单元,被配置为根据负载信息和权重值之间的预设对应关系,确定所述每个服务器各自的权重值;所述预设对应关系包括:负载值与权重值成反比,以及资源利益率与权重值成反比。可选地,所述装置还包括:第二确定模块,被配置为确定作为直播中继节点的所述服务器集群的总负载值;添加模块,被配置为当所述总负载值超过预设值时,在所述服务器集群中添加预先指定的备选服务器。可选地,所述装置还包括:第二获取模块,被配置为接收观众客户端发送的请求获取所述直播流媒体数据的数据获取请求;控制模块,被配置为在确定接收到所述数据获取请求之后,控制所述第一获取模块通过所述目标服务器从预设服务器获取直播源数据。可选地,所述装置还包括:缓存模块,被配置为对所述直播流媒体数据进行缓存。根据本公开实施例的第三方面,提供一种推送直播流媒体数据的装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:在作为直播中继节点的服务器集群中确定目标服务器;通过所述目标服务器从预设服务器获取直播源数据;通过所述目标服务器将直播流媒体数据推送给观众客户端,所述直播流媒体数据是所述直播源数据进行转码处理后得到的流媒体数据;其中,所述直播源数据是主播客户端在直播过程中采集并上传到所述预设服务器的多媒体数据。本公开的实施例提供的技术方案可以包括以下有益效果:本公开实施例中,可以在作为直播中继节点的服务器集群中确定目标服务器,从而通过所述目标服务器从预设服务器获取直播源数据。其中,所述直播源数据是主播客户端在直播过程中采集并上传到所述预设服务器的多媒体数据。进一步地,再通过所述目标服务器将直播流媒体数据推送给观众客户端,所述直播流媒体数据是所述直播源数据进行转码处理后得到的流媒体数据。上述过程中,由于直播源数据被分发到不同的目标服务器,即利用作为直播中继节点的服务器集群分担了预设服务器的业务压力,从而有效减轻观众客户端的卡顿情况,提升直播质量,可用性高,且提升了用户体验。本公开实施例中,可选地,可以让作为直播中继节点的服务器集群中的每个服务器均上报自身的负载信息。从而根据所述负载信息,来确定所述每个服务器各自的权重值。将所述服务器集群中所述权重值最大的服务器作为目标服务器。通过上述过程,使得根据负载信息确定的目标服务器可以分担预设服务器的业务压力,提升直播质量。本公开实施例中,作为直播中继节点的服务器集群中的每个服务器上报的负载信息可以包括负载值和资源利用率中的至少一项。在确定每个服务器的权重值时,负载值越小权重值越高,同样资源利用率越小权重值也越高。这样,可以让负载值和/或资源利用率小的服务器作为目标服务器,来分担预设服务器的业务压力,同样提升了直播质量。本公开实施例中,对所述直播源数据进行转码处理,得到与所述观众客户端匹配的直播流媒体数据,从而通过所述目标服务器将所述直播流媒体数据推送给观众客户端。通过上述过程,将原来由所述预设服务器执行的转码处理过程,转换为由所述目标服务器执行。即使有海量观众客户端同步发起获取直播流媒体数据的数据获取请求,也可以由不同的目标服务器来对应执行转码处理,从而获得相应的直播流媒体数据,有效减轻观众客户端的卡顿情况,提升了用户体验。本公开实施例中,当作为直播中继节点的所述服务器集群的总负载值超过预设值时,可以将预设的备选服务器加入所述服务器集群中。从而实现作为直播中继节点的所述服务器集群的动态扩容,减轻原服务器集群的业务压力,确保服务器集群的性能。本公开实施例中,可选地,可以在服务器集群接收到观众客户端发送的请求获取直播流媒体数据的数据获取请求之后,才通过确定的目标服务器从预设服务器获取直播源数据。从而避免在观众客户端不需要获取直播流媒体数据时,仍从预设服务器获取所述直播源数据的问题,避免给预设服务器造成业务压力和资源浪费。本公开实施例中,可以对所述直播流媒体数据进行缓存,从而快速响应后续观众客户端发起的数据获取请求,降低观众客户端直播延迟情况。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。图1A至图1B是本公开根据一示例性实施例示出的推送直播流媒体数据的场景示意图;图2是本公开根据一示例性实施例示出的一种推送直播流媒体数据的方法流程图;图3是本公开根据一示例性实施例示出的另一种推送直播流媒体数据的方法流程图;图4是本公开根据一示例性实施例示出的另一种推送直播流媒体数据的场景示意图;图5是本公开根据一示例性实施例示出的另一种推送直播流媒体数据的方法流程图;图6是本公开根据一示例性实施例示出的另一种推送直播流媒体数据的方法流程图;图7是本公开根据一示例性实施例示出的一种推送直播流媒体数据的装置框图;图8是本公开根据一示例性实施例示出的另一种推送直播流媒体数据的装置框图;图9是本公开根据一示例性实施例示出的另一种推送直播流媒体数据的装置框图;图10是本公开根据一示例性实施例示出的另一种推送直播流媒体数据的装置框图;图11是本公开根据一示例性实施例示出的另一种推送直播流媒体数据的装置框图;图12是本公开根据一示例性实施例示出的另一种推送直播流媒体数据的装置框图;图13是本公开根据一示例性实施例示出的另一种推送直播流媒体数据的装置框图;图14是本公开根据一示例性实施例示出的一种用于推送直播流媒体数据的装置的一结构示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。在本公开运行的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所运行的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中运行的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所运行的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。下面结合图1A根据一示例性实施例示出的一种推送直播流媒体数据的场景示意图,图1B根据一示例性实施例示出的另一种推送直播流媒体数据的场景示意图,对本公开的应用场景进行说明。在图1A所示应用场景中,主播客户端100将采集到的直播源数据上传到预设服务器200。作为直播中继节点的服务器集群300确定了目标服务器300-1后,预设服务器200会将所述直播源数据转发给所述目标服务器300-1。由所述目标服务器300-1将所述直播源数据经过转码处理后得到的直播流媒体数据推送给观众客户端400。在图1B所示应用场景中,如果观众客户端400的数目较多时,可以由所述服务器集群300确定出不同的目标服务器300-1、目标服务器300-2和目标服务器300-3,分别将直播流媒体数据推送给相应的观众客户端400。如图2所示,图2是根据一示例性实施例示出的一种推送直播流媒体数据的方法,包括以下步骤:在步骤101中,在作为直播中继节点的服务器集群中确定目标服务器。本步骤中,可以在作为直播中继节点的服务器集群中任意选取一服务器,并将该服务器作为目标服务器。在步骤102中,通过所述目标服务器从预设服务器获取直播源数据。本公开实施例中,主播客户端会按照相关技术采集直播源数据,所述直播源数据是主播客户端在直播过程中采集并上传到所述预设服务器的多媒体数据。可选地,所述直播源数据可以包括视频数据和音频数据。本公开实施例中,可以通过摄像头采集所述视频数据,通过麦克风采集所述音频数据。所述主播客户端会将采集到的上述直播源数据上传到预先指定的服务器,即预设服务器。本步骤中,所述目标服务器可以发送直播源数据获取请求到所述预设服务器,以使所述预设服务器根据所述直播源数据获取请求,将所述直播源数据转发给所述目标服务器。在步骤103中,通过所述目标服务器将直播流媒体数据推送给观众客户端,所述直播流媒体数据是所述直播源数据进行转码处理后得到的流媒体数据。本步骤中,可以通过解码器按照相关技术,对所述直播源数据进行转码处理,所述转码处理的过程包括将所述直播源数据按照相关技术进行解码处理,得到其中的视频数据和音频数据,进一步地,按照相关技术通过编码处理,将所述视频数据和所述音频数据合成为与所述观众客户端匹配的所述直播流媒体数据。当然,所述直播流媒体数据中还可以加入指定的文本内容,例如水印,评论字幕等。本公开实施例中,为了保障直播质量,所述服务器集群中的每个服务器所支持的转码处理可以适配不同的解码器。进一步地,所述目标服务器将所述直播流媒体数据推送到相应的观众客户端即可。上述实施例中,可以在作为直播中继节点的服务器集群中确定目标服务器,从而通过所述目标服务器从预设服务器获取直播源数据。其中,所述直播源数据是主播客户端在直播过程中采集并上传到所述预设服务器的多媒体数据。进一步地,再通过所述目标服务器将直播流媒体数据推送给观众客户端,所述直播流媒体数据是所述直播源数据进行转码处理后得到的流媒体数据。上述过程中,由于直播源数据被分发到不同的目标服务器,即利用作为直播中继节点的服务器集群分担了预设服务器的业务压力,可以有效减轻观众客户端的卡顿情况,提升直播质量,可用性高,且提升了用户体验。在本公开实施例中,步骤101中确定的目标服务器可以随意选取,但是为了确保服务器集群的性能,可选地,可以根据每个服务器上报的负载信息来确定所述目标服务器。步骤101如图3所示,图3是在前述图2所示实施例的基础上示出的另一种推送直播流媒体数据的方法,包括以下步骤:在步骤101-1中,获取作为直播中继节点的服务器集群中每个服务器上报的自身的负载信息。本步骤中,所述服务器集群中的每个服务器可以按照相关技术上报自身的负载信息。可选地,所述负载信息包括负载值和资源利用率中的至少一项。其中,所述负载值是当前接入服务器的终端的数目,所述资源利用率是服务器当前被占用的资源占该服务器整体可利用资源的百分比。在步骤101-2中,根据所述负载信息,确定所述每个服务器各自的权重值。本步骤中,可以根据负载信息和权重值之间的预设对应关系,确定所述每个服务器各自的权重值。其中,所述预设对应关系包括:负载值与权重值成反比,以及资源利益率与权重值成反比。例如,服务器集群包括服务器a、服务器b和服务器c,上述服务器各自上报自身的负载信息,如表1所示。表1服务器名称负载值资源利用率服务器a50080%服务器b36030%服务器c40050%由于负载值与权重值成反比,以及资源利益率与权重值成反比,则可以相应确定每个服务器的权重值如表2所示。表2服务器名称负载值资源利用率权重值服务器a50080%50服务器b36030%80服务器c40050%70在步骤101-3中,将所述服务器集群中所述权重值最大的服务器作为所述目标服务器。本步骤中,将所述服务器集群中所述权重值最大的服务器作为所述目标服务器。例如,将表2中权重值最大的服务器b作为目标服务器。上述实施例中,作为直播中继节点的服务器集群中的每个服务器上报的负载信息可以包括当前负载值和资源利用率中的至少一项。在确定每个服务器的权重值时,负载值越小权重值越高,同样资源利用率越小权重值也越高。这样,可以让负载值和/或资源利用率小的服务器作为目标服务器,来分担预设服务器的业务压力,同样提升了直播质量。在本公开实施例中,可选地,上述推送直播流媒体数据的方法如图4所示,图4是在前述图2所示实施例的基础上示出的另一种推送直播流媒体数据的方法,还包括以下步骤:在步骤104中,确定作为直播中继节点的所述服务器集群的总负载值。本步骤中,可以计算所述服务器集群中每个服务器的负载值的和值,从而得到所述总负载值。例如,服务器集群包括服务器a、服务器b和服务器c,上述服务器各自上报自身的负载信息,如上述表1所示。则所述服务器集群的总负载值为:总负载值=500+360+400=1260。在步骤105中,当所述总负载值超过预设值时,在所述服务器集群中添加预先指定的备选服务器。本步骤中,如果所述总负载值超过预设值,就可以在所述服务器集群中添加预先指定的备选服务器。可选地,所述备选服务器的数目可以根据所述总负载值与所述预设值的差值确定。例如,所述总负载值与所述预设值的差值不超过500时,所述备选服务器的数目为1,所述总负载值与所述预设值的差值大于500且小于1000时,所述备选服务器的数目为2,依次类推。假设备选服务器包括服务器d和服务器e,当所述总负载值为1260,所述预设值为1000时,可以将服务器d或服务器e作为所述备选服务器加入所述服务器集群中。当所述总负载值为1700时,可以将服务器d和服务器e作为所述备选服务器加入所述服务器集群中。上述实施例中,当作为直播中继节点的所述服务器集群的总负载值超过预设值时,可以将预设的备选服务器加入所述服务器集群中。从而实现作为直播中继节点的所述服务器集群的动态扩容,减轻原服务器集群的业务压力,确保服务器集群的性能。在本公开实施例中,可选地,上述推送直播流媒体数据的方法如图5所示,图5是在前述图2所示实施例的基础上示出的另一种推送直播流媒体数据的方法,还包括以下步骤:在步骤101’中,接收观众客户端发送的请求获取所述直播流媒体数据的数据获取请求。本步骤中,所述观众客户端可以按照相关技术发起请求获取所述直播流媒体数据的数据获取请求。所述服务器集群按照相关技术接收所述数据获取请求之后,执行步骤102,通过所述目标服务器从预设服务器获取直播源数据。通过上述过程,可以在服务器集群接收到观众客户端发送的请求获取直播流媒体数据的数据获取请求之后,才通过确定的目标服务器获取预设服务器转发的直播源数据。从而避免在观众客户端不需要获取直播流媒体数据时,仍从预设服务器获取所述直播源数据的问题,避免给预设服务器造成业务压力和资源浪费。在本公开实施例中,可选地,上述推送直播流媒体数据的方法如图6所示,图6是在前述图2所示实施例的基础上示出的另一种推送直播流媒体数据的方法,在完成步骤103之后,还包括以下步骤:在步骤103’中,对所述直播流媒体数据进行缓存。本步骤中,所述目标服务器可以按照相关技术将所述直播流媒体数据缓存到所述目标服务器上预先划分出的指定区域中。这样,当所述服务器集群再接收到其他观众客户端发送的所述数据获取请求后,仍按照上述方式在所述服务器集群中确定出目标服务器,此时就可以快速从所述目标服务器的缓存区域中读取所述直播流媒体数据,从而将其推送给所述观众客户端。上述实施例中,可以对所述直播流媒体数据进行缓存,从而快速响应后续观众客户端发起的数据获取请求,降低观众客户端直播延迟情况。本公开实施例中,为了保障直播质量,可以通过网管系统对作为直播中继节点的服务器集群和预设服务器进行监控预警,获取每个服务器在运行时的状态信息,提供运行状态快照,以及持久化状态数据,定期生成运行状态数据报表。由所述网管系统根据所述运行状态数据报表,对所述服务器集群和所述预设服务器的运行状态进行分析。如果存在异常,可以通过邮件或短信等方式通知网管人员,便于网管人员及时进行维护。与前述方法实施例相对应,本公开还提供了装置的实施例。如图7所示,图7是本公开根据一示例性实施例示出的一种推送直播流媒体数据的装置框图,包括:第一确定模块210,被配置为在作为直播中继节点的服务器集群中确定目标服务器;第一获取模块220,被配置为通过所述目标服务器从预设服务器获取直播源数据;推送模块230,被配置为通过所述目标服务器将直播流媒体数据推送给观众客户端,所述直播流媒体数据是所述直播源数据进行转码处理后得到的流媒体数据;其中,所述直播源数据是主播客户端在直播过程中采集并上传到所述预设服务器的多媒体数据。如图8所示,图8是本公开根据一示例性实施例示出的另一种推送直播流媒体数据的装置框图,该实施例在前述图7所示实施例的基础上,所述第一确定模块220包括:获取子模块221,被配置为获取作为直播中继节点的服务器集群中每个服务器上报的自身的负载信息;第一确定子模块222,被配置为根据所述负载信息,确定所述每个服务器各自的权重值;第二确定子模块223,被配置为将所述服务器集群中所述权重值最大的服务器作为所述目标服务器。可选地,所述负载信息包括负载值和资源利用率中的至少一项。如图9所示,图9是本公开根据一示例性实施例示出的另一种推送直播流媒体数据的装置框图,该实施例在前述图8所示实施例的基础上,所述第一确定子模块222包括:确定单元2221,被配置为根据负载信息和权重值之间的预设对应关系,确定所述每个服务器各自的权重值;所述预设对应关系包括:负载值与权重值成反比,以及资源利益率与权重值成反比。如图10所示,图10是本公开根据一示例性实施例示出的另一种推送直播流媒体数据的装置框图,该实施例在前述图7所示实施例的基础上,所述推送模块230包括:处理子模块231,被配置为对所述直播源数据进行转码处理,得到与所述观众客户端匹配的直播流媒体数据;推送子模块232,被配置为通过所述目标服务器将所述直播流媒体数据推送给观众客户端。如图11所示,图11是本公开根据一示例性实施例示出的另一种推送直播流媒体数据的装置框图,该实施例在前述图7所示实施例的基础上,所述装置还包括:第二确定模块240,被配置为确定作为直播中继节点的所述服务器集群的总负载值;添加模块250,被配置为当所述总负载值超过预设值时,在所述服务器集群中添加预先指定的备选服务器。如图12所示,图12是本公开根据一示例性实施例示出的另一种推送直播流媒体数据的装置框图,该实施例在前述图7所示实施例的基础上,所述装置还包括:第二获取模块260,被配置为接收观众客户端发送的请求获取所述直播流媒体数据的数据获取请求;控制模块270,被配置为在确定接收到所述数据获取请求之后,控制所述第一获取模块通过所述目标服务器从预设服务器获取直播源数据。如图13所示,图13是本公开根据一示例性实施例示出的另一种推送直播流媒体数据的装置框图,该实施例在前述图7所示实施例的基础上,所述装置还包括:缓存模块280,被配置为对所述直播流媒体数据进行缓存。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。相应的,本公开还提供一种推送直播流媒体数据的装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:在作为直播中继节点的服务器集群中确定目标服务器;通过所述目标服务器从预设服务器获取直播源数据;通过所述目标服务器将直播流媒体数据推送给观众客户端,所述直播流媒体数据是所述直播源数据进行转码处理后得到的流媒体数据;其中,所述直播源数据是主播客户端在直播过程中采集并上传到所述预设服务器的多媒体数据。如图14所示,图14是根据一示例性实施例示出的一种推送直播流媒体数据的装置1400的一结构示意图。例如,装置1400可以被提供为作为直播中继节点的服务器集群。参照图14,装置1400包括处理组件1422,其进一步包括一个或多个处理器,以及由存储器1432所代表的存储器资源,用于存储可由处理组件1422的执行的指令,例如应用程序。存储器1432中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1422被配置为执行指令,以执行上述推送直播流媒体数据的方法。装置1400还可以包括一个电源组件1426被配置为执行装置1400的电源管理,一个有线或无线网络接口1450被配置为将装置1400连接到网络,和一个输入输出(I/O)接口1450。装置1400可以操作基于存储在存储器1432的操作系统,例如WindowsServerTM,MacOSXTM,UnixTM,LinuxTM,FreeBSDTM或类似。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本
技术领域:
中的公知常识或者惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。当前第1页1 2 3