防盗链方法、装置及系统与流程

文档序号:18982180发布日期:2019-10-29 03:53阅读:274来源:国知局
防盗链方法、装置及系统与流程

本发明涉及互联网直播技术领域,特别是涉及一种防盗链方法、装置及系统。



背景技术:

随着互联网技术以及多媒体技术的快速发展,出现了越来越多的网络直播平台,网络直播平台提供了各种各样的网络直播服务,例如,游戏直播、娱乐直播或比赛直播等。用户可根据网络直播平台的直播流统一资源定位符(uniformresourcelocator,url)地址,从内容分发网络(contentdeliverynetwork,cdn)系统的边缘节点中获取网络直播平台中的直播流,并由网络直播平台的播放器根据直播流向用户播放直播视频。

然而,随着互联网技术的快速的发展,网络直播平台的直播视频提供方不得不面临一个挑战,即盗链。盗链是指非法用户通过一定的技术手段,破解网络直播平台的直播流url地址,然后通过第三方的播放器利用盗取的直播流url地址从cdn系统的边缘节点获取直播视频,即非法用户盗取直播视频提供方所提供的直播流url地址后,绕过直播视频提供方的播放器,利用自身的播放器从直播视频提供方的cdn系统的边缘节点获取直播视频后,用自身的播放器播放直播视频的行为。因此,非法用户的盗链行为增加了网络直播平台的带宽成本和服务器资源,给直播视频提供方带来了严重的经济损失。



技术实现要素:

本发明所要解决的技术问题是提供一种防盗链方法,通过该方法,将直播流以分片数据的形式进行发送,在每次播放器获取分片数据时,都要对直播地址进行防盗认证,防止非法用户通过盗链获取直播内容,减少带宽成本,降低直播视频提供方的经济损失。

本发明还提供了一种防盗链装置,用以保证上述方法在实际中的实现及应用。

一种防盗链方法,所述方法应用于边缘节点,所述方法包括:

当接收到播放器发送的直播片段请求时,确定与所述直播片段请求对应的待直播片段,并获取所述直播片段请求中包含的直播信息及目标直播地址;

判断所述直播信息中是否包含与所述直播片段请求对应的分片参数;

若所述直播信息中包含与所述直播片段请求对应的分片参数,则确定所述播放器并非首次向所述边缘节点发送的与所述目标直播地址对应的直播片段请求,并获取所述目标直播地址中包含的目标认证码、地址过期时间、目标密钥版本号及直播文件名;

依据所述分片参数、目标认证码、地址过期时间、目标密钥版本号及直播文件名,对所述目标直播地址进行防盗认证;

当通过对所述目标直播地址的防盗认证时,获取所述分片参数中所携带的片段号;

获取与所述片段号相匹配的当前分片数据,所述当前分片数据为所述边缘节点实时读取预先设置的直播源站中的直播流,并依据所述直播流中所携带的分片信息,将所述直播流进行分片后获得的分片数据,所述直播流为所述待直播片段对应的直播流;

基于所述片段号,判断所述当前分片数据是否为所述直播流的最后一个分片数据;

若所述当前分片数据并非所述直播流的最后一个分片数据,则在所述当前分片数据中嵌入目标分片参数,并将携带目标分片参数的当前分片数据发送至所述播放器,触发所述播放器播放与所述当前分片数据对应的当前直播片段,并依据所述目标分片参数向所述边缘节点发送与下一直播片段对应的直播片段请求,所述目标分片参数为下一分片数据的分片参数;

若所述当前分片数据为所述直播流的最后一个分片数据,则向所述播放器发送所述当前分片数据,触发所述播放器播放与所述当前分片数据对应的当前直播片段,以使所述播放器在完成播放所述当前直播片段后,结束直播播放。

上述的方法,可选的,所述依据所述分片参数、目标认证码、地址过期时间、目标密钥版本号及直播文件名,对所述目标直播地址进行防盗认证,包括:

确定与所述直播片段请求对应的请求时间,并判断所述请求时间是否超出所述地址过期时间;

若所述请求时间未超出所述地址过期时间,则向预先设置的鉴权管理服务器发送与所述目标密钥版本号对应的密钥请求消息;

当接收到所述鉴权管理服务器依据所述密钥请求消息反馈的与所述目标密钥版本号对应的目标密钥组时,依据所述直播文件名及所述分片参数中的片段号,确定与所述目标密钥组对应的目标加密方法;

应用所述目标加密方法,对所述目标密钥版本号、片段号、直播文件名及地址过期时间进行加密,生成当前认证码;

将所述目标认证码与所述当前认证码进行匹配,判断所述目标认证码与所述当前认证码是否一致;

若所述目标认证码与所述当前认证码一致,则通过对所述目标直播地址的防盗认证。

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

若所述直播信息中不包含与所述直播片段请求对应的分片参数,则确定所述播放器首次向所述边缘节点发送的与所述目标直播地址对应的直播片段请求;

解析所述目标直播地址,获得所述目标直播地址中包含的目标认证码、地址过期时间、目标密钥版本号及直播文件名;

依据所述目标认证码、地址过期时间、目标密钥版本号及直播文件名,对所述目标直播地址进行防盗认证;

当通过对所述目标直播地址的防盗认证时,实时读取预先设置的直播源站中与所述待直播片段对应的直播流,及与所述直播流对应的直播画面组gop数据;

将所述gop数据发送至所述播放器,触发所述播放器依据所述gop数据播放与所述直播流对应的直播画面;

获取所述直播流中包含的分片信息,并依据所述分片信息对所述直播流进行分片处理,获得多个分片数据;

将各个所述分片数据按照与所述直播流对应的播放顺序进行标号,并将已标号的并携带下一分片参数的第一个分片数据发送至所述播放器,触发所述播放器对所述第一个分片数据进行解析,获得当前直播片段进行直播播放,并依据所述下一分片参数再次请求所述边缘节点获取下一分片数据。

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

实时检测所述边缘节点中已生成的与所述直播流对应的各个分片数据的数量;

当所述边缘节点中与所述直播流对应的各个分片参数的数量超过预先设置的存储数量时,将生成时间最早的分片数据删除,以使所述边缘节点中与所述直播流对应的分片数据的数量不超过所述存储数量。

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

当未通过对所述目标直播地址的防盗认证时,中断向所述播放器发送与所述片段号对应的分片数据。

一种防盗链装置,包括:

第一获取单元,用于当接收到播放器发送的直播片段请求时,确定与所述直播片段请求对应的待直播片段,并获取所述直播片段请求中包含的直播信息及目标直播地址;

第一判断单元,用于判断所述直播信息中是否包含与所述直播片段请求对应的分片参数;

第一确定单元,用于若所述直播信息中包含与所述直播片段请求对应的分片参数,则确定所述播放器并非首次向所述边缘节点发送的与所述目标直播地址对应的直播片段请求,并获取所述目标直播地址中包含的目标认证码、地址过期时间、目标密钥版本号及直播文件名;

认证单元,用于依据所述分片参数、目标认证码、地址过期时间、目标密钥版本号及直播文件名,对所述目标直播地址进行防盗认证;

第二获取单元,用于当通过对所述目标直播地址的防盗认证时,获取所述分片参数中所携带的片段号;

第三获取单元,用于获取与所述片段号相匹配的当前分片数据,所述当前分片数据为所述边缘节点实时读取预先设置的直播源站中的直播流,并依据所述直播流中所携带的分片信息,将所述直播流进行分片后获得的分片数据,所述直播流为所述待直播片段对应的直播流;

第二判断单元,用于基于所述片段号,判断所述当前分片数据是否为所述直播流的最后一个分片数据;

第一触发单元,用于若所述当前分片数据并非所述直播流的最后一个分片数据,则在所述当前分片数据中嵌入目标分片参数,并将携带目标分片参数的当前分片数据发送至所述播放器,触发所述播放器播放与所述当前分片数据对应的当前直播片段,并依据所述目标分片参数向所述边缘节点发送与下一直播片段对应的直播片段请求,所述目标分片参数为下一分片数据的分片参数;

第二触发单元,用于若所述当前分片数据为所述直播流的最后一个分片数据,则向所述播放器发送所述当前分片数据,触发所述播放器播放与所述当前分片数据对应的当前直播片段,以使所述播放器在完成播放所述当前直播片段后,结束直播播放。

