一种多媒体数据推送方法、装置及系统与流程

文档序号:19060373发布日期:2019-11-06 01:43阅读:220来源:国知局
一种多媒体数据推送方法、装置及系统与流程

本发明涉及计算机技术领域,特别涉及一种多媒体数据推送方法、装置及系统。



背景技术:

随着互联网技术的发展,网络直播平台应用而生,不同用户通过网络直播平台可以直接在线进行全面实时地交流和互动。

相关技术中,用户的客户端直接与推流设备进行交互,通过推流设备将多媒体数据流如直播数据流推送到流媒体服务器。显然,这种推流方式存在很大的风险,一旦推流设备出现故障将会导致多媒体数据流无法推送,对于正在直播的场景,将无法保障直播效果,直播服务的质量和稳定均较差。此外,这种推流方式也不便于对多媒体数据流的管理。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种多媒体数据推送方法、装置及系统。所述技术方案如下:

一方面,提供了一种多媒体数据推送方法,应用于流控制节点,所述方法包括:

确定与目标客户端相匹配的流存储地址信息;

向第一目标推流节点发送所述流存储地址信息,以使得所述第一目标推流节点根据所述流存储地址信息获取所述目标客户端的多媒体数据流,将所述多媒体数据流推送给流媒体服务器;

其中,所述第一目标推流节点为推流节点集群中的至少一个推流节点。

另一方面,提供了一种多媒体数据推送方法,所述方法包括:

流控制节点确定与目标客户端相匹配的流存储地址信息,向第一目标推流节点发送所述流存储地址信息;所述第一目标推流节点为推流节点集群中的至少一个推流节点;

所述第一目标推流节点根据所述流存储地址信息获取所述目标客户端的多媒体数据流,将所述多媒体数据流推送给流媒体服务器。

另一方面,提供了一种多媒体数据推送装置,应用于流控制节点,所述装置包括:

第一确定模块,用于确定与目标客户端相匹配的流存储地址信息;

第一发送模块,用于向第一目标推流节点发送所述流存储地址信息,以使得所述第一目标推流节点根据所述流存储地址信息获取所述目标客户端的多媒体数据流,将所述多媒体数据流推送给流媒体服务器;

其中,所述第一目标推流节点为推流节点集群中的至少一个推流节点。

可选的,所述第一确定模块,具体用于:响应于目标客户端针对直播数据流的推流请求,确定与所述目标客户端相匹配的直播数据流的流存储地址信息。

相应的,所述第一发送模块,具体用于:向第一目标推流节点发送所述直播数据流的流存储地址信息,以使得所述第一目标推流节点根据所述直播数据流的流存储地址信息获取所述直播数据流,将所述直播数据流推送给流媒体服务器。

可选的,所述装置还包括:

第一判断模块,用于判断所述直播数据流的流存储地址信息所对应的存储空间中是否有直播数据流;

第二确定模块,用于在所述第一判断模块的判断的结果为否时,确定与所述目标客户端相匹配的预存数据流的流存储地址信息;所述预存数据流为所述目标客户端预先录制的多媒体数据流;

第二发送模块,用于向所述第一目标推流节点发送所述预存数据流的流存储地址信息,以使得所述第一目标推流节点根据所述预存数据流的流存储地址信息获取所述预存数据流,将所述预存数据流推送给流媒体服务器。

可选的,所述装置还包括:

第一获取模块,用于每隔预设时间间隔从流状态服务器获取所述多媒体数据流的第一流状态;所述第一流状态为所述流状态服务器根据所述第一目标推流节点上报的心跳信息确定的所述多媒体数据流的状态;

第三确定模块,用于在所述第一流状态为第一预设流状态时,确定所述第一目标推流节点的节点状态;

第四确定模块,用于在所述节点状态为预设节点状态时,确定所述推流节点集群中的第二目标推流节点;所述第二目标推流节点为所述推流节点集群中除所述第一目标推流节点之外的至少一个推流节点;

第一执行模块,用于将所述第二目标推流节点作为所述第一目标推流节点,执行所述向第一目标推流节点发送所述流存储地址信息的步骤。

可选的,所述装置还包括:

第一接收模块,用于接收所述流媒体服务器发送的所述多媒体数据流的第二流状态;所述第二流状态为所述流媒体服务器根据接收的所述多媒体数据流确定的所述多媒体数据流的状态;

第二判断模块,用于判断是否获取到所述多媒体数据流的第一流状态;

第二执行模块,用于在所述第二判断模块的判断的结果为否时,将所述第二流状态作为所述第一流状态,执行所述在所述第一流状态为第一预设流状态时,确定所述第一目标推流节点的节点状态的步骤。

