信号推流方法和装置与流程

文档序号:30579991发布日期:2022-06-29 11:38阅读:207来源:国知局
信号推流方法和装置与流程

1.本发明涉及数据传输领域,特别涉及一种信号推流方法和装置。


背景技术:

2.在直播活动中,经常面临着信号中断,线路故障,信号被干扰等异常情况,导致现场的信号不能及时传送达直播中心,从而影响直播安全播出。目前在业内,一般采用多条物理链路上传到直播中心,然后在直播中心使用导播软件人工切换信源来实现安全播出,该实现方式,需要在延时比较长的直播场景中才能使用,因为人工切换的效率较低,反应不够及时。


技术实现要素:

3.鉴于上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的信号推流方法和装置。
4.第一方面,一种信号推流方法,包括:
5.获得直播端发送的推流请求,其中,所述推流请求中携带有多个直播流的推流链接,每个所述直播流均对应为同一场直播的相关视频;
6.对所述推流请求进行推流鉴权验证;
7.若推流鉴权验证通过,则根据所述推流请求,生成相应的直播源对象,其中,所述直播源对象中缓存有所述多个直播流的画面组gop;
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.直播源对象生成单元,用于若推流鉴权验证通过,则根据所述推流请求,生成相应的直播源对象,其中,所述直播源对象中缓存有所述多个直播流的画面组gop;
44.播放鉴权单元,用于当获得播放端针对所述同一场直播所发送的播放请求时,对所述播放请求进行播放鉴权验证;
45.订阅者对象生成单元,用于若所述播放鉴权验证通过,则生成相应的直播流订阅者对象;
46.连接单元、用于将所述直播流订阅者对象与所述直播源对象关联连接,从而向所述播放端传输相应的直播流。
47.第三方面,一种计算机可读存储介质,其上存储有程序,所述程序被处理器执行时实现上述任一项所述的信号推流方法。
48.第四方面,一种电子设备,所述电子设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述任一项所述的信号推流方法。
49.借由上述技术方案,本发明提供的信号推流方法和装置,可以通过获得直播端发送的推流请求,其中,所述推流请求中携带有多个直播流的推流链接,每个所述直播流均对应为同一场直播的相关视频;对所述推流请求进行推流鉴权验证;若推流鉴权验证通过,则根据所述推流请求,生成相应的直播源对象,其中,所述直播源对象中缓存有所述多个直播流的画面组gop;当获得播放端针对所述同一场直播所发送的播放请求时,对所述播放请求进行播放鉴权验证;若所述播放鉴权验证通过,则生成相应的直播流订阅者对象;将所述直播流订阅者对象与所述直播源对象关联连接,从而向所述播放端传输相应的直播流。由此可以看出,本发明可以在获得播放请求后,自动建立连接,无需人工参与,从而实现自动切换传输相应的直播流,系统效率较高,反应较快。
50.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够
更明显易懂,以下特举本发明的具体实施方式。
附图说明
51.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
52.图1示出了本发明提供的第一种信号推流方法的流程图;
53.图2示出了本发明提供的第二种信号推流方法的流程图;
54.图3示出了本发明提供的一种信号推流装置的结构示意图;
55.图4示出了本发明提供的一种电子设备的结构示意图。
具体实施方式
56.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
57.如图1所示,本发明提供了一种信号推流方法,包括:s100、s200、s300、s400、s500和s600;
58.s100、获得直播端发送的推流请求,其中,所述推流请求中携带有多个直播流的推流链接,每个所述直播流均对应为同一场直播的相关视频;
59.可选的,本发明所说的直播端指的是主播所使用的直播设备,也可以理解为直播源。直播端作为直播流的初始源头,可以向中心源站节点发送推流请求,以便于将直播流推送至中心源站节点。由中心源站节点统一调度,将各直播流暴露给相应的播放段,以便于播放段对直播流进行相应的拉流操作。
60.可选的,在实际场景中,针对具体一场直播活动,可以由多个直播设备同时直播,或者由多个拍摄设备从不同视角进行拍摄直播。即,针对同一场直播,可以有相应的多个直播流,不同直播流对应不同直播设备或者拍摄设备,但多个直播流可以对应多个直播流,本发明对此不做限制。
61.可选的,不同直播设备或者拍摄设备针对同一场直播的视频可以理解为本发明所说的相关视频。
62.可选的,本发明通过推流链接向中心源站节点推送直播流,所以推流请求中可以携带有相关视频的推流链接,以便于向中心源站节点请求建立推流链接,一个相关视频的直播流可以对应一个推流链接。
63.可选的,在直播端向中心源站节点发送推流请求之前,直播端可以对同一场直播的相关视频的各直播流设置相同的标签名。在发送推流请求时,可以将标签名的直播流推送给同一个中心源站节点,以便于中心源站节点根据标签名对各直播流进行调度,避免直播信号中断。例如,结合图1所示的实施方式,在某些可选的实施方式中,在所述s100之前,所述方法还包括:步骤1.1和步骤1.2;
64.步骤1.1、获得所述直播端针对所述同一场直播所发送的流标签获取请求;
65.步骤1.2、根据预先建立的匹配规则,返回相应的标签名,以使得所述直播端针对所述同一场直播的多个直播流设置相同的标签名。
66.可选的,标签名可以是以字母开头,包括大小字母,数字和下划线等,长度不超过265字符长度的字符串。匹配规则可以是正则匹配规则,也可以指定其他匹配算法。例如,采用前缀正则匹配方法,匹配标签名的前缀,前缀正则匹配所使用的匹配文本可以包括应用名称和直播流名称,本发明对此不做限制。
67.s200、对所述推流请求进行推流鉴权验证;
68.可选的,为了提高本发明的安全性,及时发现非法请求,本发明可以对推流请求进行推流鉴权验证,对于非法请求,本发明可以拒绝响应。本发明对于推流鉴权验证的过程不做限制。例如,结合图1所示的实施方式,在某些可选的实施方式中,所述推流请求携带有推流请求参数和预先使用加密算法计算得到的加密签名值;
69.所述s200,包括:步骤2.1、步骤2.2、步骤2.3和步骤2.4;
70.步骤2.1、使用相应的解密算法,对所述推流请求参数进行计算,从而得到相应的解密签名值,其中,所述解密算法与所述加密算法相对应;
71.可选的,本发明对于加密算法和解密算法不做限制,任何可行的方式均属于本发明的保护范围。例如,对于加密算法,本发明可以采用hmac(hash-based message authentication code,哈希运算消息认证码)-sha1(安全哈希算法)算法计算得到哈希值,然后使用base64编码转换工具将计算得到的哈希值转换成相应加密签名值,加密签名值可以理解为字符串签名值。
72.相应的,解密算法可以采用一样的计算方式,即先采用hmac-sha1对推流请求携带的推流请求参数进行计算得到相应的哈希值,然后采用base64编码转换工具将计算得到的哈希值转换成相应解密签名值。后续可以通过比较解密签名值和加密签名值是否一致,确定推流请求参数是否在传输过程中被篡改。
73.步骤2.2、判断所述解密签名值和所述加密签名值是否一致,若一致,则执行步骤2.3,否则执行步骤4.4;
74.步骤2.3、确定推流鉴权验证通过;
75.步骤2.4、确定推流鉴权验证未通过。
76.可选的,若解密签名值和加密签名值一致,则说明推流请求在传输过程中未被篡改,则可以确定推流鉴权验证通过;若解密签名值和加密签名值不一致,则说明推流请求在传输过程中被篡改,则可以确定推流鉴权验证未通过,本发明对此不做限制。
77.可选的,本发明对于推流请求参数所涵盖的具体内容不做限制。例如,结合上一个实施方式,在某些可选的实施方式中,所述推流请求参数包括过期日期、直播流名称、应用标识、版本号和标签名参数;
78.所述步骤2.1,包括:步骤3.1;
79.步骤3.1、使用所述解密算法,对所述过期日期、所述直播流名称、所述应用标识、所述版本号和所述标签名参数进行计算,从而得到所述解密签名值;
80.可选的,本发明的直播端可以使用用户表示对应的key值拼接过期日期、直播流名称和版本号组成签名字符串,然后采用hmac-sha1算法对签名字符串进行计算得打相应的哈希值,最后使用base64编码转化工具将计算得到的哈希值转换为解密签名值。
81.所述步骤2.2、步骤23和步骤2.4,依次包括:步骤3.2、步骤3.3和步骤3.4;
82.步骤3.2、判断所述解密签名值和所述加密签名值是否一致和判断当前是否已到达所述过期日期,若所述解密签名值和所述加密签名值一致且当前未到达所述过期日期,则执行步骤5.3,否则执行步骤5.4;
83.步骤3.3、确定推流鉴权验证通过;
84.步骤3.4、确定推流鉴权验证未通过。
85.可选的,过期日期表征的是该推流请求的有效截止日期,若中心站源节点接收到该推流请求的日期为过期日期,则说明该推流请求已失效,可以不响应该推流请求。即,只有当解密签名值和加密签名值一致且当前未过期日期时,才能确定推流鉴权验证通过。
86.s300、若推流鉴权验证通过,则根据所述推流请求,生成相应的直播源对象;
87.其中,所述直播源对象中缓存有所述多个直播流的画面组gop(group ofpictures);
88.可选的,直播源对象是中心源站节点的逻辑概念,用于描述一路直播流的源,包含直播流名称和编解码参数(视频编码参数和音频编码参数)并缓存流完整的gop,本发明对此不做限制。
89.可选的,画面组gop属于本领域的公知概念,本文对此不做过多描述,具体请参见本领域的相关说明。播放端可以根据gop解码出完整的一组画面,从而播放直播视频,本发明对此不做限制。
90.可选的,本发明对于生成直播源对象的过程不做限制。例如,
91.结合上一个实施方式,在某些可选的实施方式中,所述s300,包括:
92.若推流鉴权验证通过,则根据所述推流请求中携带的应用标识和直播流名称,生成所述直播源对象,其中,所述直播源对象中还缓存有相应的编码关键参数,所述直播流名称与所述直播流一一对应,所述直播源对象与所述直播流名称一一对应。
93.可选的,应用标识表征的是一个直播应用名,比如活动直播用/live/app2来标识,常规直播用/live/app1来标识。
94.可选的,编码关键参数指的是在音视频编码中,指定视频的编码格式(h.264,h.265,vp8等)、视频的宽和高(分辨率)、帧率和码率等;音频编码参数有音频编码格式(aac,opus,mp3等)、采样率和声道数等。
95.可选的,结合上一个实施方式,在某些可选的实施方式中,在所述s300之后,所述方法还包括:步骤4.1和步骤4.2;
96.步骤4.1、将所述直播源对象与预设的路由器对象列表进行关联,其中,所述流路由器对象列表记录有至少一个路由器对象的信息;
97.步骤4.2、根据所述推流请求中携带的应用标识、标签名参数和直播流名称,构建与所述流路由器对象列表中记录的信息对应的路由器对象,其中,所述路由器对象对应相同标签名的多个所述直播流。
98.可选的,路由器对象可以实现直播流的路由功能,即路由器对象可以根据需要选择向不同的直播源对象申请直播流,并吐出直播流给播放端。因此,路由器对象可以记录播放请求映射到哪一路直播,一般而言,播放请求中携带的直播流名称的参数映射到具体一路直播流,当触发直播流切换时,映射其他同标签名的直播流,本发明对此不做限制。
99.s400、当获得播放端针对所述同一场直播所发送的播放请求时,对所述播放请求进行播放鉴权验证;
100.可选的,中心源站节点可以接收到播放端所发送的播放请求,该播放请求可以理解为拉取直播流的请求(也称拉流请求)。播放请求中可以携带有直播流名称,以表明直播端需要拉取哪一路的直播流,本发明对此不做限制。当然,本发明对于播放请求所携带的参数或者信息不做具体限制,任何可行的方式均属于本发明的保护范围。
101.可选的,为了提高安全性,本发明可以对播放请求进行播放鉴权验证,具体可以参见前述对于推流鉴权验证的说明,本发明对此不做过多描述。
102.s500、若所述播放鉴权验证通过,则生成相应的直播流订阅者对象;
103.可选的,若播放鉴权验证通过,则说明播放请求不是非法请求,所以可以生成相应的直播流订阅者对象,以便于后续向播放端传输相应的直播流。若播放鉴权验证未通过,则说明播放请求是非法请求,为了安全考虑,本发明可以拒绝响应该播放请求,并进行相应的告警,本发明对此不做限制。
104.可选的,直播流订阅者对象是本领域的逻辑概念,可以实现中继服务,将具体直播流中继传输给播放端,本发明对此不做限制。
105.s600、将所述直播流订阅者对象与所述直播源对象关联连接,从而向所述播放端传输相应的直播流。
106.可选的,直播流经过直播源对象和直播流订阅者对象中继传输给播放端,播放端在接收到直播流后可以进行解码播放相应的直播视频,本发明对此不做限制。
107.可选的,在实际中,本发明还可以构建其它对象,由其它对象与直播源对象和直播流订阅者对象共同中继传输相应的直播流。例如,结合上一个实施方式,在某些可选的实施方式中,所述s600,包括:步骤5.1、步骤5.2和步骤5.3;
108.步骤5.1、根据所述播放请求中携带的应用标识和直播流名称,确定是否预先建立有相应的直播流连接对象;
109.可选的,直播流连接对象属于本领域的逻辑概念,服务器接收一个拉流请求,直播流连接对象代表这个拉流请求以及对应的网络连接,实现与拉流端的数据传输。
110.可选的,若预先建立有相应的直播流连接对象,则后续可以直接使用该直播流连接对象,将直播源对象和直播流订阅者对象关联连接;若未预先建立有相应的直播流连接对象,则需要先建立相应的直播流连接对象,在通过建立的直播流连接对象将直播源对象和直播流订阅者对象关联连接,本发明对此不做限制。
111.步骤5.2、若未建立有所述直播流连接对象,则根据所述播放请求中携带的应用标识和直播流名称,创建所述直播流连接对象;
112.步骤5.3、在创建所述直播流连接对象之后或者在确定预先建立有所述直播流连接对象之后,将所述直播流连接对象与所述路由器对象关联连接,并将所述直播源对象与所述路由器对象关联连接,并将所述直播流连接对象与所述直播流订阅者对象关联连接,从而依次通过所述直播源对象、所述路由器对象和所述直播流连接对象向所述播放端传输相应的直播流。
113.可选的,直播源对象、路由器对象和直播流连接对象各自执行相应的功能,从而实现将直播流从直播端传输至播放端,其中,包括直播端向中心站源节点推送直播流的过程
和播放端从中心站源节点拉取直播流的过程,本发明对此不做限制。
114.结合第二个实施方式,在某些可选的实施方式中,在所述s600之后,所述方法还包括:步骤2.1、步骤2.2和步骤2.3;
115.步骤2.1、获得所述路由器对象针对当前正在传输的直播流的监控结果;
116.可选的,如前所述,针对同一场直播可以有多路直播流推送至中心站源节点,但是对于播放端而言,在具体某一个时刻一般只播放其中一路直播流的视频,而不会同时播放多路直播流的视频。所以,路由器对象可以监控当前正在传输的直播流。例如,路由器对象可以定期监测上游直播源对象对于直播流的实时传输状态,预设1秒左右的阈值,如果发现某个直播流持续中断超过1秒钟,则将该直播流中断的状态进行上报,本发明对此不做限制。
117.步骤2.2、若所述监控结果为:当前正在传输的直播流处于中断状态,则查询确定与所述处于中断状态的直播流的标签名相同的其它直播流;
118.可选的,如前所述,中心站源节点缓存有同一场直播的多路直播流,当确定其中正在传输的某一路直播流中断时,则可以切换传输同一场直播的其它直播流。即,查询获得与所述处于中断状态的直播流的标签名相同的其它直播流,标签名相同的直播流为同一场直播的不同路直播流,本发明对此不做限制。
119.可选的,本发明可以将相同标签名的直播流建立映射关系并持久化保存至本地数据库,以便于在需要时查询确定相同标签名的直播流。
120.步骤2.3、将所述其它直播流对应的其它直播源对象与所述直播流订阅者对象关联连接,从而通过所述其它直播源对象向所述播放端传输相应的直播流。
121.可选的,直播源对象与直播流一一对应,若需要传输其它直播流,则将相应的直播源对象与直播流订阅者对象关联连接,以便于播放端从相应的直播源对象拉取相应的直播流,本发明对此不做限制。
122.结合上一个实施方式,在某些可选的实施方式中,所述方法还包括:步骤3.1和步骤3.2;
123.步骤3.1、获得外部的直播流切换指令,其中,所述直播流切换指令携带有目标直播流的信息;
124.可选的,本发明除了在路由器对象监控发现直播流中断后切换传输其它直播流,还可以在接收到外部的直播流切换指令后,切换传输其它直播流,所以本发明可以获得外部的直播流切换指令。
125.步骤3.2、根据所述目标直播流的信息,控制与所述目标直播流对应的直播源对象与所述直播流订阅者对象关联连接,从而向所述播放端传输所述目标直播流。
126.可选的,本发明在初始化,可以为不同直播流均设置相应的权重,并在第一次传输时,选择权重最大的直播流进行传输。后续在直播的过程中,可以根据各个直播流的状态,不断调整各个直播流的权重,并根据调整后的权重确定该选择哪个直播流进行传输,本发明对此不做限制。
127.例如,当检测到某个直播流中断时,则可以将该直播流的权重调整为0,当检测到某个直播流异常或者抖动时,可以降低该直播流的权重或者直接调整为默认值,本发明对此不做限制。
128.可选的,本发明可以部署多个中心站源节点,当某个中心站源节点出现故障导致不可用时,可以将该中心站源节点(后续称为:迁出中心站源节点)的直播流迁移至其他中心站源节点,以确保直播流可以持续稳定传输。在迁移直播流时,可以先查询预先建立的调度表,从而确定接收直播流的中心站源节点(后续称为:迁入中心站源节点)。在确定迁入中心站源节点后,先切断迁出中心站源节点与直播端的推流连接;然后直播端重新发送推流请求,且是向迁入中心站源节点发送推流请求,从而向迁入中心站源节点推送需要迁移的直播流,进而实现将迁出中心站源节点的直播流迁移至迁入中心站源节点,本发明对此不做限制。
129.可选的,为了进一步清楚描述本发明的方案,结合上述各实施方式,本发明提供了如图2所示的可选实施方式。其中,直播流沿着图2所示的方向,依次流向直播源对象、路由器对象、直播流连接对象和直播流订阅者对象,最终又播放端从直播流订阅者对象拉流获得相应的直播流,并播放直播流对应直播视频。
130.从图2所示的实施方式中,不难看出,不同直播端可以同时进行推流,即不同直播端可以同时经由不同的直播源对象向路由器对象推送针对同一场直播的不同直播流。但在具体某个时刻该传输哪个直播流,由路由器对象根据需要进行统一调度。
131.如图3所示,本发明提供了一种信号推流装置,包括:推流请求获得单元100、推流鉴权单元200、直播源对象生成单元300、播放鉴权单元400、订阅者对象生成单元500和连接单元600;
132.推流请求获得单元100,用于获得直播端发送的推流请求,其中,所述推流请求中携带有多个直播流的推流链接,每个所述直播流均对应为同一场直播的相关视频;
133.推流鉴权单元200,用于对所述推流请求进行推流鉴权验证;
134.直播源对象生成单元300,用于若推流鉴权验证通过,则根据所述推流请求,生成相应的直播源对象,其中,所述直播源对象中缓存有所述多个直播流的画面组gop;
135.播放鉴权单元400,用于当获得播放端针对所述同一场直播所发送的播放请求时,对所述播放请求进行播放鉴权验证;
136.订阅者对象生成单元500,用于若所述播放鉴权验证通过,则生成相应的直播流订阅者对象;
137.连接单元600,用于将所述直播流订阅者对象与所述直播源对象关联连接,从而向所述播放端传输相应的直播流。
138.结合图3所示的实施方式,在某些可选的实施方式中,所述装置还包括:标签请求获取单元和标签发送单元;
139.标签请求获取单元,用于在获得直播端发送的推流请求之前,获得所述直播端针对所述同一场直播所发送的流标签获取请求;
140.标签发送单元,用于根据预先建立的匹配规则,返回相应的标签名,以使得所述直播端针对所述同一场直播的多个直播流设置相同的标签名。
141.结合图3所示的实施方式,在某些可选的实施方式中,所述推流鉴权单元200,包括:解密值计算单元、签名值判断单元、验证通过单元和验证未通过单元;
142.解密值计算单元,用于使用相应的解密算法,对推流请求参数进行计算,从而得到相应的解密签名值,其中,所述推流请求携带有推流请求参数和预先使用加密算法计算得
到的加密签名值,所述解密算法与所述加密算法相对应;
143.签名值判断单元,用于判断所述解密签名值和所述加密签名值是否一致,若一致,则触发验证通过单元,否则触发验证未通过单元;
144.验证通过单元,用于确定推流鉴权验证通过;
145.验证未通过单元,用于确定推流鉴权验证未通过。
146.结合上一个实施方式,在某些可选的实施方式中,所述解密值计算单元,包括:解密值计算子单元;
147.解密值计算子单元,用于使用所述解密算法,对其它推流请求参数进行计算,从而得到所述解密签名值,其中,所述推流请求参数包括过期日期、直播流名称、应用标识、版本号和标签名参数;
148.所述签名值判断单元、验证通过单元和验证未通过单元,依次包括:签名值判断子单元、验证通过子单元和验证未通过子单元;
149.签名值判断子单元,用于判断所述解密签名值和所述加密签名值是否一致和判断当前是否已到达所述过期日期,若所述解密签名值和所述加密签名值一致且当前未到达所述过期日期,则触发验证通过子单元,否则触发验证未通过子单元;
150.验证通过子单元,用于确定推流鉴权验证通过;
151.验证未通过子单元,用于确定推流鉴权验证未通过。
152.结合上一个实施方式,在某些可选的实施方式中,所述直播源对象生成单元300,包括:直播源对象生成子单元;
153.直播源对象生成子单元,用于若推流鉴权验证通过,则根据所述推流请求中携带的应用标识和直播流名称,生成所述直播源对象,其中,所述直播源对象中还缓存有相应的编码关键参数,所述直播流名称与所述直播流一一对应,所述直播源对象与所述直播流名称一一对应。
154.结合上一个实施方式,在某些可选的实施方式中,所述装置还包括:列表关联单元和路由器对象构建单元;
155.列表关联单元,用于在所述若推流鉴权验证通过,则根据所述推流请求,生成相应的直播源对象之后,将所述直播源对象与预设的路由器对象列表进行关联,其中,所述流路由器对象列表记录有至少一个路由器对象的信息;
156.路由器对象构建单元,用于根据所述推流请求中携带的应用标识、标签名参数和直播流名称,构建与所述流路由器对象列表中记录的信息对应的路由器对象,其中,所述路由器对象对应相同标签名的多个所述直播流。
157.结合上一个实施方式,在某些可选的实施方式中,所述连接单元600,包括:连接对象判断单元、连接对象创建单元和对象关联单元;
158.连接对象判断单元,用于根据所述播放请求中携带的应用标识和直播流名称,确定是否预先建立有相应的直播流连接对象;
159.连接对象创建单元,用于若未建立有所述直播流连接对象,则根据所述播放请求中携带的应用标识和直播流名称,创建所述直播流连接对象;
160.对象关联单元,用于在创建所述直播流连接对象之后或者在确定预先建立有所述直播流连接对象之后,将所述直播流连接对象与所述路由器对象关联连接,并将所述直播
源对象与所述路由器对象关联连接,并将所述直播流连接对象与所述直播流订阅者对象关联连接,从而依次通过所述直播源对象、所述路由器对象和所述直播流连接对象向所述播放端传输相应的直播流。
161.结合第二个实施方式,在某些可选的实施方式中,所述装置还包括:监控结果获得单元、其它流确定单元和其它对象关联单元;
162.监控结果获得单元,用于在所述将所述直播流订阅者对象与所述直播源对象关联连接之后,获得所述路由器对象针对当前正在传输的直播流的监控结果;
163.其它流确定单元,用于若所述监控结果为:当前正在传输的直播流处于中断状态,则查询确定与所述处于中断状态的直播流的标签名相同的其它直播流;
164.其它对象关联单元,用于将所述其它直播流对应的其它直播源对象与所述直播流订阅者对象关联连接,从而通过所述其它直播源对象向所述播放端传输相应的直播流。
165.结合上一个实施方式,在某些可选的实施方式中,所述装置还包括:切换指令获得单元和对象切换连接单元;
166.切换指令获得单元,用于获得外部的直播流切换指令,其中,所述直播流切换指令携带有目标直播流的信息;
167.对象切换连接单元,用于根据所述目标直播流的信息,控制与所述目标直播流对应的直播源对象与所述直播流订阅者对象关联连接,从而向所述播放端传输所述目标直播流。
168.本发明提供了一种计算机可读存储介质,其上存储有程序,所述程序被处理器执行时实现上述任一项所述的信号推流方法。
169.如图4所示,本发明提供了一种电子设备70,所述电子设备70包括至少一个处理器701、以及与所述处理器701连接的至少一个存储器702、总线703;其中,所述处理器701、所述存储器702通过所述总线703完成相互间的通信;所述处理器701用于调用所述存储器702中的程序指令,以执行上述任一项所述的信号推流方法。
170.在本技术中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
171.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
172.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一
致的最宽的范围。
173.以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1