一种防盗链方法,所述方法应用于播放器,所述方法包括:

在每次接收到直播播放触发指令时,获取与所述直播播放触发指令对应的直播信息,并确定与所述直播信息对应的待直播片段;

向预先设置的鉴权管理服务器发送密钥请求,并接收所述鉴权管理服务器依据所述密钥请求反馈的当前密钥组,确定与所述当前密钥组对应的当前密钥版本号;

检测所述播放器是否存在与所述待直播片段对应的直播地址;

当所述播放器不存在与所述待直播片段对应的直播地址时,向预先设置的调度器发送与所述待直播片段对应的地址请求;

当接收到所述调度器依据所述地址请求反馈的当前直播地址时,设置与所述当前直播地址对应的地址过期时间;

解析所述当前直播地址,获得与所述直播信息对应的直播文件名;

依据所述地址过期时间、当前密钥组、直播信息及直播文件名,生成目标认证码,并将所述目标认证码、地址过期时间及当前密钥版本号封装至所述当前直播地址中,获得目标直播地址;

向预先设置的边缘节点发送携带所述目标直播地址及所述直播信息的直播片段请求,触发所述边缘节点依据所述直播信息,及所述目标直播地址中的目标认证码、地址过期时间、直播文件名及当前密钥版本号进行防盗认证;

当接收到所述边缘节点反馈的与所述直播片段请求对应的当前分片数据时,确定该边缘节点通过对所述目标认证码、地址过期时间、直播文件名及当前密钥版本号的防盗认证,并解析所述当前分片数据,获得与所述当前分片数据对应的当前直播片段;

将所述当前直播片段在预先设置的显示页面上进行播放,并在所述当前播放片段的播放过程中,检测所述当前分片数据是否存在目标分片参数,所述目标分片参数为下一分片数据的分片参数;

若所述当前分片数据包含所述目标分片参数,则确定所述当前分片数据为直播播放触发指令,并依据所述目标分片参数生成下一个待直播片段的直播信息,执行所述播放器每次向边缘节点请求获取待播放直播片段的过程;

若所述当前分片数据不包含所述目标分片参数,则在完成所述当前直播片段的播放时,结束直播播放过程。

上述的方法,可选的,所述依据所述地址过期时间、当前密钥组、直播信息及直播文件名,生成目标认证码,包括:

检测所述直播信息中是否包含与所述待直播片段对应的分片参数;

当所述直播信息中不包含与所述待直播片段对应的分片参数时,依据所述直播文件名生成与所述当前密钥组对应的加密方法;

应用所述加密方法对所述直播文件名、密钥组版本号及地址过期时间进行加密,生成目标认证码。

上述的方法,可选的,接收到所述边缘节点反馈的与所述直播片段请求对应的当前分片数据前,还包括:

接收所述边缘节点通过所述防盗认证后返回的与所述待直播片段对应的直播画面组gop数据;

解析所述gop数据,播放与所述gop数据对应的直播画面,并接收所述边缘节点依据所述直播信息返回的分片数据。

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

当所述直播信息中包含与所述待直播片段对应的分片参数时,获取所述分片参数,并解析所述分片参数获得待获取分片数据的片段号;

依据所述直播文件名及所述片段号,确定与所述当前密钥组的当前加密方法;

应用所述当前加密方法,对所述直播文件名、密钥组版本号、片段号及地址过期时间进行加密,生成目标认证码。

上述的方法,可选的,所述检测所述当前分片数据是否存在目标分片参数,包括:

获取所述分片数据中包含的各个分块字段,并在所述当前直播片段的播放过程中,依次解析每个所述分块字段;

当解析至目标分块字段时,检测所述目标分块字段中是否携带与所述目标分片参数对应的片段号,所述目标分块字段为各个所述分块字段中的倒数第二个分块字段;

若所述目标分块字段中携带与所述目标分片参数对应的片段号,则确定所述当前分片数据存在所述目标分片参数;

若所述目标分块字段中不携带与所述目标分片参数对应的片段号,则确定所述当前分片数据不存在所述目标分片参数。

一种防盗链装置,包括:

第四获取单元,用于在每次接收到直播播放触发指令时,获取与所述直播播放触发指令对应的直播信息,并确定与所述直播信息对应的待直播片段;

第一发送单元,用于向预先设置的鉴权管理服务器发送密钥请求,并接收所述鉴权管理服务器依据所述密钥请求反馈的当前密钥组,确定与所述当前密钥组对应的当前密钥版本号;

第一检测单元,用于检测所述播放器是否存在与所述待直播片段对应的直播地址;

第二发送单元,用于当所述播放器不存在与所述待直播片段对应的直播地址时,向预先设置的调度器发送与所述待直播片段对应的地址请求;

设置单元,用于当接收到所述调度器依据所述地址请求反馈的当前直播地址时,设置与所述当前直播地址对应的地址过期时间;

第一解析单元,用于解析所述当前直播地址,获得与所述直播信息对应的直播文件名;

生成单元,用于依据所述地址过期时间、当前密钥组、直播信息及直播文件名,生成目标认证码,并将所述目标认证码、地址过期时间及当前密钥版本号封装至所述当前直播地址中,获得目标直播地址;

第三发送单元,用于向预先设置的边缘节点发送携带所述目标直播地址及所述直播信息的直播片段请求,触发所述边缘节点依据所述直播信息,及所述目标直播地址中的目标认证码、地址过期时间、直播文件名及当前密钥版本号进行防盗认证;

第二解析单元,用于当接收到所述边缘节点反馈与所述直播片段请求对应的当前分片数据时,确定该边缘节点通过对所述目标认证码、地址过期时间、直播文件名及当前密钥版本号的防盗认证,并解析所述当前分片数据,获得与所述当前分片数据对应的当前直播片段;

第二检测单元,用于将所述当前直播片段在预先设置的显示页面上进行播放,并在所述当前播放片段的播放过程中,检测所述当前分片数据是否存在目标分片参数,所述目标分片参数为下一分片数据的分片参数;

执行单元,用于若所述当前分片数据包含所述目标分片参数,则确定所述当前分片数据为直播播放触发指令,并依据所述目标分片参数生成下一个待直播片段的直播信息,执行所述播放器每次向边缘节点请求获取待播放直播片段的过程;

结束单元,用于若所述当前分片数据不包含所述目标分片参数,则在完成所述当前直播片段的播放时,结束直播播放过程。

一种防盗链系统,包括:

边缘节点、播放器、直播源站、调度器及鉴权管理服务器;

所述边缘节点,用于用于接收所述直播源站发送的直播流,并依据所述直播流中的分片信息,将所述直播流分片成多个分片数据;当所述播放器发送直播片段请求时,执行如上述防盗链的方法;

所述播放器,用于在每次接收到直播播放触发指令时,执行如上述防盗链的方法;

所述直播源站,用于为每一路直播流插入与每一路直播流对应的分片信息,并将已插入分片信息的直播流发送至所述边缘节点;

所述调度器,用于当接收到播放器的地址请求时,根据所述地址请求为所述播放器反馈直播地址;

所述鉴权管理服务器,用于实时生成新的密钥组,通过预先设置的api接口与所述边缘节点及所述播放器连接,以使所述边缘节点及所述播放器通过所述api接口获得密钥组。

与现有技术相比,本发明包括以下优点:

本发明提供一种防盗链方法,通过该方法,由播放器在每次向边缘节点发送直播片段请求前,先根据地址过期时间、当前密钥组、直播信息及直播文件名,生成目标认证码,再将该目标认证码及目标密钥版本号封装到目标直播地址中,边缘节点在接收到播放器发送的携带目标直播地址发送的直播片段请求后,进行防盗认证。由于地址过期时间及目标认证码和目标密钥版本号具有时效性,在每次获取直播片段时都要进行防盗认证,防止非法用户通过盗链方式获取直播内容,减少带宽成本,降低直播视频提供方的经济损失。

附图说明

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

图1为本发明实施例提供的一种防盗链方法的方法流程图;

图2为本发明实施例提供的一种防盗链方法的方法示意图;

图3为本发明实施例提供的一种防盗链方法的又一方法示意图;

图4为本发明实施例提供的一种防盗链装置的装置结构图;

图5为本发明实施例提供的一种防盗链方法的又一方法流程图;

图6为本发明实施例提供的一种防盗链装置的又一装置结构图;