另一方面,提供了一种多媒体数据推送系统,所述系统包括流控制节点和推流节点集群;

所述流控制节点,用于确定与目标客户端相匹配的流存储地址信息,向第一目标推流节点发送所述流存储地址信息;

所述第一目标推流节点,用于根据所述流存储地址信息获取所述目标客户端的多媒体数据流,将所述多媒体数据流推送给流媒体服务器;所述第一目标推流节点为所述推流节点集群中的至少一个推流节点。

可选的,所述系统还包括流状态服务器;

相应的,所述第一目标推流节点,还用于向所述流状态服务器上报所述多媒体数据流的心跳信息;

所述流状态服务器,用于根据所述心跳信息确定所述多媒体数据流的第一流状态;

所述流控制节点,还用于每隔预设时间间隔从所述流状态服务器获取所述第一流状态;在所述第一流状态为第一预设流状态时,确定所述第一目标推流节点的节点状态;在所述节点状态为预设节点状态时,确定所述推流节点集群中的第二目标推流节点;将所述第二目标推流节点作为所述第一目标推流节点,执行所述向第一目标推流节点发送所述流存储地址信息的步骤;其中,所述第二目标推流节点为所述推流节点集群中除所述第一目标推流节点之外的至少一个推流节点。

可选的,所述流媒体服务器,还用于根据接收的所述多媒体数据流,确定多媒体数据流的第二流状态;将所述多媒体数据流的第二流状态发送给所述流控制节点;

所述流控制节点,还用于接收所述多媒体数据流的第二流状态;判断是否获取到所述多媒体数据流的第一流状态;在判断的结果为否时,将所述第二流状态作为所述第一流状态,并执行所述在所述第一流状态为第一预设流状态时,确定所述第一目标推流节点的节点状态的步骤。

另一方面,提供了一种服务器,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述的多媒体数据推送方法。

另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述的多媒体数据推送方法。

本发明实施例通过流控制节点将与目标客户端相匹配的流存储地址信息发送给推流节点集群中的至少一个推流节点,使得该推流节点根据该流存储地址信息获取目标客户端的多媒体数据流,并将该多媒体数据流推送给流媒体服务器,从而可以避免推流设备出现故障导致的多媒体数据流无法推送的问题,确保了直播场景中的直播效果以及直播服务的质量和稳定性。并且基于流控制节点来下发流存储地址信息,可以方便对多媒体数据流的管理和控制。

附图说明

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

图1是本发明实施例提供的一种多媒体数据推送方法所涉及的实施环境的示意图;

图2是本发明实施例提供的一种多媒体数据推送方法的流程示意图;

图3是本发明实施例提供的另一种多媒体数据推送方法的流程示意图;

图4是本发明实施例提供的另一种多媒体数据推送方法的流程示意图;

图5是本发明实施例提供的另一种多媒体数据推送方法的流程示意图;

图6是本发明实施例提供的另一种多媒体数据推送方法的流程示意图;

图7是本发明实施例提供的一种多媒体数据推送装置的结构示意图;

图8是本发明实施例提供的另一种多媒体数据推送装置的结构示意图;

图9是本发明实施例提供的另一种多媒体数据推送装置的结构示意图;

图10是本发明实施例提供的一种服务器的硬件结构框图。

具体实施方式

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

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

请参阅图1,其所示为本发明实施例提供的一种多媒体数据推送方法所涉及的实施环境的示意图,该实施环境可以包括:流控制节点110、推流节点集群120、流状态服务器130、流媒体服务器140和流数据存储系统150。

其中,推流节点集群120包括多个推流节点,该推流节点具有能够正常推送多媒体数据的功能。流数据存储系统150可以包括不同类型的数据库,如关系型数据库、key-value数据库(redis数据库)以及硬盘存储空间。

需要说明的是,上述提及的节点可以为一个服务器,即流控制节点可以称之为流控制服务器,推流节点可以称之为推流服务器,本发明实施例对此不进行具体限定。

流控制节点110、推流节点集群120、流状态服务器130、流媒体服务器140和流数据存储系统150之间可以通过有线网络或者无线网络相连接。

请参阅图2,其所示为本发明实施例提供的一种多媒体数据推送方法的流程示意图,该方法可以应用于图1中的流控制节点110。需要说明的是,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,所述方法可以包括:

s201,确定与目标客户端相匹配的流存储地址信息。

其中,目标客户端为向流媒体服务器上传多媒体数据流的客户端,该目标客户端可以与流控制节点进行交互。针对直播的应用场景,该目标客户端可以是进行直播的客户端。

