一种流媒体数据分发方法、系统与流程

文档序号:31289038发布日期:2022-08-27 02:56阅读:192来源:国知局
一种流媒体数据分发方法、系统与流程

1.本发明涉及流媒体技术领域,特别是涉及一种流媒体数据分发方法、系统。


背景技术:

2.流媒体技术是一种将音频数据、视频数据等媒体数据进行流式传输的技术,通常由监控平台向客户端提供直播或点播的流媒体数据。
3.相关流媒体数据分发技术中,由nvr(network video recorder)网络视频录像机接收、存储摄像头采集的流媒体数据码流,并通过ip网络将摄像头采集的流媒体转发给监控平台,以便客户端从监控平台处获取流媒体数据。由于nvr网络视频录像机处理资源、存储资源有限,故基于nvr网络视频录像机的流媒体数据分发技术并不适用于大型流媒体数据的分发。
4.基于此,相关技术利用管理服务器接收摄像头采集的流媒体数据码流,由管理服务器通过ip网络将所接收的流媒体数据码流转发给中心机房,并为流媒体数据码流分配存储空间,由中心机房按照管理服务器分配的存储空间存储流媒体数据码流,在需对流媒体数据码流进行分发时,由管理服务器将中心机房存储的流媒体数据码流转发给监控平台,以便客户端从监控平台处获取流媒体数据。如此,可适用于大型流媒体数据存储、分发。
5.然而,基于管理服务器的流媒体数据分发技术,管理服务器既要响应于客户端的直播、点播对流媒体数据的读取请求,又要响应于摄像头采集的流媒体数据的写入存储请求,对于管理服务器负载能力要求较高,如果所需分发的流媒体数据量较大,单一管理服务器有限的资源将直接影响流媒体数据分发效率。或者,管理服务器网络连接中断或管理服务器故障,均容易导致流媒体数据丢失,影响流媒体数据分发可靠性。


技术实现要素:

6.本发明实施例的目的在于提供一种流媒体数据分发方法、系统,以提高流媒体数据分发效率与可靠性。具体技术方案如下:
7.第一方面,本发明实施例的提供了一种流媒体数据分发方法,所述方法包括:
8.流媒体服务器接收监控平台发送的第一流媒体数据请求指令;其中,所述第一流媒体数据请求指令为所述监控平台响应于客户端的流媒体数据请求生成的指令消息;
9.所述流媒体服务器根据所述第一流媒体数据请求指令,向存储服务器发送第二流媒体数据请求指令;其中,所述第一流媒体数据请求指令与所述第二流媒体数据请求指令所请求的原始流媒体数据码流相同;
10.所述存储服务器从磁盘阵列中获取所述第二流媒体数据请求指令所请求的原始流媒体数据码流,作为目标码流;其中,所述磁盘阵列用于在所述存储服务器的管理下,存储图像采集设备采集的原始流媒体数据码流;
11.所述存储服务器将所述目标码流发送至所述流媒体服务器;
12.所述流媒体服务器对所述目标码流进行处理,并向所述监控平台发送播放地址信
息,以使得所述监控平台向所述客户端发送所述播放地址信息,以使得所述客户端根据所述播放地址信息获取处理后的目标码流。
13.结合第一方面,在第二种可能的实施例中,所述方法还包括:
14.所述存储服务器为所述图像采集设备发送的原始流媒体数据码流分配通信地址以及磁盘存储地址;
15.所述存储服务器将所述原始流媒体数据码流存储至所述磁盘阵列内的目标磁盘中;其中,所述目标磁盘的通信地址与所述存储服务器分配的接收方的通信地址相同,且所述目标磁盘的存储地址与所述磁盘存储地址相同。
16.结合第一方面,在第三种可能的实施例中,所述第一流媒体数据请求指令携带有流媒体数据通道号,所述所述流媒体服务器根据所述第一流媒体数据请求指令,向存储服务器发送第二流媒体数据请求指令,包括:
17.所述流媒体服务器根据所述流媒体数据通道号,生成携带所述流媒体数据通道号的第二流媒体数据请求指令,并向所述存储服务器发送所述第二流媒体数据请求指令;
18.所述存储服务器从磁盘阵列中获取所述第二流媒体数据请求指令所请求的原始流媒体数据码流,包括:所述存储服务器从所述磁盘阵列中获取与所述流媒体数据通道号相对应的原始流媒体数据码流。
19.结合第一方面,在第三种可能的实施例中,所述流媒体服务器对所述目标码流进行处理,并向所述监控平台发送播放地址信息,包括:
20.所述流媒体服务器将所述目标码流的格式转换为预设流媒体数据格式,获取转码后的流媒体数据码流;
21.所述流媒体服务器根据所述转码后的流媒体数据码流,生成用于获取所述转码后的流媒体数据码流的播放地址信息。
22.结合第一方面,在第四种可能的实施例中,所述监控平台包括智能处理模块;所述方法还包括:
23.所述存储服务器根据所述智能处理模块发送的第三流媒体数据请求指令,从所述磁盘阵列中获取目标码流;
24.所述存储服务器将所述目标码流发送至所述智能处理模块;
25.所述智能处理模块对所述目标码流进行智能分析,获取智能分析结果。
26.结合第一方面的第四种可能的实施例,在第五种可能的实施例中,所述方法还包括:
27.所述智能处理模块将所述智能分析结果发送至所述流媒体服务器;
28.所述流媒体服务器对所述智能分析结果进行转码,生成转码后的智能分析结果;
29.所述流媒体服务器将所述转码后的智能分析结果上传至目标对象存储设备;
30.所述目标对象存储设备根据所述转码后的智能分析结果,生成共享链接;
31.所述目标对象存储设备将所述共享链接发送至所述流媒体服务器;
32.所述流媒体服务器将所述共享链接转发至所述监控平台,以使得所述客户端根据所述共享链接获取所述转码后的智能分析结果。
33.第二方面,本发明实施例提供了一种流媒体数据分发系统,所述系统包括:流媒体服务器、存储服务器、磁盘阵列、监控平台;
34.所述流媒体服务器,用于接收所述监控平台发送的第一流媒体数据请求指令;其中,所述第一流媒体数据请求指令为所述监控平台响应于客户端的流媒体数据请求生成的指令消息;根据所述第一流媒体数据请求指令,向所述存储服务器发送第二流媒体数据请求指令;其中,所述第一流媒体数据请求指令与所述第二流媒体数据请求指令所请求的原始流媒体数据码流相同;
35.所述存储服务器,用于从所述磁盘阵列中获取所述第二流媒体数据请求指令所请求的原始流媒体数据码流,作为目标码流;将所述目标码流发送至所述流媒体服务器;
36.所述磁盘阵列,用于在所述存储服务器的管理下,存储图像采集设备采集的原始流媒体数据码流;
37.所述流媒体服务器,还用于对所述目标码流进行处理,并向所述监控平台发送播放地址信息,以使得所述监控平台向所述客户端发送所述播放地址信息,以使得所述客户端根据所述播放地址信息获取处理后的目标码流。
38.结合第二方面,在第一种可能的实施例中,所述存储服务器,还用于:
39.为所述图像采集设备发送的原始流媒体数据码流分配通信地址以及磁盘存储地址;将所述原始流媒体数据码流存储至所述磁盘阵列内的目标磁盘中;其中,其中,所述目标磁盘的通信地址与所述存储服务器分配的接收方的通信地址相同,且所述目标磁盘的存储地址与所述磁盘存储地址相同。
40.结合第二方面,在第二种可能的实施例中,所述第一流媒体数据请求指令携带有流媒体数据通道号;
41.所述流媒体服务器,还用于根据所述流媒体数据通道号,生成携带所述流媒体数据通道号的第二流媒体数据请求指令,并向所述存储服务器发送所述第二流媒体数据请求指令;
42.所述存储服务器,还用于从所述磁盘阵列中获取与所述流媒体数据通道号相对应的原始流媒体数据码流。
43.结合第二方面,在第三种可能的实施例中,所述流媒体服务器,还用于:
44.将所述目标码流的格式转换为预设流媒体数据格式,获取转码后的流媒体数据码流;
45.根据所述转码后的流媒体数据码流,生成用于获取所述转码后的流媒体数据码流的播放地址信息。
46.结合第二方面,在第四种可能的实施例中,所述监控平台包括智能处理模块;
47.所述存储服务器,还用于根据所述智能处理模块发送的第三流媒体数据请求指令,从所述磁盘阵列中获取目标码流;将所述目标码流发送至所述智能处理模块;
48.所述智能处理模块,用于对所述目标码流进行智能分析,获取智能分析结果。
49.结合第二方面的第四种可能的实施例,在第五种可能的实施例中,所述系统还包括目标对象存储设备;
50.所述智能处理模块,还用于将所述智能分析结果发送至所述流媒体服务器;
51.所述流媒体服务器,还用于对所述智能分析结果进行转码,生成转码后的智能分析结果;将所述转码后的智能分析结果上传至所述目标对象存储设备;
52.所述目标对象存储设备,用于根据所述转码后的智能分析结果,生成共享链接;将
所述共享链接发送至所述流媒体服务器;
53.所述流媒体服务器,还用于将所述共享链接转发至所述监控平台,以使得所述客户端根据所述共享链接获取所述转码后的智能分析结果。
附图说明
54.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
55.图1为本发明实施例的流媒体数据分发方法的一种示意图;
56.图2为本发明实施例的流媒体数据分发系统的一种结构示意图;
57.图3为本发明实施例的流媒体数据分发方法的一种可能的应用场景示意图。
具体实施方式
58.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本发明所获得的所有其他实施例,都属于本发明保护的范围。
59.在相关技术中,受限于nvr网络视频录像机的处理资源、存储资源,基于nvr网络视频录像机的流媒体分发技术并不适用于大型流媒体数据的分发。因此,相关技术提出利用管理服务器结合中心机房,由管理服务器既响应于客户端的直播、点播对流媒体数据的读取请求,为客户端分发流媒体数据,又响应于摄像头采集的流媒体数据的写入请求,存储摄像头采集到的流媒体数据。但是,如果所需分发的流媒体数据量较大,单一的管理服务器有限的处理资源以及负载能力将直接影响流媒体数据的分发效率与可靠性。
60.有鉴于此,本发明实施例提供了一种流媒体数据分发方法,参见图1,该方法包括:
61.s110、流媒体服务器接收监控平台发送的第一流媒体数据请求指令。其中,第一流媒体数据请求指令为监控平台响应于客户端的流媒体数据请求生成的指令消息。
62.s120、流媒体服务器根据第一流媒体数据请求指令,向存储服务器发送第二流媒体数据请求指令。其中,第一流媒体数据请求指令与第二流媒体数据请求指令所请求的原始流媒体数据码流相同。
63.s130、存储服务器从磁盘阵列中获取第二流媒体数据请求指令所请求的原始流媒体数据码流,作为目标码流。其中,磁盘阵列用于在存储服务器的管理下,存储图像采集设备采集的原始流媒体数据码流。
64.s140、存储服务器将目标码流发送至流媒体服务器。
65.s150、流媒体服务器对目标码流进行处理,并向监控平台发送播放地址信息。监控平台向客户端发送该播放地址信息,以使得客户端根据该播放地址信息获取处理后的目标码流。
66.在本发明实施例中,响应于客户端的流媒体数据请求,流媒体服务器负责对客户端所请求的流媒体数据进行处理,存储服务器负责接收图像采集设备采集的原始流媒体数
据,并将原始流媒体数据存储至磁盘阵列中。因流媒体服务器与存储服务器分工不同,相互协作,能够有效减少大量流媒体数据对单一服务器负载能力的压力,能够降低单一服务器处理资源对流媒体数据分发效率的影响,有效提高流媒体数据分发效率与可靠性。
67.在s110中,流媒体数据请求可携带客户端所需的流媒体数据类型、流媒体数据格式、流媒体数据通道号、流媒体数据处理方式等表征客户端所需的流媒体数据的相关信息。当客户端存在流媒体数据需求时,客户端向监控平台发送流媒体数据请求,以告知监控平台客户端所需的流媒体数据的相关信息,以便监控平台根据该流媒体数据请求向其分发所请求的流媒体数据。
68.示例性的,当客户端需要播放某一通道的直播画面时,该客户端向监控平台发送流媒体数据请求,以请求监控平台向其分发流媒体数据。该流媒体数据请求可以包括:所请求的流媒体数据类型为实时流媒体数据,所请求的实时流媒体数据的格式,所请求的实时流数据的操作方式是拉流/推流等内容。
69.或者,当客户端需要播放某一通道的点播画面时,该客户端向监控平台发送流媒体数据请求,该流媒体数据请求可以包括:所请求的流媒体数据类型为历史流媒体数据,所请求的历史流媒体数据的起止时间、所请求的历史流媒体数据的通道号、历史流媒体数据的操作方式是拉流/推流等内容。
70.监控平台可根据该流媒体数据请求携带的内容,生成第一流媒体数据请求指令,并将该第一流媒体数据请求指令发送给流媒体服务器,以通知流媒体服务器客户端所请求的流媒体数据的相关信息。其中,第一流媒体数据请求指令可按照预设的传输方式或者协议进行传输。比如,该第一流媒体数据请求可以采用超文本传输协议(hyper text transfer protocol,http),或者小型计算机系统接口(small computer system interface,scsi-3)进行传输,或者其他可用于发送消息的传输协议,本领域技术人员可根据实际需求对传输方式或者传输协议进行调整,本发明实施例不作具体限定。
71.在s120中,流媒体服务器在接收到来自于监控平台的第一流媒体数据请求指令后,能够从该第一流媒体流媒体数据请求指令中,解析出客户端所需的流媒体数据的数据类型、通道号、数据格式等相关信息。流媒体服务器将根据所解析得到的流媒体数据的相关信息,生成第二流媒体数据请求指令,并向存储服务器发送该第二流媒体数据请求指令,以告知存储服务器客户端对流媒体数据的具体需求,便于后续流媒体服务器从存储服务器处获取客户端所请求的流媒体数据。在本发明实施例中,第一流媒体数据请求指令和第二流媒体数据请求指令所使用的传输协议并不相同,但是所请求的原始流媒体数据码流是相同的,均是客户端所请求的流媒体数据对应的原始流媒体数据码流。
72.在s130中,存储服务器用于对磁盘阵列(redundant arrays of independent disks,raid)进行管理。示例性的,存储服务器对磁盘阵列进行划分。比如,存储服务器可根据原始流媒体数据码流的数据总量,规划磁盘阵列。在本发明实施例中,磁盘阵列用于原始流媒体数据码流的存储。该磁盘阵列支持多种raid等级,比如raid 0、raid 1、raid 0+1、raid3等多种等级,具体等级可根据实际需求设定,本发明不作具体限定。
73.在本发明实施例中,可通过预先计算出所有图像采集设备所需的存储容量,结合存储管理磁盘所需数量、备份磁盘所需数量,确定出所需磁盘数量及磁盘阵列的划分方式。示例性的,假设一路图像采集设备采集的视频的分辨率为1080p,编解码格式为h.264格式,
按照一天需要51.2g的存储空间来计算,假设一共存在100个图像采集设备,每天共需5120g的存储空间,按磁盘阵列中的一块磁盘的存储空间为512g计算,则每天需要存储磁盘数量为10。假设备份磁盘数量为2,存储管理磁盘数量为1,则每天所需磁盘数量约为13个。即可计算出每天所需的磁盘阵列的盘位数为13,其中10个磁盘为主存储盘,2个为备份磁盘,1个为存储管理磁盘。其中:
74.备份磁盘用于保护数据安全。在磁盘阵列中的磁盘出现故障时,备份磁盘会立即开始工作,以接力该故障磁盘进行数据存储,能够最大程度对数据进行保护,以减少数据丢失。
75.在本发明实施例中,存储服务器还用于管理各个与存储服务器连接的图像采集设备。示例性的,存储服务器记录各图像采集设备的属性信息,比如各图像采集设备的设备编号、各图像采集设备产生的各路原始流媒体数据码流的通道号等。存储服务器还用于根据所记录的原始流媒体数据码流的通道号,为各路原始流媒体数据码流分配存储地址。
76.存储器将原始数据码流数据存储时产生的元数据存储至存储管理磁盘中。其中,该元数据为存储的流媒体数据码流的属性信息,元数据可以包括存储服务器为各路原始流媒体数据码流分配的存储路径、已存储的各路原始流媒体数据码流的名称、大小以及各路原始流媒体数据码流的通道号等等属性信息。
77.基于此,可根据元数据从磁盘阵列中获取已存储的原始流媒体数据码流。比如,对元数据所的记录内容进行索引,确定出存储该通道号的原始流媒体数据码流对应的存储路径,并从该存储路径中获取该通道号的原始流媒体数据码流,作为目标码流。
78.在s140中,存储服务器可通过推流的方式,将获取到的目标码流发送给流媒体服务器。或者存储服务器在获取到目标码流后,向流媒体服务器发送告知消息,以告知流媒体服务器通过拉流的方式,从存储服务器处获取目标码流。
79.在s150中,流媒体服务器在收到目标码流后,可将原始流媒体数据码流进行转码处理,然后根据转码后的流媒体数据,生成播放地址信息,并将该播放地址信息发送给监控平台。以使得监控平台将该播放地址发送给客户端,最终使得客户端根据该播放地址获取所需的流媒体数据。
80.在上述步骤s130的基础上,本发明实施例所提供的流媒体数据分发方法,还可以包括如下步骤:
81.存储服务器为图像采集设备发送的原始流媒体数据码流分配通信地址以及磁盘存储地址;并将该图像采集设备发送的原始流媒体数据码流存储至磁盘阵列内的目标磁盘中。
82.当图像采集设备接入,产生原始流媒体数据码流时,存储服务器需要为该图像采集设备所采集的原始流媒体数据码流分配通信地址信息以及磁盘存储地址,以便该图像采集设备根据所提供的通信地址信息与磁盘阵列中的磁盘构建通信连接。其中,通信地址信息包括:通信双方的通信地址与端口,在图像采集设备向目标磁盘发送原始流媒体数据码流时,图像采集设备为通信发送方,目标磁盘为通信接收方。磁盘存储地址为目标磁盘中用于存储原始流媒体数据码流的存储路径,例如,第一目标磁盘的磁盘存储地址为d:storage/,则表明该第一目标磁盘的d盘“d:storage/”路径下的空间用于存储原始流媒体数据码流。
83.示例性的,存储服务器记录有各图像采集设备与磁盘阵列中各磁盘之间的通信地址端口映射表,存储服务器可根据该通信地址端口映射表,为图像采集设备分配用于存储该图像采集设备所采集的原始流媒体数据码流的磁盘。在一种可能的实施例中,存储服务器中记录有各图像采集设备与磁盘阵列中的各磁盘之间的rtsp通信地址端口映射表,存储服务器通过查找该rtsp通信地址端口映射表,为新接入的图像采集设备分配rtsp通信地址信息、端口信息。存储服务器可根据磁盘阵列中各磁盘的存储空间余量,为新接入的图像采集设备分配目标磁盘,并告知所分配的目标磁盘该新接入的图像采集设备的rtsp通信地址信息、端口信息。与此同时,存储服务器将所分配的目标磁盘用于存储原始流媒体数据码流的存储地址告知给新接入的图像采集设备。以便所分配的目标磁盘可根据该rtsp通信地址信息、端口信息与该图像采集设备构建通信连接,以实现将该图像采集设备所采集的原始流媒体数据码流存储至磁盘存储地址信息对应的存储空间中。也即目标磁盘的通信地址与存储服务器所分配的接收方的通信地址相同,并且目标磁盘的存储地址与存储服务器分配的磁盘存储地址相同。
84.采用本发明实施例,可构建各路图像采集设备与磁盘阵列中各磁盘之间的通信连接,在图像采集设备产生原始流媒体数据码流时,直接根据存储服务器分配的通信地址以及磁盘存储地址,将原始流媒体数据码流存储至磁盘阵列内的各磁盘中。存储服务器负责管理存储,并不参与实际原始流媒体数据码流的存储,使得存储服务器能够拥有足够的处理资源管理原始流媒体数据码流的存储,能够有效保障原始流媒体数据码流的存储可靠性。
85.本发明提供的一种实施例,第一流媒体请求指令携带有流媒体数据通道号,流媒体服务器从第一流媒体请求指令中能够解析出所携带的流媒体数据通道号后,根据该流媒体数据通道号生成携带流媒体数据通道号的第二流媒体数据请求指令,并向存储服务器发送该第二流媒体数据请求指令,以向存储服务器告知客户端所请求的流媒体数据的流媒体数据通道号。其中,第二流媒体数据请求指令可以利用区别于第一流媒体数据请求指令所采用的传输协议进行传输。比如,采用实时传输协议(real time streaming protocol,rtsp)传输该第二流媒体数据请求指令,能够实时向存储服务发送客户端所请求的流媒体数据对应的通道号。
86.由于存储服务器记录了各路原始流媒体数据码流的属性信息、通信地址,以及存储各路原始流媒体数据码流的磁盘阵列内的各磁盘的通信地址、磁盘存储地址信息之间的映射关系,其中各路原始流媒体数据码流的属性信息包括原始流媒体数据码流的通道号。故,存储服务器在接收到流媒体服务器发送的第二流媒体数据请求指令后,便可根据第二流媒体数据请求指令携带的流媒体数据通道号,查询所记录的映射关系后,确定出通道号与该流媒体数据通道号相同的原始流媒体数据码流在磁盘阵列中的具体位置,进而根据该具体位置对目标原始流媒体数据码流进行读取。
87.采用本发明实施例,存储服务器可根据流媒体服务器发送的第二流媒体数据请求指令,实时获知客户端所请求的流媒体数据的通道号,然后根据该通道号从磁盘阵列中,确定出通道号与该客户端所请求的通道号相同的原始流媒体数据码流,作为目标码流。
88.由于不同客户端的解码器各异,所能支持解码的流媒体数据格式也各不相同。本发明提供的一种可能实施例,流媒体服务器在获取存储服务器发送的目标流媒数据码流
后,需要将目标码流的格式进行转换,转换为预设流媒体数据格式。示例性的,可根据客户端所支持的解码流媒体数据格式,对目标码流进行转码。示例性的,流媒体服务器接收到来自于监控平台发送的第一流媒体数据请求指令中,会携带该流媒体数据格式,用于告知流媒体服务器按照所携带的流媒体数据格式进行转码。比如,第一流媒体数据请求指令中携带的流媒体数据格式信息表示该客户端所请求的流媒体数据的格式应为flv(flash video,一种流媒体数据格式),则流媒体服务器将目标码流转换为flv格式后,得到flv的流媒体数据。
89.为了便于客户端能够简单、快速地接收到所请求的流媒体数据,本发明所提供的实施例中,流媒体服务器为转码后的流媒体数据码流生成播放地址信息,例如,直播地址信息、点播地址信息。流媒体服务器将其生成的播放地址信息发送给监控平台,监控平台再将该播放地址信息发送给客户端,客户端可直接访问该播放地址信息获取转码后的流媒体数据。
90.在本发明实施例中,流媒体服务器数量可以为一个或者多个,若流媒体服务器数量为两个或两个以上时,为了提高流媒体服务器对大型流媒体数据处理能力,本发明实施例中,可以采用带负载均衡的分布式部署方案,对各流媒体服务器进行管理。具体为,若当前流媒体服务器接收到待处理流媒体数据任务时,优先判断自身当前负载,若自身当前的负载超出预设负载阈值,则可判定当前负载过高,需通过负载均衡的方式,向其他流媒体服务器转发该待处理流媒体数据任务。
91.具体地,可通过为所有流媒体服务器设置一个数据库,使用该数据库记录各流媒体服务器在运行过程中所产生的管理数据,比如记录各流媒体服务器的处理资源占用情况、各流媒体服务器的存储资源占用情况、各流媒体服务器的线程使用情况以及各流媒体服务器接收到的流媒体数据请求指令数量等等。流媒体服务器可根据数据库中所记录的管理数据,判断自身的负载状况是否过载。
92.存在一种可能的情形,当前存在大量客户端或者网络终端在对某一流媒体进行访问时,容易导致该流媒体服务器负载无法应对较大压力的访问请求。此时,为了确保该流媒体服务器不因访问压力过大而导致流媒体数据分发效率较低,本发明实施例为各流媒体服务器设置了邻居均衡列表,用于记录各流媒体服务器负载占用情况。该邻居均衡列表可以设置在数据库中,也可以设置在流媒体服务器内部。
93.若某一流媒体服务器自身当前的负载超出预设负载阈值,该流媒体服务器可根据邻居均衡列表,确定出处于同一局域网内,或者处于同一物理空间内距离最近的,并且负载占用情况较小的流媒体服务器作为目标流媒体服务器,由该负载较高的流媒体服务器通过任务转发指令,将待处理流媒体数据任务转发给目标流媒体服务器,以使得负载占用情况较小的目标流媒体服务器对该待处理流媒体数据任务进行处理。其中,任务转发指令可以为:
94.[task,ip,conns(push,pull,play)],其中,task为待处理流媒体数据任务信息,比如待处理直播流媒体数据。ip为目标流媒体服务器的通信地址。conns()为待处理流媒体数据任务的负载信息,push表示推流,pull表示拉流,play表示播放(包括直播、点播)。
[0095]
采用本发明实施例,由于客户端可直接根据播放地址访问流媒体服务器获取所请求的流媒体数据,监控平台仅需转发播放地址信息,所需转发的数据量较少,能够有效节约
监控平台的处理资源,以及节约该监控平台与流媒体服务器以及客户端之间的通信带宽。
[0096]
本发明提供的流媒体数据分发方法中,监控平台包括智能处理模块,该智能处理模块用于对原始流媒体数据码流进行智能分析,以得到智能分析结果。智能处理模块可以为具有智能分析能力的芯片,也可以为具备智能分析能力元件组成的硬件模块,本发明不作具体限定。
[0097]
本发明实施例中,智能分析可以为人脸识别、车辆识别、安全警告识别等等,所得到的智能信息结果中携带有一种或多种标记信息。例如,智能处理模块对原始流媒体数据码流进行人脸识别、车辆识别、安全警告识别后,所得到的流媒体数据码流中将携带人脸标记、车辆标记以及安全警告标记等一种或多种标记信息。
[0098]
客户端向监控平台发送的流媒体数据请求还可以用于表示:客户端所需的流媒体数据是智能分析后的流媒体数据流。该流媒体数据请求可以包括:所请求的流媒体数据类型为智能分析流媒体数据,所请求的智能分析流媒体数据的格式、所请求的智能分析流媒体数据的通道号、智能分析流媒体数据的操作方式是拉流/推流等内容。
[0099]
智能处理模块根据该流媒体数据请求,生成第三流媒体数据请求指令,并将该第三流媒体数据请求指令发送给存储服务器,以通知存储服务器客户端所请求的流媒体数据的相关信息。其中,第三流媒体数据请求指令可利用rtsp(real time streaming protocol)实时传输协议进行传输,以实时向存储服务发送客户端所请求的流媒体数据的相关信息。
[0100]
存储服务器在接收到来自智能处理模块发送的第三流媒体数据请求指令后,可根据该第三流媒体数据请求指令中携带的内容,从磁盘中获取目标码流,具体获取目标码流的方式与上述步骤s130中获取目标码流的方式相同,此处不再赘述。
[0101]
存储服务器可通过推流的方式,将获取到的目标码流发送给智能处理模块。或者,存储服务器在获取到目标码流后,向智能处理模块发送告知消息,以告知智能处理模块通过拉流的方式,从存储服务器处获取目标码流。
[0102]
智能处理模块对所接收到的目标码流进行语音识别、人脸识别、车辆识别等智能分析,获得携带一种或多种标记的流媒体数据流,该携带标记的智能分析流媒体数据流即为智能处理模块产生的智能分析结果。
[0103]
采用本发明实施例,对于需要进行智能分析的流媒体数据,智能处理模块可直接通过第三流媒体数据请求指令从存储服务器中获取目标码流,而不再需要经过流媒体服务器获取目标码流,并且流媒体服务器无需开辟额外的资源对流媒体数据进行智能分析,可有效减少流媒体服务器的开销。
[0104]
在本发明实施例中,智能处理模块将智能分析结果发送至流媒体服务器,流媒体服务器通过将智能分析结果的格式转换为预设流媒体数据格式后,将转码后的智能分析结果上传至目标对象存储设备。其中,智能分析结果上传至目标对象存储设备时,将产生元数据,该元数据包括已存储智能分析流媒体数据的属性信息,比如已存储智能分析流媒体数据的名称、大小、存储路径等属性信息。智能处理模块可以通过推流的方式,向流媒体服务器发送智能分析流媒体数据。也可以是,流媒体服务器通过拉流的方式,从智能处理模块处获取智能分析流媒体数据。
[0105]
在本发明实施例中,目标对象存储设备可以用于存储智能分析流媒体数据和存储
智能分析流媒体数据时产生的元数据。目标对象存储设备还可以用于为智能分析流媒体数据生成共享链接,并将该共享链接发送给流媒体服务器,流媒体服务器将该共享链接转发至监控平台,最终以使得客户端根据该共享链接下载智能分析流媒体数据。其中,共享链接为一个可支持客户端通过网络访问的方式打开或者下载智能分析流媒体数据的地址,该地址用于指示出智能分析流媒体数据的具体存储位置。示例性的,若共享链接为一个url(uniform resource locator)地址,客户端可直接通过浏览器输入该url地址,便可打开或者下载该url所指示存储位置下存储的智能分析流媒体数据。
[0106]
在本发明实施例中,目标对象存储设备可以为独立于存储服务器的一个服务器,目标对象存储设备也可以是存储服务器中的一个存储模块,或者目标对象存储设备为存储服务器专门为智能分析结果在磁盘阵列内分配的一个或多个磁盘。具体的确定目标对象存储设备方法,由本领域技术人员根据实际需求进行选择,本发明不作具体限定。
[0107]
目标对象存储设备在接收到智能分析流媒体数据后,可将智能分析流媒体数据的内容与智能分析流媒体数据的元数据进行分离存储。即可使用不同的存储磁盘或者存储单元分别存储智能分析流媒体数据本身与智能分析流媒体数据的属性信息。如此,在读取智能分析流媒体数据时,通过先访问存储智能分析流媒体数据的元数据的存储磁盘或者存储单元,获取智能分析流媒体数据具体的存储路径,然后根据所获取的存储路径对存储智能分析流媒体数据内容的存储磁盘或者存储单元进行检索,获取该存储路径下存储的智能分析流媒体数据。
[0108]
在本发明实施例中,智能处理模块中采用预设的智能分析模型对原始流媒体数据码流进行智能分析,该预设的智能分析模型可以为语音识别模型、人脸识别模型、车辆识别模型等根据实际需求设置的模型。在本发明实施例中,智能处理模块可直接通过第三流媒体数据请求指令从存储服务器处获取原始流媒体数据码流,将所获取的原始流媒体数据码流作为训练数据,对预设的智能分析模型进行训练。智能处理模块还可以通过从流媒体服务器处获取共享链接,根据所获取的共享链接从目标对象存储设备中获取智能分析流媒体数据。将所获取的智能分析流媒体数据作为训练数据,对预设的智能分析模型进行训练,以实现对该预设智能分析模型进行训练迭代。
[0109]
采用本发明实施例,可由流媒体服务器将智能处理模块处理得到的智能分析流媒体数据进行转码,并上传至目标对象存储设备。再由目标对象存储设备为转码后的智能分析流媒体数据生成共享链接,并将该共享链接经过流媒体服务器以及监控平台转发至客户端,以便客户端根据该共享链接,直接从目标对象存储设备中获取转码后的智能分析流媒体数据。可有效减少智能分析流媒体数据对流媒体服务器计算资源、存储资源的消耗,进而能够使得流媒体服务器能够更好地服务于流媒体数据的转码、推流、拉流等处理操作,有效提高流媒体数据分发的效率。
[0110]
相应于上述方法实施例,本发明实施例还提供了一种流媒体数据分发系统。如图2所示,本发明实施例所提供的流媒体数据分发系统,可以包括:
[0111]
流媒体服务器210,用于接收监控平台240发送的第一流媒体数据请求指令,并根据第一流媒体数据请求指令,向存储服务器220发送第二流媒体数据请求指令。其中,第一流媒体数据请求指令为监控平台240响应于客户端的流媒体数据请求生成的指令消息,第一流媒体数据请求指令与第二流媒体数据请求指令所请求的原始流媒体数据码流相同。
[0112]
存储服务器220,用于从磁盘阵列230中获取第二流媒体数据请求指令所请求的原始流媒体数据码流,作为目标码流,并将目标码流发送至流媒体服务器210。
[0113]
磁盘阵列230,用于在存储服务器220的管理下,存储图像采集设备采集的原始流媒体数据码流。
[0114]
监控平台240,用于响应于客户端的流媒体数据请求指令消息,生成第一流媒体数据请求指令。
[0115]
流媒体服务器210,还用于对目标码流进行处理,并向监控平台240发送播放地址信息,以使得监控平台240向客户端发送该播放地址,以使得客户端根据该播放地址信息获取处理后的目标码流。
[0116]
在一种可能的实施例中,存储服务器220,还用于为图像采集设备发送的原始流媒体数据码流分配通信地址以及磁盘存储地址;将原始流媒体数据码流存储至磁盘阵列230内的目标磁盘中。其中,目标磁盘的通信地址与存储服务器220分配的接收方的通信地址相同,且目标磁盘的存储地址与磁盘存储地址相同。
[0117]
在一种可能的实施例中,第一流媒体数据请求指令携带有流媒体数据通道号,流媒体服务器210,用于根据该流媒体数据通道号,生成携带流媒体数据通道号的第二流媒体数据请求指令,向存储服务器220发送该第二流媒体数据请求指令。
[0118]
存储服务器220还用于从磁盘阵列230中获取与该流媒体数据通道号相对应的原始流媒体数据码流。
[0119]
在一种可能的实施例中,流媒体服务器210,还用于将目标码流的格式转换为预设流媒体数据格式,获取转码后的流媒体数据码流;根据转码后的流媒体数据码流,生成用于获取转码后的流媒体数据码流的播放地址信息。
[0120]
在一种可能的实施例中,监控平台240包括智能处理模块,存储服务器220用于根据智能处理模块发送的第三流媒体数据请求指令,从磁盘阵列230中获取目标码流,将该目标码流发送至智能处理模块。智能处理模块,用于对该目标码流进行智能分析,获取智能分析结果。
[0121]
在一种可能的实施例中,该流媒体数据分发系统中还包括目标对象存储设备以及数据库。其中,数据库用于存储流媒体服务器210运行过程中产生的管理数据。智能处理模块,用于将智能分析结果发送给流媒体服务器210,流媒体服务器210还用于对该智能分析结果进行转码,生成转码后的智能分析结果,并将该转码后的智能分析结果上传给目标对象存储设备,由该目标对象存储设备根据该转码后的智能分析结果,生成共享链接。目标对象存储设备将该共享链接发送至流媒体服务器210,由该流媒体服务器210将共享链接转发至监控平台240,以使得客户端能够根据该共享链接获取转码后的智能分析结果。
[0122]
为了更清楚的对本发明提供的流媒体数据分发方法进行说明,下面将结合具体的应用场景,对本发明所提供的流媒体数据分发方法的原理进行说明,参见图3,包括:
[0123]
客户端、监控平台、流媒体服务器、存储服务器、目标对象存储设备、数据库、磁盘阵列、图像采集设备,其中监控平台中包含智能处理模块。其中:
[0124]
客户端可以为web客户端,也可以为移动终端,具体形式本发明不作具体限定。
[0125]
监控平台,用于响应于客户端的流媒体数据请求指令消息,向流媒体服务器发送第一流媒体数据请求指令。其中,第一流媒体数据请求指令以http协议进行传输。
[0126]
流媒体服务器,用于接收到第一流媒体数据请求指令后,根据第一流媒体数据请求指令携带内容,生成第二流媒体数据请求指令,以从存储服务器获取原始流媒体数据码流。具体生成第二流媒体数据请求指令以及从存储服务器中获取原始流媒体数据码流部分内容,可参见前述步骤s120、s130记载内容,此处不再一一赘述。
[0127]
存储服务器,用于对磁盘阵列进行管理,还用于对接入的图像采集设备进行管理。存储服务器用于响应于流媒体服务器发送的第二流媒体数据请求指令,向流媒体服务器推流,或者由流媒体服务器从存储服务器处拉流。其中,原始流媒体数据码流可以采用rtsp协议进行传输。具体磁盘阵列管理、图像采集设备管理部分内容参见前述步骤s120记载内容,此处不再一一赘述。
[0128]
目标对象存储设备,用于存储流媒体服务器上传的转码后的智能分析结果,并生成共享链接,以便监控平台、客户端根据共享链接下载转码后的智能分析结果。具体生成共享链接部分内容可参见前述目标对象存储设备相关内容,此处不再一一赘述。
[0129]
智能处理模块,用于从存储服务器处获取原始流媒体数据码流,并对原始流媒体数据码流进行智能分析,以获取智能分析结果。具体获取原始流媒体数据码流的方式,以及对原始流媒体数据进行智能分析的步骤可参见前述智能处理模块相关记载内容,此处不再一一赘述。
[0130]
数据库,用于记录存储流媒体服务器在运行过程中产生的管理数据。具体管理数据内容可参见前述步骤s150中记载有关数据库部分的内容,此处不再一一赘述。
[0131]
磁盘阵列,用于在存储服务器的管理下,存储图像采集设备发送而来的原始流媒体数据码流。具体磁盘阵列规划方式,以及具体存储内容分配方式可参见前述步骤s130记载内容,此处不再一一赘述。
[0132]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
[0133]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在
包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0134]
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0135]
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1