图7为本发明实施例提供的一种防盗链系统的系统结构图。

具体实施方式

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

在本申请中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本发明可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。

本发明实施例提供了一种防盗链方法,该方法可以应用在多种系统平台,其执行主体可以为cdn系统中的边缘节点,所述方法的方法流程图如图1所示,具体包括:

s101:当接收到播放器发送的直播片段请求时,确定与所述直播片段请求对应的待直播片段,并获取所述直播片段请求中包含的直播信息及目标直播地址;

在本发明实施例中,当边缘节点接收到播放器发送的直播片段请求时,确定该播放器所要请求的播放的待直播片段。获取该直播片段请求中包含的直播信息和目标直播地址。其中,该直播信息中包括直播房间号、主播名称、直播类型等。该目标直播地址为获取该待直播片段对应的地址。

s102:判断所述直播信息中是否包含与所述直播片段请求对应的分片参数;

在本发明实施例中,判断该直播信息中是否包含分片参数。即,判断该直播片段请求是否为该播放器第一次向边缘节点发送与该待直播片段对应的直播片段请求。

s103:若所述直播信息中包含与所述直播片段请求对应的分片参数,则确定所述播放器并非首次向所述边缘节点发送的与所述目标直播地址对应的直播片段请求,并获取所述目标直播地址中包含的目标认证码、地址过期时间、目标密钥版本号及直播文件名;

在本发明实施例中,若该直播信息中包含了分片参数,则表明该直播片段请求不是该播放器第一次向边缘节点发送与该待直播片段对应的直播片段请求,即在本次接收到该直播片段请求前,该播放器已发送与该直播流对应的上一直播片段请求,并获取了上一直播片段。同时,获取该目标直播地址中包含的目标认证码、地址过期时间、目标密钥版本号及直播文件名。其中,该目标认证码、地址过期时间及目标密钥版本号已预先封装至该目标直播地址中。

需要说明的是,该地址过期时间为该目标直播地址的过期时间。每一个直播地址都是有时效性,过了与该直播地址对应的地址过期时间,则该边缘节点将不会给播放器反馈直播片段。

s104:依据所述分片参数、目标认证码、地址过期时间、目标密钥版本号及直播文件名,对所述目标直播地址进行防盗认证;

在本发明实施例中,该边缘节点根据分片参数、目标认证码、地址过期时间、目标密钥版本号及直播文件名,对该目标直播地址进行防盗认证,以防止该目标直播地址为非法用户通过非法手段盗取的目标直播地址后,利用非法技术模拟该目标直播地址获取直播片段。

需要说明的是,非法用户如果盗取目标直播地址后,可以根据该目标直播地址模拟一个相似的直播地址,但模拟的直播地址中的目标认证吗、地址过期时间和目标密钥版本号可能会被改变,因此可以通过防盗认证确定是否向播放器反馈直播片段。

s105:当通过对所述目标直播地址的防盗认证时,获取所述分片参数中所携带的片段号;

在本发明实施例中,当该目标直播地址通过该边缘节点的防盗认证,则证明该目标直播地址并非是非法用户通过非法手段盗取的直播地址。此时,该边缘节点获取该分片参数中携带的片段号。

s106:获取与所述片段号相匹配的当前分片数据,所述当前分片数据为所述边缘节点实时读取预先设置的直播源站中的直播流,并依据所述直播流中所携带的分片信息,将所述直播流进行分片后获得的分片数据,所述直播流为所述待直播片段对应的直播流;

在本发明实施例中,当获取到该片段号之后,根据该片段号获取与该片段号相匹配的分片数据。其中,该分片数据为该边缘节点实时读取直播源站发送的直播流,根据该直播流中的分片信息,对该直播流进行分片后获得的分片数据。

需要说明的是,直播源站在接收到每个直播推流端发送的直播流后,为每一个直播流都插入分片信息。该分片信息可以包括与其对应的直播流应该片段序列号、分片后获得的每一个分片参数所对应的直播片段的播放时长。

s107:基于所述片段号,判断所述当前分片数据是否为所述直播流的最后一个分片数据;

在本发明实施例中,根据该片段号,判断所述当前分片数据是否为所述直播流的最后一个分片数据,即判断该片段号是否为该边缘节点为该直播流进行分片后的最后一个分片数据。

s108:若所述当前分片数据并非所述直播流的最后一个分片数据,则在所述当前分片数据中嵌入目标分片参数,并将携带目标分片参数的当前分片数据发送至所述播放器,触发所述播放器播放与所述当前分片数据对应的当前直播片段,并依据所述目标分片参数向所述边缘节点发送与下一直播片段对应的直播片段请求,所述目标分片参数为下一分片数据的分片参数;

在本发明实施例中,若当前分片数据并非直播流的最后一个分片数据,则将下一个分片数据的分片参数嵌入当前分片数据中。即在向播放器发送该当前分片数数据时,该当前分片数据中携带下一分片数据的分片参数。其中,该分片参数中包含下一待获取分片数据的片段号。播放器可根据当前分片数据中的分片参数,确定该直播是否已经结束,若当前分片数据中存在分片参数,则证明还有下一段分片数据,继续向边缘节点请求获取与下一段分片数据对应的直播片段。

需要说明的是,由于直播是实时进行的,边缘节点在需要获取分片数据时,边接收直播流边对该直播流进行分片,同时还需将已分片的分片数据根据直播片段请求发送给播放器。

s109:若所述当前分片数据为所述直播流的最后一个分片数据,则向所述播放器发送所述当前分片数据,触发所述播放器播放与所述当前分片数据对应的当前直播片段,以使所述播放器在完成播放所述当前直播片段后,结束直播播放。

在本发明实施例中,若当前分片数据为直播流的最后一个分片数据,表明该分片数据对应的直播片段为直播流的最后一个直播片段,则向播放器发送当前分片数据。其中,该当前分片数据不包含分片参数。将不包含分片参数的当前分片数据发送至播放器,该播放器可对该当前分片数据播放与该分片数据对应的直播片段,并在播放完该直播片段后,结束直播播放。

本发明实施提供的防盗链方法中,边缘节点在接收到直播片段请求后,解析该直播片段请求中的直播信息,以确定是否存在分片参数。若不存在,则证明该直播片段请求为首次直播片段请求;若存在,则证明该直播片段请求为非首次直播片段请求。当直播信息中存在分片参数时,根据该直播片段请求中的目标直播地址,获取该目标直播地址中包含的目标认证码、地址过期时间、目标密钥版本号及直播文件名。通过目标认证码、地址过期时间、目标密钥版本号、直播文件名及分片参数对该目标直播地址进行防盗认证,以确定是否存在非法用户通过盗用目标直播地址观看直播。若认证通过,则证明当前不存在非法用户通过盗取的目标直播地址由第三方播放器播放直播。边缘节点根据分片参数中包含的片段号,获取与该片段号相匹配的当前分片数据,并判断该分片数据是否为与该直播片段请求对应的直播流的最后一个分片数据。如果不是最后一个分片数据,则在该当前分片数据中嵌入下一个分片数据的分片参数。如果是最后一个分片数据,则不会再在当前分片数据中嵌入分片参数。该边缘节点在将该当前分片数据发送到播放器后,该播放器根据该当前分片数据进行直播片段播放。同时,若该当前分片数据中包含下一个分片数据的分片参数,则播放器可根据该下一个分片数据的分片参数,向边缘节点发送与下一个分片数据对应的直播片段请求。若该当前分片数据不包含下一个分片数据的分片参数,则在该播放器播放完与该当前分片数据对应的直播片段后,结束直播播放。

需要说明的是,播放器在获取到当前分片数据后,根据该当前分片数据中包含的分片参数向该边缘节点发送下一次直播片段请求时,该边缘节点在接收到与下一个分片数据对应的直播片段请求后,执行上述步骤s101~s108的过程。直至当前的分片数据为最后一个分片数据。

还需要说明的是,该边缘节点在向播放器发送该当前分片数据时,采用http分块传输编码httpchunkedencoding的方式向播放器发送分片数据。其中,该分片数据中包含多个分块字段chunk,并在最后一个分块字段last_chunk的前一个chunk的扩展字段chunk_ext中嵌入下一分片参数。播放器边播放与当前分片数据对应的直播片段,边读取各个chunk。