实际应用中,可以预先建立客户端的标识与流存储地址信息的对应关系表,该流存储地址信息为在客户端进行直播之前预先提供给该客户端的、用于存储该客户端提供的多媒体数据流的地址信息,从而通过查询该对应关系表可以确定与目标客户端的标识对应的流存储地址信息。在图1所示的架构图中,该流存储地址信息可以对应于流数据存储系统150中的指定存储空间。

s203,向第一目标推流节点发送所述流存储地址信息,以使得所述第一目标推流节点根据所述流存储地址信息获取所述目标客户端的多媒体数据流,将所述多媒体数据流推送给流媒体服务器。

在本说明书实施例中,第一目标推流节点为推流节点集群中的至少一个推流节点,优选的为任意一个推流节点。该推流节点集群中的推流节点具有能够正常推送多媒体数据的功能,也就是说,推流节点集群中的推流节点是正常的推流节点,若某一推流节点出现故障无法进行多媒体数据的推送则可以将该推流节点从推流节点集群中踢出,在该推流节点的故障排除之后可以将其重新加入到推流节点集群中。

在一个具体的实施例中,如图3所示的步骤s301、流控制节点可以响应于目标客户端针对直播数据流的推流请求,确定与目标客户端相匹配的直播数据流的流存储地址信息。也就是说,当目标客户端发起直播数据流的推流请求时,流控制节点可以基于推流请求中携带的该目标客户端的标识确定与该标识相对应的直播数据流的流存储地址信息,该直播数据流的流存储地址信息用于指示存储目标客户端的直播数据流的存储空间a。然后于步骤303、流控制节点可以向第一目标推流节点发送该直播数据流的流存储地址信息,以使得第一目标推流节点根据直播数据流的流存储地址信息从存储空间a获取直播数据流,并将该直播数据流推送给流媒体服务器。流媒体服务器可以基于观众客户端发送的直播数据流获取请求将相应的直播数据流发送给观众客户端播放。

实际应用中,受到网络稳定性的影响,目标客户端的直播数据流可能不能及时上传到其直播数据流的流存储地址信息所对应的存储空间a中,在这种情况下,存储空间a中可能没有相应的直播数据流,若第一目标推流节点继续从存储空间a获取,将获取不到直播数据流进行推送,从而将会导致观众客户端无法播放而黑屏,影响了直播效果以及直播服务的质量。

鉴于此,在另一些实施例中,如图3所示,流控制节点可以对存储空间a中的直播数据流进行实时监控,执行步骤s305、判断直播数据流的流存储地址信息所对应的存储空间中是否有直播数据流,并在判断的结果为否时执行步骤s307至步骤s309;步骤s307、确定与目标客户端相匹配的预存数据流的流存储地址信息;步骤s309、向第一目标推流节点发送上述预存数据流的流存储地址信息,以使得第一目标推流节点根据预存数据流的流存储地址信息获取相应的预存数据流,将该预存数据流推送给流媒体服务器。从而可以确保在直播的过程中,有连续不断的目标客户端的多媒体数据流被推送到流媒体服务器,进而使得相应的观众客户端能够不间断的接收到相应的多媒体数据进行播放,有效避免了黑屏的出现,保证了直播效果和直播服务的质量和稳定性。

其中,预存数据流为目标客户端预先录制的多媒体数据流,如该预存数据流可以为预先录制的音频、视频等数据。为了进一步提高直播服务的质量,该预存数据流可以是预先录制的与直播数据流的直播内容相关联的音视频数据。例如,针对明星张在x城市的演唱会的现场直播,该预设数据流可以是明星张之前在y城市的演唱会的部分录制视频等。

预存数据流的流存储地址信息用于指示存储目标客户端的预存数据流的存储空间b。预存数据流的流存储地址信息不同于上述的直播数据流的流存储地址信息,即存储空间a和存储空间b可以对应于流数据存储系统150中的两个不同的存储空间。

在另一个具体的实施例中,流控制节点还可以响应于目标客户端针对预存数据流的推流请求,确定与该目标客户端相匹配的预存数据流的流存储地址信息。也就是说,当目标客户端直接发起预存数据流的推流请求时,流控制节点可以基于推流请求中携带的该目标客户端的标识确定与该标识相对应的预存数据流的流存储地址信息,该预存数据流的流存储地址信息用于指示存储目标客户端的预存数据流的存储空间b。同样,该预存数据流的流存储地址信息可以不同于直播数据流的流存储地址信息,即存储空间a和存储空间b可以对应于流数据存储系统150中的两个不同的存储空间。