应用本发明实施例提供的方法中,在每次接收到播放器发送的直播片段请求时,对直播片段请求中的目标直播地址进行防盗认证,并在认证通过后给播放器发送与直播片段对应的分片数据,以使播放器每次在需要播放直播片段时,向边缘节点发送直播片段请求,并且每次都要进行防盗认证。由此可保证能够有效的识别出是否存在非法用户进行盗链。保证网络直播平台的直播资源不被盗取,降低带宽成本,防止直播视频提供方的经济受到损失。

可选的,基于上述步骤s104,由边缘节点根据分片参数、目标认证码、地址过期时间、目标密钥版本号及直播文件名进行防盗认证后,具体还包括:

当未通过对所述目标直播地址的防盗认证时,中断向所述播放器发送与所述片段号对应的分片数据。

本发明实施例提供的方法中,若边缘节点对分片参数、目标认证码、地址过期时间、目标密钥版本号及直播文件名进行防盗认证后认证失败,则证明该目标直播地址可能为非法用户在盗取直播地址后,通过第三方播放器发送直播片段请求。此时被盗取的直播地址中的目标认证码、地址过期时间、目标密钥版本号及直播文件名都不匹配或不存在,因此认证将不会通过。且地址过期时间具体时效性,即使被非法用户盗取目标直播地址后,若当前时间超出地址过期时间,非法用户也无法获取直播片段。

本发明实施例提供的方法中,基于上述步骤s104,所述依据所述分片参数、目标认证码、地址过期时间、目标密钥版本号及直播文件名,对所述目标直播地址进行防盗认证的过程如图2所示,具体包括:

s201:确定与所述直播片段请求对应的请求时间,并判断所述请求时间是否超出所述地址过期时间;

在本发明实施例中,在获取到目标认证码、地址过期时间、目标密钥版本号及直播文件名后,先判断当前请求直播片段的请求时间是否过期。即该请求时间是否超出该地址过期时间。例如,当地址过期时间为2019年7月1日12点00分,请求时间为2019年7月1日11点58分时,该请求时间未过期。当请求时间为2019年7月1日12点01分时,该请求时间已过期。

可选的,该目标直播地址的地址过期时间由预先设置的鉴权管理服务器进行设置。鉴权管理服务器可根据播放器请求直播地址的时间,设置地址过期时间。例如,播放器当前请求直播地址的时间为2019年7月1日11点55分,则可以设置地址过期时间为2019年7月1日12点00分。

进一步地,该地址过期时间也可以由播放器在接收到调度器反馈的直播地址后,设置与该直播地址对应的地址过期时间。

s202:若所述请求时间未超出所述地址过期时间,则向预先设置的鉴权管理服务器发送与所述目标密钥版本号对应的密钥请求消息;

在本发明实施例中,若地址过期时间在该请求时间之内,则表明该请求时间未过期,在该目标直播地址的有效时间内。此时,该边缘节点将向鉴权管理服务器发送与该密钥版本号对应的密钥请求消息。

需要说明的是,该鉴权管理服务器中保存多个密钥组,并按照一定的时间周期生成一个密钥组,每一个密钥组都有一个与其对应的密钥版本号。当边缘节点需要向鉴权管理服务器发送密钥请求时,通过与鉴权管理服务器之间连接的api接口发送该密钥请求。

s203:当接收到所述鉴权管理服务器依据所述密钥请求消息反馈的与所述目标密钥版本号对应的目标密钥组时,依据所述直播文件名及所述分片参数中的片段号,确定与所述目标密钥组对应的目标加密方法;

在本发明实施例中,鉴权管理服务器在接收到边缘节点发送的密钥请求消息后,向边缘节点反馈与该密钥请求消息对应的目标密钥组。当边缘节点在接收到该鉴权管理服务器反馈的目标密钥组时,根据直播文件名和分片参数中的片段号,确定与该目标密钥组对应的目标加密方法。

其中,该加密方法可以是哈希计算算法md5、shal加密算法等。

s204:应用所述目标加密方法,对所述目标密钥版本号、片段号、直播文件名及地址过期时间进行加密,生成当前认证码;

在本发明实施例中,在确定与该目标密钥组对应的目标加密方法后,应用该加密方法对目标直播地址中的地址过期时间,以及与目标密钥版本号对应的目标密钥组进行加密,生成当前认证码。

需要说明的是,当前认证码、地址过期时间、目标认证码以及目标密钥版本号都是明文的形式。可选的,所述当前认证码可以是由base64编码方式进行编码获得,应用该加密方法对地址过期时间、直播文件名、片段号和目标密钥版本号进行加密。其中base64编码让加密后目标认证码转换成可打印的文本;

s205:将所述目标认证码与所述当前认证码进行匹配,判断所述目标认证码与所述当前认证码是否一致;

本发明实施例中,由于目标认证码与当前认证码的生成过程一致,因此,将目标认证码与当前认证码进行匹配,判断目标认证码与当前认证码的一致性,可确定该目标直播地址是否是非法用户用来盗取直播资源的非法地址。即,播放器在向边缘节点发送直播片段请求之前,也应用直播文件名与片段号生成加密方法,并将生成的加密方法对直播文件名、目标密钥组和地址过期时间进行加密生成目标认证码。

s206:若所述目标认证码与所述当前认证码一致,则通过对所述目标直播地址的防盗认证。

在本发明实施例中,若该目标认证码与当前认证码一致,则证明该目标直播地址并非为非法用户经过模拟数据接口或从非法途径盗取直播地址后,通过第三方的播放器进行获取直播片段,因此边缘节点通过对目标直播地址的防盗认证。

本发明实施例提供的防盗链方法中,在进行防盗认证的过程中,预先判断与直播片段请求对应的请求时间是否超出目标直播地址的地址过期时间。若请求时间为超出地址过期时间,则证明该目标直播地址还在有效期限内。同时,向鉴权管理服务器发送密钥请求消息,其中该密钥请求消息中包含请求获取的密钥组对应的目标密钥版本号。当鉴权管理服务器接收到密钥请求消息后,从该密钥请求消息中获取该目标密钥版本号,并根据该目标密钥版本号获取预先存储的与该目标密钥版本号相匹配的目标密钥组,并将该目标密钥组发送至边缘节点。边缘节点在接收到鉴权管理服务器发送的目标密钥组后,根据目标直播地址中的直播文件名和分片参数的片段号,确定与该目标密钥组对应的加密方法,并通过该加密方法对目标密钥版本号、片段号、直播文件名及地址过期时间进行加密,生成当前认证码。验证当前认证码与目标认证码是否一致,若一致则防盗认证通过。

需要说明的是,地址过期时间及目标密钥版本号均具有时效性。播放器在每次发送直播片段请求时,地址过期时间及目标密钥版本号与上一次发送的直播片段请求不一定相同,进一步防止盗链者根据盗取的直播地址获取直播资源。

可选的,若目标认证码与当前认证码不一致,则证明该目标直播地址为非法用户通过非法途径获取的直播地址。非法用户在盗取目标直播地址后,在通过第三方播放器请求获取直播片段时,无法获得该直播地址中的直播文件名、目标密钥组等。且由于直播地址都有时效性,一旦过了目标直播地址的地址过期时间,确认该目标直播地址为非法用户用来获取直播片段的直播地址。

进一步地,若边缘节点未获取到所述目标直播地址中包含的目标认证码、地址过期时间、目标密钥版本号及直播文件名中的任意一个,则认为当前存在非法用户利用非法途径获取的直播地址进行获取直播片段。

应用本发明实施例提供的方法,由于非法用户在通过第三方播放器利用盗取的直播地址进行直播片段请求时,无法获得密钥组,即使获取了密钥组,地址过期时间和当前密钥版本号也有时效性,因此非法用户无法利用盗取的直播地址持续请求直播片段。边缘节点通过对地址过期时间及认证码的防盗认证,保证网络直播平台的直播资源不被盗取,降低带宽成本,防止直播视频提供方的经济受到损失。

本发明实施例提供的方法中,在确定所述直播信息中是否包含与所述直播片段请求对应的分片参数后,不包含分片参数的具体过程如图3所示,具体还包括:

s301:若所述直播信息中不包含与所述直播片段请求对应的分片参数,则确定所述播放器首次向所述边缘节点发送的与所述目标直播地址对应的直播片段请求;