由本发明实施例的上述技术方案可见,本发明实施例通过流控制节点将目标客户端的流存储地址信息发送给推流节点集群中的至少一个推流节点,从而可以避免推流设备出现故障导致的多媒体数据流无法推送的问题,确保了直播场景中的直播效果以及直播服务的质量和稳定性。并且基于流控制节点来下发流存储地址信息,可以方便对多媒体数据流的管理和控制。

为了进一步确保对多媒体数据流的连续推送,提高多媒体数据流的推送质量,如图4所示,在多媒体数据流的推送过程中,所述方法还可以包括:

s401,每隔预设时间间隔从流状态服务器获取所述多媒体数据流的第一流状态;所述第一流状态为所述流状态服务器根据所述第一目标推流节点上报的心跳信息确定的所述多媒体数据流的状态。

在本说明书实施例中,第一目标推流节点在向流媒体服务器推送多媒体数据流时,可以每隔第一预设时间间隔获取推送的多媒体数据流的心跳信息,该心跳信息包括用于表征多媒体数据流的推送速度的参数,例如,心跳信息可以包括推送的多媒体数据流的码率、帧率等等。第一预设时间间隔可以根据实际需要进行设定,例如可以设定为1秒、2秒等等。第一目标推流节点将获取的心跳信息上报给流状态服务器,流状态服务器可以提供心跳服务和状态服务,其中,心跳服务可以根据接收的多媒体数据流的心跳信息确定该多媒体数据流的第一流状态,状态服务可以存储该第一流状态。

实际应用中,状态服务在存储多媒体数据流的第一流状态时,可以获取推送该多媒体数据流的推流节点的节点标识以及该多媒体数据流的流标识,并存储节点标识、流标识和第一流状态的对应关系。其中,节点标识用于唯一确定一个推流节点,流标识用于唯一确定一个多媒体数据流。

流控制节点可以对第一目标推流节点推送的多媒体数据流进行监控,具体的,可以每隔预设时间间隔从流状态服务器获取第一目标推流节点推送的多媒体数据流的第一流状态,该预设时间间隔可以根据实际需要进行设定,例如,可以设定为1分钟、2分钟等等。在一个具体的实施例中,流控制节点可以维护一个在推送的多媒体数据流的流标识与流状态的对应关系表,该对应关系表中的流状态可以根据实际推送中获取到的多媒体数据流的第一流状态来更新。流控制节点每隔预设时间间隔去流状态服务器获取该对应关系表中的流标识所对应的多媒体数据流的第一流状态,并将对应关系表中的流状态更新为当前的第一流状态,通过该对应关系表可以记录在推的所有多媒体数据流的当前流状态,便于流控制节点后续进行相应的控制或者管理措施。

可以理解的,流控制节点可以以获取流标识在流状态服务器对应的节点标识、流标识和第一流状态的对应关系的方式获取到第一流状态。

s403,在所述第一流状态为第一预设流状态时,确定所述第一目标推流节点的节点状态。

具体的,推送的多媒体数据流的第一流状态可以包括正常流状态和异常流状态,其中,正常流状态是指心跳信息满足预设条件时的多媒体数据流的状态;异常流状态是指心跳信息不满足预设条件时的多媒体数据流的状态。预设条件可以根据心跳信息包括的实际参数进行设定,例如,心跳信息包括码率和帧率,则预设条件可以是码率大于预设码率阈值且帧率大于预设帧率阈值,该预设码率阈值和预设帧率阈值均可以根据实际情况进行设定,可以设置为零或者大于零的数,一般预设码率阈值和预设帧率阈值设置的越大,对于多媒体数据流的监控越严格,越有利于保障推送的多媒体数据流的效果和推送服务的质量。

在本说明书实施例中,第一预设流状态是指多媒体数据流的异常流状态,即在推送的多媒体数据流的第一流状态为异常流状态时,流控制节点需要确定推送该多媒体数据流的第一目标推流节点的节点状态。流控制节点可以基于获取的节点标识、流标识和第一流状态的对应关系,确定推送处于异常流状态的多媒体数据流的第一目标推流节点,并进一步确定该第一目标推流节点的节点状态。

其中,确定第一目标推流节点的节点状态可以但不限于为:流控制节点获取第一目标推流节点的进程信息,判断该进程信息中是否有对应于异常流状态的多媒体数据流的推送进程,当判断的结果为是即第一目标推流节点的进程信息中有对应于异常流状态的多媒体数据流的推送进程时,则表明该多媒体数据流的异常流状态的出现与进程无关,是由于第一目标推流节点的设备故障导致的,此时可以确定该第一目标推流节点的节点状态为第二预设节点状态(即设备故障状态);当判断的结果为否即第一目标推流节点的进程信息中没有对应于异常流状态的多媒体数据流的推送进程时,则表明该多媒体数据流的异常流状态的出现是由于相应推送进程被杀导致的,此时可以确定该第一目标推流节点的节点状态为第一预设节点状态(即无相应推送进程状态)。也就是说,在本说明书实施例中,预设节点状态可以包括第一预设节点状态和第二预设节点状态。