在本发明实施例中,在解析直播信息后,若该直播信息中不包含与直播片段请求对应的分片参数时,表明该直播片段请求为首次直播片段请求,即该播放器第一次向边缘节点请求与该直播流对应的直播片段请求。

s302:解析所述目标直播地址,获得所述目标直播地址中包含的目标认证码、地址过期时间、目标密钥版本号及直播文件名;

在本发明实施例中,获取该直播片段请求中包含的目标直播地址,并在对该目标直播地址进行解析后,获得该目标直播地址中所携带的目标认证码、地址过期时间、目标密钥版本号及直播文件名。

需要说明的是,步骤s302与上述步骤s103中获取所述目标直播地址中包含的目标认证码、地址过期时间、目标密钥版本号及直播文件名的过程一致,但步骤s302中的目标直播地址为首次直播片段请求对应的直播地址,而步骤s103中的目标直播地址并非首次直播片段请求对应的直播地址。

s303:依据所述目标认证码、地址过期时间、目标密钥版本号及直播文件名,对所述目标直播地址进行防盗认证;

在本发明实施例中,由于该直播片段请求为首次直播片段请求,且直播信息中不包含分片参数,因此,该边缘节点则根据该目标认证码、地址过期时间、目标密钥版本号及直播文件名,对该目标直播地址进行防盗认证。

需要说明的是,步骤s303的防盗认证过程与上述步骤s104的防盗认证过程相似。其中,上述步骤s104中的防盗认证过程包含了分片参数,而步骤s303的防盗认证过程中不包含分片参数。

s304:当通过对所述目标直播地址的防盗认证时,实时读取预先设置的直播源站中与所述待直播片段对应的直播流,及与所述直播流对应的直播画面组gop数据;

在本发明实施例中,当防盗认证通过时,则读取与该直播片段请求对应的直播流,及最近的一个与该直播流对应的gop数据。其中,该直播流是由直播源站进行下发的,边缘节点在接收到直播流后,根据该直播流更新gop数据。

s305:将所述gop数据发送至所述播放器,触发所述播放器依据所述gop数据播放与所述直播流对应的直播画面;

在本发明实施例中,将与直播流对应的gop数据发送至播放器中,触发播放器根据该画面组进行播放与该直播流对应的直播画面。其中,当边缘节点在接收到直播流时,都会更新与该直播流对应的gop数据。因此,在接收到首次播放请求时,将为播放器发送与该直播流最近更新的gop数据。

s306:获取所述直播流中包含的分片信息,并依据所述分片信息对所述直播流进行分段处理,获得多个分片数据;

在本发明实施例中,根据直播源站下发的直播流,获取该直播流中包含的分片信息。该分片信息是直播源站在接收到直播端发送的每一路直播流时,为每一路直播流都插入与其对应的分片信息。边缘节点根据该直播流中携带的分片信息,将该直播流进行分片,获得多个分片数据。其中,每个分片数据对应一段直播片段。

s307:将各个所述分片数据按照与所述直播流对应的播放顺序进行标号,并将已标号的并携带下一分片参数的第一个分片数据发送至所述播放器,触发所述播放器对所述第一个分片数据进行解析,获得当前直播片段进行直播播放,并依据所述下一分片参数再次请求所述边缘节点获取下一分片数据。

在本发明实施例中,边缘节点将直播流进行分片后,将每个分片数据按照直播流每一个直播片段的播放顺序进行标号,在将第一个分片数据发送播放器时,该第一个分片数据中携带下一分片数据的分片参数。其中,该第一个分片数据是与该首个直播片段对应的第一个分片数据。例如将直播流分成10个分片数据,则标号的顺序则为1~10。此时,边缘节点在将向播放器发送1号分片数据前,将2号分片数据对应的分片参数嵌入1号的分片数据中,在将1号分片数据发送至播放器后,播放器解析1号分片数据时,可在1号分片数据中获取2号分片数据的分片参数,此时该播放器可根据2号分片数据的分片参数,再次请求边缘节点获取与2号分片数据对应的直播片段。

需要说明的是,由于直播是实时进行的过程,当接收到首个直播片段请求时,当前获取到的分片数据对应的分片号不一定是1号。且由边缘节点在向播放器发送分片数据的过程中,是边读取直播流,边分片边向播放器发送分片数据的。

在本发明实施例提供的防盗链方法中,若直播信息中不包含分片参数,即分片参数缺省,则确定播放器所发送的直播片段请求为首次直播片段请求。该首次直播片段请求为播放器第一次请求边缘节点播放与该直播流对应的直播请求。边缘节点根据该直播片段请求中包含的目标直播地址,获取该目标直播地址中包含的目标认证码、地址过期时间、目标密钥版本号及直播文件名。并根据目标认证码、地址过期时间、目标密钥版本号及直播文件名进行防盗认证。其中,该防盗认证的过程为:判断当前请求直播片段的请求时间是否过期。即该请求时间是否超出该地址过期时间。若没有过期,则根据该密钥版本号,向鉴权管理服务器发送与该目标密钥版本号对应的密钥请求。当接收到鉴权管理服务器反馈的与该目标密钥版本号对应的目标密钥组时,边缘节点根据直播文件名,确定与该目标密钥组对应的加密方法,并应用该加密方法对该目标密钥组和地址过期时间进行加密,获得目标认证码,将目标认证码与当前认证码进行匹配,匹配一致则通过防盗认证。在通过防盗认证后,获取当前下发的直播流及与该直播流对应的gop数据。其中,该gop数据为边缘节点接收到直播流后,根据该直播流进行更新的画面组数据。在将gop数据发送至播放器进行播放后,根据直播流中所携带的分片信息,对该直播流进行分片,获得多个分片数据。将每个分片数据进行标号,并将第一个分片数据发送给播放器,触发播放器依据该第一个分片数据播放与该第一个分片数据对应的直播片段,且播放器在播放直播片段时,对该第一个分片数据进行解析,获得下一分片数据的分片参数,此时,播放器可根据下一分片数据的分片参数,请求边缘节点以获得与下一分片数据对应的直播片段。

需要说明的是,当边缘节点在向播放器发送第一个分片数据之后,当接收到播放器根据第一个分片数据中携带的分片参数再次请求获取直播片段时,执行上述步骤s101~s108的过程,此处将不复赘述。

应用本发明实施例提供的方法,当直播信息中不包含分片参数时,也要对该目标直播地址进行防盗认证,保证网络直播平台的直播资源不被盗取,降低带宽成本,防止直播视频提供方的经济受到损失。

本发明实施例提供的方法中,可选的,还包括:

实时检测所述边缘节点中已生成的与所述直播流对应的各个分片数据的数量;

当所述边缘节点中与所述直播流对应的各个分片参数的数量超过预先设置的存储数量时,将生成时间最早的分片数据删除,以使所述边缘节点中与所述直播流对应的分片数据的数量不超过所述存储数量。

本发明实施例提供的方法中,边缘节点在每次读取直播流时,在对该直播流进行分片获得分片数据的同时,还会实时检测边缘节点中当前易产生的与该直播流对应的分片数据数量。当分片数据的数量超过存储数量时,将最早生成的分片数据删除。

需要说明的是,直播片段删除是边缘节点定期行为,默认该边缘节点可以缓存2个片段,在新产生一个片段后,将缓存中最早的片段删除掉。因为观看同一路直播流,该边缘节点同时可以服务多个播放器客户端,只有新的片段产生,才会执行刷新和删除的动作。

上述各个实施例的具体实施过程及其衍生方式,均在本发明的保护范围之内。

与图1所述的方法相对应,本发明实施例还提供了一种防盗链装置,用于对图1中方法的具体实现,本发明实施例提供的防盗链装置可以应用于边缘节点中,其结构示意图如图4所示,具体包括:

第一获取单元401,用于当接收到播放器发送的直播片段请求时,确定与所述直播片段请求对应的待直播片段,并获取所述直播片段请求中包含的直播信息及目标直播地址;

第一判断单元402,用于判断所述直播信息中是否包含与所述直播片段请求对应的分片参数;

第一确定单元403,用于若所述直播信息中包含与所述直播片段请求对应的分片参数,则确定所述播放器并非首次向所述边缘节点发送的与所述目标直播地址对应的直播片段请求,并获取所述目标直播地址中包含的目标认证码、地址过期时间、目标密钥版本号及直播文件名;