s405,在所述节点状态为预设节点状态时,确定所述推流节点集群中的第二目标推流节点。

其中,所述第二目标推流节点为所述推流节点集群中除所述第一目标推流节点之外的至少一个推流节点。

在本说明书实施例中,当确定第一目标推流节点的节点状态为预设节点状态(第一预设节点状态或者第二预设节点状态)时,流控制节点可以从推流节点集群中去选取第二目标推流节点,当然该第二目标推流节点不同于第一目标推流节点。

s407,将所述第二目标推流节点作为所述第一目标推流节点,执行所述向第一目标推流节点发送所述流存储地址信息的步骤。

当从推流节点集群中确定第二目标推流节点后,可以将该第二目标推流节点作为第一目标推流节点,执行前述的向第一目标推流节点发送流存储地址信息的步骤,具体可见参见前述图2至图4所示方法实施例中关于第一目标推流节点的相应内容,在此不再赘述。

实际应用中,为了提高推流系统的抗风险能力,保障对多媒体数据流的推送质量,如图5所示的另一种多媒体数据推送方法的流程示意图,所述方法还包括:

s501,接收所述流媒体服务器发送的所述多媒体数据流的第二流状态;所述第二流状态为所述流媒体服务器根据接收的所述多媒体数据流确定的所述多媒体数据流的状态。

在本说明书实施例中,流媒体服务器在接收推流节点推送的多媒体数据流时,会根据接收的多媒体数据流确定该多媒体数据流的第二流状态,并将该对媒体数据流的第二流状态发送给流控制节点。具体的,流媒体服务器可以获取接收的多媒体数据流的心跳信息,并根据该心跳信息来确定相应多媒体数据流的第二流状态,该第二流状态与第一流状态类似可以包括正常流状态和异常流状态。其中,正常流状态是指心跳信息满足预设条件时的多媒体数据流的状态;异常流状态是指心跳信息不满足预设条件时的多媒体数据流的状态。预设条件可以根据心跳信息包括的实际参数进行设定,例如,心跳信息包括码率和帧率,则预设条件可以是码率大于预设码率阈值且帧率大于预设帧率阈值,该预设码率阈值和预设帧率阈值均可以根据实际情况进行设定,可以设置为零或者大于零的数,一般预设码率阈值和预设帧率阈值设置的越大,对于多媒体数据流的监控越严格,越有利于保障推送的多媒体数据流的效果和推送服务的质量。

相应的,流控制节点接收流媒体服务器发送的多媒体数据流的第二流状态。

s503,判断是否获取到所述多媒体数据流的第一流状态,在判断的结果为否时,执行步骤s505;在判断的结果为是时,执行前述步骤s403。

实际应用中,在流状态服务器出现故障的情况下,流状态服务器将无法提供心跳服务以及状态服务,此时流控制节点是无法从流状态服务器获取到多媒体数据流的第一流状态的。为了加强对推送中的多媒体数据流的监控,确保推送效果和推送服务的质量,在本说明书实施例中,流控制节点可以判断当前是否获取到多媒体数据流的第一流状态,并在判断的结果为否时,执行步骤s505;在判断的结果为是时,执行前述步骤s403。

s505,将所述第二流状态作为所述第一流状态,执行所述在所述第一流状态为第一预设流状态时,确定所述第一目标推流节点的节点状态的步骤。

当流控制节点判断未获取到推送的多媒体数据流的第一流状态时,为了加强对该多媒体数据流的监控,可以将从流媒体服务器接收的该多媒体数据流的第二流状态作为第一流状态,并执行前述步骤s403,在所述第一流状态为第一预设流状态时,确定所述第一目标推流节点的节点状态。

请参见图6,其所示为本发明实施例提供的另一种多媒体数据推送方法的流程示意图,该方法可以应用于图1所示的系统,如图6所示,该方法可以包括:

s601,流控制节点确定与目标客户端相匹配的流存储地址信息,向第一目标推流节点发送所述流存储地址信息;所述第一目标推流节点为推流节点集群中的至少一个推流节点。

相应的,第一目标推流节点接收所述流控制节点发送的所述目标客户端的流存储地址信息。

s603,第一目标推流节点根据所述流存储地址信息获取所述目标客户端的多媒体数据流,将所述多媒体数据流推送给流媒体服务器。

为了加强对推送的多媒体数据流的监控,在一个具体的实施例中,上述多媒体数据推送方法还可以包括步骤s605至步骤s609:

s605,第一目标推流节点向流状态服务器上报所述多媒体数据流的心跳信息。

在本说明书实施例中,第一目标推流节点在向流媒体服务器推送多媒体数据流时,可以每隔第一预设时间间隔获取推送的多媒体数据流的心跳信息,该心跳信息包括用于表征多媒体数据流的推送速度的参数,例如,心跳信息可以包括推送的多媒体数据流的码率、帧率等等。第一预设时间间隔可以根据实际需要进行设定,例如可以设定为1秒、2秒等等。第一目标推流节点将获取的心跳信息上报给流状态服务器。

相应的,流状态服务器接收第一目标推流节点上报的心跳信息。

s607,流状态服务器根据所述心跳信息确定所述多媒体数据流的第一流状态。

在本说明书实施例中,流状态服务器可以提供心跳服务和状态服务,其中,心跳服务可以根据接收的多媒体数据流的心跳信息确定该多媒体数据流的第一流状态,状态服务可以存储该第一流状态。

推送的多媒体数据流的第一流状态可以包括正常流状态和异常流状态,其中,正常流状态是指心跳信息满足预设条件时的多媒体数据流的状态;异常流状态是指心跳信息不满足预设条件时的多媒体数据流的状态。预设条件可以根据心跳信息包括的实际参数进行设定,例如,心跳信息包括码率和帧率,则预设条件可以是码率大于预设码率阈值且帧率大于预设帧率阈值,该预设码率阈值和预设帧率阈值均可以根据实际情况进行设定,可以设置为零或者大于零的数,一般预设码率阈值和预设帧率阈值设置的越大,对于多媒体数据流的监控越严格,越有利于保障推送的多媒体数据流的效果和推送服务的质量。

s609,流控制节点每隔预设时间间隔从所述流状态服务器获取所述第一流状态;在所述第一流状态为第一预设流状态时,确定所述第一目标推流节点的节点状态;在所述节点状态为预设节点状态时,确定所述推流节点集群中的第二目标推流节点;将所述第二目标推流节点作为所述第一目标推流节点,执行所述向第一目标推流节点发送所述流存储地址信息的步骤;其中,所述第二目标推流节点为所述推流节点集群中除所述第一目标推流节点之外的至少一个推流节点。

在本说明书实施例中,第一预设流状态是指多媒体数据流的异常流状态,即在推送的多媒体数据流的第一流状态为异常流状态时,流控制节点需要确定推送该多媒体数据流的第一目标推流节点的节点状态。

推流节点的预设节点状态可以包括第一预设节点状态和第二预设节点状态,其中,第二预设节点状态为推流节点的设备故障状态,第一预设节点状态为推流节点的设备正常,但是该推流节点的进程信息中无相应多媒体数据流的推送进程的状态。

在一个具体的实施例中,当第一目标推流节点的节点状态为第一预设节点状态时,流控制节点可以将目标客户端的流存储地址信息发送给第二目标推流节点,该第二目标推流节点可以执行如前述第一目标推流节点的相应动作,即根据目标客户端的流存储地址获取目标客户端的多媒体数据流,并将该多媒体数据流推送给流媒体服务器。同时,第一目标推流节点可以在确定其节点状态为第一预设节点状态时,从目标缓存中获取目标客户端的流存储地址信息,根据该流存储地址信息重新推送目标客户端的多媒体数据流。实际应用中,第一目标推流节点的crontab服务会定时任务判断其节点状态是否处于第一预设节点状态,其中,crontab用于设置周期性被执行的命令,该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行,具体到该实施例,“crontab”文件中包括执行的时间间隔和具体的执行命令,这里执行的命令可以是用来判断第一目标推流节点的节点状态是否处于第一预设节点状态的脚本。

在另一个具体的实施例中,当第一目标推流节点的节点状态为第二预设节点状态时,流控制节点可以将目标客户端的流存储地址信息发送给第二目标推流节点,该第二目标推流节点可以执行如前述第一目标推流节点的相应动作,即根据目标客户端的流存储地址获取目标客户端的多媒体数据流,并在该多媒体数据流推送给流媒体服务器。当第一目标推流节点的第二预设节点状态排除后,第一目标推流节点可以重启运行,此时第一目标推流节点可以从目标缓存中获取目标客户端的流存储地址信息,根据该流存储地址信息重新推送目标客户端的多媒体数据流。