认证单元404,用于依据所述分片参数、目标认证码、地址过期时间、目标密钥版本号及直播文件名,对所述目标直播地址进行防盗认证;

第二获取单元405,用于当通过对所述目标直播地址的防盗认证时,获取所述分片参数中所携带的片段号;

第三获取单元406,用于获取与所述片段号相匹配的当前分片数据,所述当前分片数据为所述边缘节点实时读取预先设置的直播源站中的直播流,并依据所述直播流中所携带的分片信息,将所述直播流进行分片后获得的分片数据,所述直播流为所述待直播片段对应的直播流;

第二判断单元407,用于基于所述片段号,判断所述当前分片数据是否为所述直播流的最后一个分片数据;

第一触发单元408,用于若所述当前分片数据并非所述直播流的最后一个分片数据,则在所述当前分片数据中嵌入目标分片参数,并将携带目标分片参数的当前分片数据发送至所述播放器,触发所述播放器播放与所述当前分片数据对应的当前直播片段,并依据所述目标分片参数向所述边缘节点发送与下一直播片段对应的直播片段请求,所述目标分片参数为下一分片数据的分片参数;

第二触发单元409,用于若所述当前分片数据为所述直播流的最后一个分片数据,则向所述播放器发送所述当前分片数据,触发所述播放器播放与所述当前分片数据对应的当前直播片段,以使所述播放器在完成播放所述当前直播片段后,结束直播播放。

以上本发明实施例公开的防盗链装置中的第一获取单元401、第一判断单元402、第一确定单元403、认证单元404、第二获取单元405、第三获取单元406、第二判断单元407、第一触发单元408及第二触发单元409的具体工作过程,可参见本发明上述实施例公开的防盗链方法中的对应内容,这里不再进行赘述。

本发明实施例提供了一种防盗链方法,该方法可以应用在可对直播视频进行播放的播放器中,执行主体为播放器,所述方法的方法流程图如图5所示,具体包括:

s501:在每次接收到直播播放触发指令时,获取当前待播放直播片段的直播信息,并确定与所述直播信息对应的待直播片段;

在本发明实施例中,当播放器在每次接收到直播播放触发指令时,获取当前待播放直播片段的直播信息确定待直播片段。该直播信息包括直播房间号、主播名称、直播类型等。

需要说明的是,该直播播放触发指令可以是用户向该播放器发送的直播播放触发指令,或携带分片参数的分片数据。

s502:向预先设置的鉴权管理服务器发送密钥请求,并接收所述鉴权管理服务器依据所述密钥请求反馈的当前密钥组,确定与所述当前密钥组对应的当前密钥版本号;

在本发明实施例中,当接收到直播播放触发指令后,可向预先设置的鉴权管理服务器发送密钥请求。播放器通过与鉴权管理服务器之间的api接口,接收该鉴权管理服务器当前最新生成的当前密钥组,并确定该当前密钥组中的当前密钥版本号。

需要说明的是,鉴权管理服务器可实时生成一组密钥组,每个密钥组都携带一个密钥版本号。每个密钥组对应的密钥版本号都不同。

s503:检测所述播放器是否存在与所述待直播片段对应的直播地址;

在本发明实施例中,在接收到直播播放触发指令且获得当前密钥组后,检测该播放器中是否存在与该待直播片段对应的直播地址。

s504:当所述播放器不存在与所述待直播片段对应的直播地址时,向预先设置的调度器发送与所述待直播片段对应的地址请求;

在本发明实施例中,当播放器中不存在与该待直播片段对应的直播地址,则向调度器发送地址请求,以使该调度器在接收到该地址请求后,为该待直播片段分配直播地址。

需要说明的是,该当前直播地址可以是播放器在每次接收到直播播放触发指令后,请求调度器生成的直播地址;也可以是播放器在第一次请求调度器生成的直播地址后,将该直播地址进行存储,并在每次接收到直播播放触发指令时获取已存储的直播地址。

s505:当接收到所述调度器依据所述地址请求反馈的当前直播地址时,设置与所述当前直播地址对应的地址过期时间;

在本发明实施例中,当调度器生成的当前直播地址并向播放器反馈,播放器在接收到当前直播地址时,根据该当前直播地址设置地址过期时间。

需要说明的是,该地址过期时间可以是播放器自主生成,也可以鉴权管理服务器生成。该地址过期时间用于保证直播地址的时效性,防止非法用户在盗取该当前直播地址后,应用该当前直播地址获取直播视频提供方的直播内容。

s506:解析所述当前直播地址,获得与所述直播信息对应的直播文件名;

在本发明实施例中,当获取到调度器预先生成的当前直播地址时,解析该当前直播地址,以获得该当前直播地址中的直播文件名。

需要说明的是,该直播文件名为可以为主播的流名,每个主播只有一个唯一的流名。

s507:依据所述地址过期时间、当前密钥组、直播信息及直播文件名,生成目标认证码,并将所述目标认证码、地址过期时间及当前密钥版本号封装至所述当前直播地址中,获得目标直播地址;

在本发明实施例中,根据地址过期时间、当前密钥组、直播信息及直播文件名,生成目标认证码,并将目标认证码、当前密钥版本号封装在当前直播地址中,获得目标直播地址。该目标直播地址中包含该当前直播地址中的地址过期时间以及直播文件名,并携带该目标认证码和当前密钥版本号。

s508:向预先设置的边缘节点发送携带所述目标直播地址及所述直播信息的直播片段请求,触发所述边缘节点依据所述直播信息,及所述目标直播地址中的目标认证码、地址过期时间、直播文件名及当前密钥版本号进行防盗认证;

在本发明实施例中,将该目标直播地址及直播信息封装至直播片段请求中,并向预先设置的边缘节点发送携带目标直播地址的直播片段请求。触发边缘节点根据该直播信息和目标直播地址中的地址过期时间、目标认证码、直播文件名及当前密钥版本号进行防盗认证。

s509:当接收到所述边缘节点反馈的与所述直播片段请求对应的当前分片数据时,确定该边缘节点通过对所述目标认证码、地址过期时间、直播文件名及当前密钥版本号的防盗认证,并解析所述当前分片数据,获得与所述当前分片数据对应的当前直播片段;

在本发明实施例中,当边缘节点对目标认证码、地址过期时间、直播文件名及当前密钥版本号的防盗认证通过时,边缘节点可向该播放器反馈与该直播片段请求对应的当前分片数据。此时,当播放器接收到当前分片数据时,将该分片数据进行解析,获得需要播放的当前直播片段。

s510:将所述当前直播片段在预先设置的显示页面上进行播放,并在所述当前播放片段的播放过程中,检测所述当前分片数据是否存在目标分片参数,所述目标分片参数为下一分片数据的分片参数;

在本发明实施例中,将该当前分片数据对应的直播片段播放在该播放器的显示界面上,并在该播放片段进行播放的过程中,检测该当前分片数据是否存在目标分片参数,即,下一分片数据的分片参数。

需要说明的是,该分片数据是边缘节点以多个分块字段的形式进行发送的,一个分片数据中包含多个分块字段,其中,倒数第二个的分块字段中携带该下一分片数据的分片参数。

s511:若所述当前分片数据包含所述目标分片参数,则确定所述当前分片数据为直播播放触发指令,并依据所述目标分片参数生成下一个待直播片段的直播信息,执行所述播放器每次向边缘节点请求获取待播放直播片段的过程;

在本发明实施例中,若该当前分片数据包含目标分片参数,则确定该当前分片数据为获取下一直播片段的直播播放触发指令,表征在当前直播片段后,还有下一直播片段。该播放器可将该目标分片参数封装至直播信息中,根据该直播信息向边缘节点请求获取下一直播片段,执行与每次请求获取待直播播放片段的过程。

需要说明的是,若当前分片数据中包含分片参数且将该分片参数封装至直播信息后,当播放器播放与该当前分片数据对应的直播片段即将结束时,执行与所述每次请求获取待播放直播片段的过程,即,执行为上述步骤s501~s510的过程。

s512:若所述当前分片数据不包含所述目标分片参数,则在完成所述当前直播片段的播放时,结束直播播放过程。

在本发明实施例中,若当前分片数据中不包含目标分片参数,则证明该当前分片数据对应的当前直播片段为最后一个直播片段。在该当前直播片段播放结束后,结束直播播放的过程。