其中,目标缓存可以是一个key-value数据库(如redis数据库),用于在第一目标推流节点推送目标客户端的多媒体数据流时,存储第一目标推流节点写入的数据信息,该数据信息可以包括目标客户端的流存储地址信息、第一目标推流节点的节点标识(如ip地址)、时间戳、心跳信息等。

实际应用中,第一目标推流节点在根据流存储地址信息重新推送目标客户端的多媒体数据流之前,第一目标推流节点还可以判断目标缓存中对应于该流存储地址信息的节点标识是否与当前的推流节点标识相一致,以及相应时间戳与当前时间戳的差值是否满足预设时间条件,只有在节点标识与当前的推流节点标识相一致且相应时间戳与当前时间戳的差值满足预设时间条件时,才重新进行多媒体数据流的推送。其中,预设时间条件可以根据实际需要进行设定,例如可以设定为不大于1分钟。

在上述的两种具体的实施例中,一旦第一目标推流节点重新根据流存储地址信息推送目标客户端的多媒体数据流后,将会存在同一个多媒体数据流被两个推流节点推送,在这种情况下,推流节点会定期获取自己进程中维护的多媒体数据流对应的节点标识,并将该节点标识与目标缓存中的相应节点标识进行比对,如果二者不一致,则在当前的推流节点放弃对该目标客户端的多媒体数据流的推送,交由另一个推流节点推送。

为了进一步加强对推送的多媒体数据流的监控,提高推送服务的质量,在另一个具体的实施例中,上述多媒体数据推送方法还可以包括步骤s611至步骤s613:

s611,流媒体服务器根据接收的所述多媒体数据流,确定多媒体数据流的第二流状态;将所述多媒体数据流的第二流状态发送给所述流控制节点。

s613,流控制节点接收所述多媒体数据流的第二流状态;判断是否获取到所述多媒体数据流的第一流状态;在判断的结果为否时,将所述第二流状态作为所述第一流状态,并执行所述在所述第一流状态为第一预设流状态时,确定所述第一目标推流节点的节点状态的步骤。

其中,步骤s611至步骤s613的详细内容可以参见前述图5所示方法实施例中的相关内容,在此不再赘述。

由本发明实施例的上述技术方案可见,本发明实施例的多媒体数据推送方法加强了对推送的多媒体数据流的监控,保障了推送的多媒体数据流的推送效果以及推送服务的质量和稳定,具有高可靠容灾性。

与上述几种实施例提供的多媒体数据推送方法相对应,本发明实施例还提供一种多媒体数据推送装置以及系统,由于本发明实施例提供的多媒体数据推送装置以及系统与上述几种实施例提供的多媒体数据推送方法相对应,因此前述多媒体数据推送方法的实施方式也适用于本实施例提供的多媒体数据推送装置以及系统,在本实施例中不再详细描述。

请参阅图7,其所示为本发明实施例提供的一种多媒体数据推送装置的结构示意图,该装置具有实现上述方法实施例中流控制节点侧的多媒体数据推送方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。如图7所示,该装置可以包括:

第一确定模块710,用于确定与目标客户端相匹配的流存储地址信息;

第一发送模块720,用于向第一目标推流节点发送所述流存储地址信息,以使得所述第一目标推流节点根据所述流存储地址信息获取所述目标客户端的多媒体数据流,将所述多媒体数据流推送给流媒体服务器;

其中,所述第一目标推流节点为推流节点集群中的至少一个推流节点。

在一个具体的实施例中,第一确定模块710,具体用于:响应于目标客户端针对直播数据流的推流请求,确定与所述目标客户端相匹配的直播数据流的流存储地址信息。

相应的,第一发送模块720,具体用于:向第一目标推流节点发送所述直播数据流的流存储地址信息,以使得所述第一目标推流节点根据所述直播数据流的流存储地址信息获取所述直播数据流,将所述直播数据流推送给流媒体服务器。

在一些实施例中,如图8所示,该装置还可以包括:

第一判断模块810,用于判断所述直播数据流的流存储地址信息所对应的存储空间中是否有直播数据流;

第二确定模块820,用于在所述第一判断模块810的判断的结果为否时,确定与所述目标客户端相匹配的预存数据流的流存储地址信息;所述预存数据流为所述目标客户端预先录制的多媒体数据流;

第二发送模块830,用于向所述第一目标推流节点发送所述预存数据流的流存储地址信息,以使得所述第一目标推流节点根据所述预存数据流的流存储地址信息获取所述预存数据流,将所述预存数据流推送给流媒体服务器。

在另一些实施例中,如图9所示,该装置还包括:

第一获取模块910,用于每隔预设时间间隔从流状态服务器获取所述多媒体数据流的第一流状态;所述第一流状态为所述流状态服务器根据所述第一目标推流节点上报的心跳信息确定的所述多媒体数据流的状态;

第三确定模块920,用于在所述第一流状态为第一预设流状态时,确定所述第一目标推流节点的节点状态;

第四确定模块930,用于在所述节点状态为预设节点状态时,确定所述推流节点集群中的第二目标推流节点;所述第二目标推流节点为所述推流节点集群中除所述第一目标推流节点之外的至少一个推流节点;

第一执行模块940,用于将所述第二目标推流节点作为所述第一目标推流节点,执行所述向第一目标推流节点发送所述流存储地址信息的步骤。

可选的,如图9所示,该装置还可以包括:

第一接收模块950,用于接收所述流媒体服务器发送的所述多媒体数据流的第二流状态;所述第二流状态为所述流媒体服务器根据接收的所述多媒体数据流确定的所述多媒体数据流的状态;

第二判断模块960,用于判断是否获取到所述多媒体数据流的第一流状态;

第二执行模块970,用于在所述第二判断模块的判断的结果为否时,将所述第二流状态作为所述第一流状态,执行所述在所述第一流状态为第一预设流状态时,确定所述第一目标推流节点的节点状态的步骤。

本发明实施例还提供了一种多媒体数据推送系统,如图1所示,该系统可以包括流控制节点和推流节点集群;其中,

流控制节点,用于确定与目标客户端相匹配的流存储地址信息,向第一目标推流节点发送所述流存储地址信息;

第一目标推流节点,用于根据所述流存储地址信息获取所述目标客户端的多媒体数据流,将所述多媒体数据流推送给流媒体服务器;所述第一目标推流节点为推流节点集群中的至少一个推流节点。

可选的,所述系统还可以包括流状态服务器;

相应的,第一目标推流节点,还用于向所述流状态服务器上报所述多媒体数据流的心跳信息;

流状态服务器,用于根据所述心跳信息确定所述多媒体数据流的第一流状态;

流控制节点,还用于每隔预设时间间隔从所述流状态服务器获取所述第一流状态;在所述第一流状态为第一预设流状态时,确定所述第一目标推流节点的节点状态;在所述节点状态为第一节点状态时,确定所述推流节点集群中的第二目标推流节点;将所述第二目标推流节点作为所述第一目标推流节点,执行所述向第一目标推流节点发送所述流存储地址信息的步骤;其中,所述第二目标推流节点为所述推流节点集群中除所述第一目标推流节点之外的至少一个推流节点。

可选的,流媒体服务器,还用于根据接收的所述多媒体数据流,确定多媒体数据流的第二流状态;将所述多媒体数据流的第二流状态发送给所述流控制节点;

流控制节点,还用于接收所述多媒体数据流的第二流状态;判断是否获取到所述多媒体数据流的第一流状态;在判断的结果为否时,将所述第二流状态作为所述第一流状态,并执行所述在所述第一流状态为第一预设流状态时,确定所述第一目标推流节点的节点状态的步骤。

需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本发明实施例的多媒体数据推送装置及系统通过流控制节点对推送的多媒体数据流的监控,提高了整个装置及系统的容灾性,能够及时发现异常的多媒体数据流并确保异常的多媒体数据流的推送效果以及推送质量。此外,基于流控制节点对推流节点集群的控制,使得推流节点的可管理性大大提高,节省了人力以及物力成本。

图10示出了本发明实施例提供的运行多媒体数据推送方法的服务器的硬件结构框图。该服务器1000可以是图1中的流控制节点110、推流节点集群120中的推流节点、流状态服务器130和流媒体服务器140。

如图10所示,该服务器1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)1010(处理器1010可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器1030,一个或一个以上存储应用程序1023或数据1022的存储介质1020(例如一个或一个以上海量存储设备)。其中,存储器1030和存储介质1020可以是短暂存储或持久存储。存储在存储介质1020的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1010可以设置为与存储介质1020通信,在服务器1000上执行存储介质1020中的一系列指令操作。服务器1000还可以包括一个或一个以上电源1060,一个或一个以上有线或无线网络接口1050,一个或一个以上输入输出接口1040,和/或,一个或一个以上操作系统1021,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

输入输出接口1040可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器1000的通信供应商提供的无线网络。在一个实例中,输入输出接口1040包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口1040可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

本领域普通技术人员可以理解,图10所示的结构仅为示意,服务器1000还可包括比图10中所示更多或者更少的组件,或者具有与图10所示不同的配置。

本发明的实施例还提供了一种计算机可读存储介质,所述存储介质可设置于服务器之中以保存用于实现一种多媒体数据推送方法相关的至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现上述方法实施例提供的多媒体数据推送方法。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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

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

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