本发明实施例提供的防盗链方法中,当播放器接收到直播播放触发指令时,获取直播信息,并确定待直播片段。通过预先设置的api接口向鉴权管理服务器发送密钥请求,以获得鉴权管理服务器当前生成的当前密钥组,及该当前密钥组对应的当前版本号。当播放器在获得到调度器反馈的当前直播地址时,设置地址过期时间,并根据该地址过期时间、当前密钥组、直播信息及直播文件名,生成目标认证码。将该目标认证码、地址过期时间和当前密钥版本号封装至当前直播地址当中,获得目标直播地址发送到边缘节点,以使边缘节点根据该直播信息、目标认证码、当前版本号、直播文件名、地址过期时间进行防盗认证。当边缘节点通过防盗认证后,向播放器发送分片数据。播放器在接收到边缘节点发送的当前分片数据后,对该当前分片数据进行解析,获得播放片段进行播放,并在播放的过程中检测该当前分片数据是否包含目标分片参数,若包含,则表明还有下一待直播片段,确定该当前分片数据为下一直播片段的直播播放触发指令,将该目标分片参数封装至直播信息中,根据该直播信息执行上述步骤s501~s510的过程,直至当前分片数据中不包含目标分片参数,结束直播播放过程。

需要说明的是,边缘节点向该播放器发送分片数据时,通过http分块传输编码httpchunkedencoding的方式进行发送与分片数据对应的各个分块字段chunk。由各个分块字段chunk组成分片数据。在确定还存在下一分片数据对应的直播片段时,将下一分片数据的目标分片参数封装至目标分片字段的扩展字段chunk_ext中,在播放器读取完当前分片数据的lastchunk后,根据该目标分片参数获取下一直播片段。该目标分块字段为倒数第二个分片字段。

应用本发明实施例提供的方法,播放器在每次需要向边缘节点发送直播片段请求之前,先将预先获得的目标认证码、地址过期时间、当前密钥版本号封装到携带有直播文件名的直播地址中。由于当前密钥版本号以及地址过期时间具有时效性,因此在每次获取直播片段时,可使边缘节点进行有效的防盗认证,以防止存在非法用户通过非法手段获得的直播地址,非法盗取直播资源,同时减少带宽成本,降低直播视频提供方经济损失。

本发明实施例提供的方法中,基于上述步骤s507中,所述依据所述地址过期时间、当前密钥组、直播信息及直播文件名,生成目标认证码,包括:

检测所述直播信息中是否包含与所述待直播片段对应的分片参数;

当所述直播信息中不包含与所述待直播片段对应的分片参数时,依据所述直播文件名生成与所述当前密钥组对应的加密方法;

应用所述加密方法对所述当前密钥组及地址过期时间进行加密,生成目标认证码。

进一步地,当所述直播信息中包含与所述带直播片段对应的分片参数时,还包括:

当所述直播信息中包含与所述待直播片段对应的分片参数时,获取所述分片参数,并解析所述分片参数获得待获取分片数据的片段号;

依据所述直播文件名及所述片段号,确定与所述当前密钥组的当前加密方法;

应用所述当前加密方法,对所述当前密钥组及地址过期时间进行加密,生成目标认证码。

本发明实施例提供的防盗链方法中,对该直播信息进行检测,确定该直播信息中是否包含分片参数。若不包含,则当前接收到的直播播放触发指令是用户发送的,该待直播片段则为首个直播片段。此时只根据直播文件名确定当前密钥组的加密方法;若包含分片参数,则获取该分片参数。根据该分片参数中的片段号及直播文件名,确定当前密钥组的加密方法。利用该加密方法,对当前密钥组和地址过期时间进行加密生成目标认证码。播放器将该目标认证码封装置至直播地址中,以使边缘节点在接收到该直播地址后,对该目标认证码进行验证,有效地防止非法用户进行盗链。

可选的,接收到所述边缘节点反馈的与所述直播片段请求对应的当前分片数据前,还包括:

接收所述边缘节点通过所述防盗认证后返回的与所述待直播片段对应的直播画面组gop数据;

解析所述gop数据,播放与所述gop数据对应的直播画面,并接收所述边缘节点依据所述直播信息返回的分片数据。

本发明实施例提供的方法中,若待播放直播片段为首个直播片段,且该播放器将携带目标直播地址的直播片段请求发送至边缘节点进行防盗认证通过后,接收该边缘节点反馈的与首个直播片段对应的gop数据。其中该gop数据为边缘节点实时更新的最近的一个画面组数据。播放器根据该画面组数据进行播放与其对应的画面组,并接收边缘节点反馈的分片数据。

在上述实施例中,当直播信息中不包含分片参数时,确定该待直播片段为首个直播片段,该播放器向边缘节点发送直播片段,并播放直播片段的具体过程可以包括如下步骤:

1)当播放器接收到用户发送的直播播放请求时,确定该直播播放请求为直播播放触发指令;获取直播信息,并确定待直播片段;

2)向鉴权管理服务器发送密钥请求,以接收鉴权管理服务器反馈的当前密钥组,并确定该当前密钥组的密钥版本号;

3)向调度器发送地址请求,以接收调度器反馈的当前直播地址,并设置地址过期时间;

4)解析该当前直播地址获得直播文件名,并根据该直播文件名,确定该当前密钥组的加密方法,并应用该加密方法对密钥版本号、直播文件名和地址过期时间进行加密,获得目标认证码;

5)播放器将目标认证码、地址过期时间及当前密钥版本号嵌入当前直播地址,获得目标直播地址;

6)播放器向边缘节点发送携带目标直播地址的直播片段请求;

7)边缘节点获取该直播片段请求中的携带的目标直播地址,并解析该目标直播地址获得地址过期时间、直播文件名、目标认证码和密钥版本号;

8)边缘节点根据播放器发送直播片段请求的请求时间,判断该请求时间是否超出地址过期时间;

9)若未超出,则根据该密钥版本号,从鉴权管理服务器获取与当前密钥版本号对应的当前密钥组;

10)边缘节点根据该直播文件名,确定当前密钥组的当前加密方法,并根据该当前加密方法,对密钥版本号、直播文件名和地址过期时间进行加密,获得当前认证码;

11)将当前认证码和目标认证码进行匹配;

12)若匹配一致,则边缘节点为播放器反馈最近更新的gop数据,并在发送gop数据后发送已嵌入分片参数的分片数据,进入步骤14);

13)若匹配不一致,边缘节点结束服务;

14)播放器在接收到边缘节点发送的gop数据后,解析该gop数据获得画面组,将画面组进行播放;

15)播放器在播放画面组时,接收边缘节点发送的分片数据,解析分片数据获得直播片段进行播放,并检测该分片数据是否包含分片参数;

16)若该分片数据包含分片参数,则该播放器在完成播放该直播片段后,根据该分片参数再次请求边缘节点获取直播片段;

17)若该分片数据不包含分片参数,则该播放器在播放完该直播片段后,结束直播播放过程。

应用本发明实施例提供的方法,播放器将加密获得的目标认证码、当前密钥版本号封装至直播地址中,边缘节点再根据直播地址中已封装的目标认证码和密钥版本号、地址过期时间及直播文件名进行防盗认证,防止非法用户通过盗链的形式获取直播内容,保证减少带宽成本,降低直播视频提供方经济损失。

本发明实施例提供方法中,基于上述步骤s501,所述检测所述当前分片数据是否存在目标分片参数,包括:

获取所述分片数据中包含的各个分块字段,并在所述当前直播片段的播放过程中,依次解析每个所述分块字段;

当解析至目标分块字段时,检测所述目标分块字段中是否携带与所述目标分片参数对应的片段号,所述目标分块字段为各个所述分块字段中的倒数第二个分块字段;

若所述目标分块字段中携带与所述目标分片参数对应的片段号,则确定所述当前分片数据存在所述目标分片参数;

若所述目标分块字段中不携带与所述目标分片参数对应的片段号,则确定所述当前分片数据不存在所述目标分片参数。

本发明实施例提供的方法中,播放器在接收到当前分片数据后,获取该分片数据中的各个分块字段chunk,并在播放当前直播片段的过程中解析各个chunk,在解析到倒数第二个chunk时,检测其是否存在片段号。若存在则确定当前分片数据存在目标分片参数,若不存在片段号则当前分片数据不存储目标分片参数。

在本发明实施例中,若chunk中存在片段号,则确定还存在下一个直播片段,播放器可根据该片段号对应的分片参数,再次请求获取直播片段。并执行如上述步骤s501~s512的过程,以防止在获取直播片段过程中出现非法用户进行盗链,保证减少带宽成本,降低直播视频提供方经济损失。

本发明实施例提供的防盗链方法中,当直播信息中包含分片参数时,确定该待直播片段并非首个直播片段,该播放器向边缘节点发送直播片段,并播放直播片段的具体过程可以包括如下步骤:

1)当播放器获取到上一直播片段对应的上一分片数据中包含的分片参数时,将上一分片数据作为本次请求获取直播片段的直播播放触发指令;

2)获取与该直播播放触发指令对应的直播信息,并确定待直播片段,向鉴权管理服务器发送密钥请求,以接收鉴权管理服务器反馈的当前密钥组,并确定该当前密钥组的密钥版本号;

3)检测该播放器是否存储了与首个直播片段对应的直播地址,若未存储,则向调度器发送地址请求,以接收调度器反馈的当前直播地址,并设置地址过期时间;

4)解析该当前直播地址获得直播文件名,并获取直播信息中的分片参数,根据该直播文件名及分片参数的片段号,确定该当前密钥组的加密方法,并应用该加密方法对密钥版本号、片段号、直播文件名和地址过期时间进行加密,获得目标认证码;

5)播放器将目标认证码、密钥版本号和地址过期时间嵌入当前直播地址,获得目标直播地址;

6)播放器向边缘节点发送携带目标直播地址及分片参数的直播片段请求;

7)边缘节点获取该直播片段请求中的携带的目标直播地址和分片参数,并解析该目标直播地址获得地址过期时间、直播文件名、密钥版本号和地址过期时间;

8)边缘节点根据播放器发送直播片段请求的请求时间,判断该请求时间是否超出地址过期时间;

9)若未超出,则根据该当前密钥版本号,从鉴权管理服务器获取与当前密钥版本号对应的当前密钥组;

10)边缘节点应该该直播文件名和分片参数中携带的片段号,确定当前密钥组的当前加密方法,并根据该当前加密方法,对直播文件名、片段号、密钥组版本号和地址过期时间进行加密,获得当前认证码;

11)将当前认证码和目标认证码进行匹配,匹配一致执行步骤12);匹配不一致执行步骤15);

12)根据分片参数中的片段号,获取与该片段号相匹配的分片数据,并检测该分片数据是否为最后一个分片数据;

13)若否,则将下一分片参数嵌入分片数据后再将分片数据发送至播放器,进入步骤16);

14)若是,则直接将该分片数据发送至播放器,进入步骤16)

15)边缘节点结束服务;

16)播放器在接收到边缘节点发送的分片数据,解析分片数据获得直播片段进行播放,并检测该分片数据是否包含分片参数;

17)若该分片数据包含分片参数,则该播放器在完成播放该直播片段后,再次执行上述步骤1);

18)若该分片数据不包含分片参数,则该播放器在播放完该直播片段后,结束直播播放过程。

需要说明的是,非法用户如果在传输过程中直播地址,或模拟真实用户请求直播片段的过程中篡改直播文件名、片段号、密钥组版本号和地址过期时间这四个字段内容中的任何一个,边缘节点计算得到的认证码必然与播放器生成的认证码不一致。

与图5所述的方法相对应,本发明实施例还提供了一种防盗链装置,用于对图5中方法的具体实现,本发明实施例提供的防盗链装置可以应用与播放直播内容的播放器中,其结构示意图如图6所示,具体包括:

第四获取单元601,用于在每次接收到直播播放触发指令时,获取与所述直播播放触发指令对应的直播信息,并确定与所述直播信息对应的待直播片段;

第一发送单元602,用于向预先设置的鉴权管理服务器发送密钥请求,并接收所述鉴权管理服务器依据所述密钥请求反馈的当前密钥组,确定与所述当前密钥组对应的当前密钥版本号;

第一检测单元603,用于检测所述播放器是否存在与所述待直播片段对应的直播地址;

第二发送单元604,用于当所述播放器不存在与所述待直播片段对应的直播地址时,向预先设置的调度器发送与所述待直播片段对应的地址请求;

设置单元605,用于当接收到所述调度器依据所述地址请求反馈的当前直播地址时,设置与所述当前直播地址对应的地址过期时间;

第一解析单元606,用于解析所述当前直播地址,获得与所述直播信息对应的直播文件名;

生成单元607,用于依据所述地址过期时间、当前密钥组、直播信息及直播文件名,生成目标认证码,并将所述目标认证码、地址过期时间及当前密钥版本号封装至所述当前直播地址中,获得目标直播地址;

第三发送单元608,用于向预先设置的边缘节点发送携带所述目标直播地址及所述直播信息的直播片段请求,触发所述边缘节点依据所述直播信息,及所述目标直播地址中的目标认证码、地址过期时间、直播文件名及当前密钥版本号进行防盗认证;

第二解析单元609,用于当接收到所述边缘节点反馈与所述直播片段请求对应的当前分片数据时,确定该边缘节点通过对所述目标认证码、地址过期时间、直播文件名及当前密钥版本号的防盗认证,并解析所述当前分片数据,获得与所述当前分片数据对应的当前直播片段;

第二检测单元610,用于将所述当前直播片段在预先设置的显示页面上进行播放,并在所述当前播放片段的播放过程中,检测所述当前分片数据是否存在目标分片参数,所述目标分片参数为下一分片数据的分片参数;

执行单元611,用于若所述当前分片数据包含所述目标分片参数,则确定所述当前分片数据为直播播放触发指令,并依据所述目标分片参数生成下一个待直播片段的直播信息,执行所述播放器每次向边缘节点请求获取待播放直播片段的过程;

结束单元612,用于若所述当前分片数据不包含所述目标分片参数,则在完成所述当前直播片段的播放时,结束直播播放过程。

以上本发明实施例公开的防盗链装置中的第四获取单元601、第一发送单元602、第一检测单元603、第二发送单元604、设置单元605、第一解析单元606、生成单元607、第二发送单元608、第二解析单元609、第二检测单元610、执行单元611及结束单元612的具体工作过程,可参见本发明上述实施例公开的应用于播放器的防盗链方法中的对应内容,这里不再进行赘述。

本发明还提供了一种防盗链系统,其系统模块图如图7所示,具体包括:

边缘节点701、播放器702、直播源站703、调度器704及鉴权管理服务器705;

所述边缘节点701,用于接收所述直播源站发送的直播流,并依据所述直播流中的分片信息,将所述直播流分片成多个分片数据;当所述播放器发送直播片段请求时,执行如上述步骤s101~s109的方法;

所述播放器702,用于在每次接收到直播播放触发指令时,执行如上述步骤s501~s512的方法;

所述直播源站703,用于为每一路直播流插入与每一路直播流对应的分片信息,并将已插入分片信息的直播流发送至所述边缘节点;

所述调度器704,用于当接收到播放器的地址请求时,根据所述地址请求为所述播放器反馈直播地址;

所述鉴权管理服务器705,用于实时生成新的密钥组,通过预先设置的api接口与所述边缘节点及所述播放器连接,以使所述边缘节点及所述播放器通过所述api接口获得密钥组。

本发明实施例提供防盗链系统中,由播放器根据从调度器获取直播地址及鉴权管理服务器获取当前密钥组后,根据该直播地址中的地址过期时间、直播文件名、当前密钥组对应的当前密钥版本号生成目标认证码,将目标认证码、地址过期时间封装到直播地址中,以使边缘节点在接收到播放器的直播片段请求时,进行防盗认证。其中,当边缘节点在接收到播放器发送的直播片段请求时,从直播源站获取直播流,并根据直播流中的分片信息,对该直播流进行分片处理,获得各个分片数据。由于直播是实时进行的,因此,该边缘节点边获取直播流,边进行分片处理,同时还向播放器发送分片数据,直至最后一个分片数据结束。

应用本发明实时例提供的系统,由直播源站在直播流中插入分片信息,边缘节点则根据该分片信息进行分片处理。播放器进行一系列的加密处理,边缘节点再进行防盗认证,保证每次在获取直播片段时,有效辨别是否存在非法用户通过盗链获取直播内容,进而起到防盗链的作用。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现。

为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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