一种网络直播推流验证方法及系统与流程

文档序号:13482178阅读:462来源:国知局

本发明涉及网络直播技术领域,更具体地,涉及一种网络直播推流验证方法及系统。



背景技术:

目前,网络直播是利用互联网及流媒体技术进行直播,主播客户端通过采集摄像头的数据,并将数据进行视频编码,将编码的视频流推送到直播平台的cdn(contentdeliverynetwork,内容分发网络服务器)服务器。其它观众则会从cdn服务器拉取视频流进行观看。

对于每个主播在直播平台都会进行注册,从而直播平台会给每一个主播分配一个房间号和一个推流地址,主播直播时产生的视频流则会通过推流地址推送到直播平台cdn服务器。

在实际中,直播平台服务器给主播客户端下发的推流地址很容易被黑客入侵或者泄露,从而导致非主播本人进行直播,可能会直播一些非法内容,损害主播的利益。



技术实现要素:

本发明提供一种克服上述问题或者至少部分地解决上述问题的网络直播推流验证方法及系统,克服了现有技术的网络直播不安全的问题。

根据本发明的第一个方面,提供了一种网络直播推流验证方法,包括:

s1,根据主播客户端的请求,向主播客户端下发推流地址和推流码,其中,所述推流码中包括多个关键字段;

s2,接收主播客户端通过推流地址上报的视频流信息,所述视频流信息中携带有推流码和主播客户端信息;

s3,对主播客户端上报的推流码中的多个关键字段以及主播客户端信息进行校验,当校验通过,则允许主播客户端的推流,否则,拒绝主播客户端的推流。

本发明的有益效果为:主播客户端在向服务器进行直播推流的过程中,服务器会向主播客户端下发推流码,其中,推流码中包括多个关键字段,当主播客户端向服务器推流时,会将推流码以及主播客户端信息一并上报给服务器,服务器会对推流码以及主播客户端信息进行校验,只有校验通过后,才允许主播客户端向服务器进行推流,对网络直播的推流过程进行保护,从而防止黑客或者推流地址被泄漏而导致非主播本人进行直播,从而可能直播一些非法内容,损害主播的利益。

在上述技术方案的基础上,本发明还可以作如下改进。

进一步的,所述推流码中的多个关键字段包括服务器生成推流码的明文时间戳、非对称加密的公钥key值、加密后的服务器节点路径值以及加密后的时间戳。

进一步的,所述步骤s1还包括:

利用非对称加密算法生成对应的公钥key值和私钥key值,并利用公钥key值对服务器生成推流码的明文时间戳进行加密,形成加密后的时间戳;

利用对称加密算法对服务器节点路径值进行加密,形成加密后的服务器节点路径值;

将明文时间戳、非对称加密的公钥key值、加密后的服务器节点路径值以及加密后的时间戳组成推流码,并进行加密后打包下发给主播客户端。

进一步的,所述步骤s2还包括:

主播客户端根据服务器下发的推流码,获取推流码中的明文时间戳、加密后的时间戳以及服务器节点路径值和公钥key值,并获取主播客户端信息,其中,所述主播客户端信息包括主播客户端ip地址、主播客户端令牌token以及主播客户端设备唯一id;

采用公钥key值对明文时间戳、加密后的时间戳以及主播客户端信息加密后,携带于视频流中形成视频流信息,且根据服务器节点路径值,通过推流地址将视频流信息上报给服务器。

进一步的,所述步骤s3还包括:

服务器接收到主播客户端上报的视频流信息,采用与公钥key值对应的私钥key值进行解密,从中得到主播客户端的p地址、主播客户端令牌token、主播客户端设备唯一id、明文时间戳以及加密时间戳。

进一步的,所述步骤s3进一步包括:

分别对主播客户端令牌token、主播客户端ip地址、主播客户端设备唯一id以及明文时间戳和加密时间戳进行验证,若验证均通过,则允许主播客户端向服务器推流,否则,拒绝主播客户端向服务器推流。

进一步的,所述分别对主播客户端令牌token、主播客户端ip地址、主播客户端设备唯一id以及时间戳和加密时间戳进行验证进一步包括:

将主播客户端令牌token与服务器下发给主播客户端的令牌token进行比较,若一致,则验证通过,否则,验证不通过;

利用私钥key值对加密时间戳进行解密,得到解密时间戳,将解密时间戳与明文时间戳进行对比,若一致,则验证通过,否则,验证不通过;

判断主播客户端ip地址与主播向主播平台注册时的ip地址或者与该主播上一次在主播客户端直播时的ip地址是否一致,若一致,则验证通过,否则,进行短信验证,根据短信验证的结果确定此次验证是否通过;

判断主播客户端设备唯一id是否与主播向主播平台注册时的设备唯一id是否一致,若一致,则验证通过,否则,进行短信验证,根据短信验证的结果确定此次验证是否通过。

进一步的,所述步骤s3还包括:

当服务器接收到主播客户端上报的视频流信息时,获取当前时间戳;

将获取的当前时间戳与解密时间戳进行对比,若时间戳差值在预设范围内,则验证通过,否则,验证不通过。

根据本发明的第二方面,还提供了一种网络直播推流验证系统,包括主播客户端和服务器,所述服务器包括下发模块、接收模块和验证模块;

下发模块,用于根据主播客户端的请求,向主播客户端下发推流地址和推流码,其中,所述推流码中包括多个关键字段;

接收模块,用于接收主播客户端通过推流地址上报的视频流信息,所述视频流信息中携带有推流码和主播客户端信息;

验证模块,用于对推流码中的多个关键字段以及主播客户端信息进行校验,当校验通过,则允许主播客户端的推流,否则,拒绝主播客户端的推流。

根据本发明的第三个方面,还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如上网络直播推流验证方法。

附图说明

图1为本发明一个实施例的网络直播推流验证方法流程图;

图2为本发明另一个实施例的网络直播推流验证系统连接框图;

图3为本发明又一个实施例的网络直播推流验证系统整体连接框图;

图4为本发明再一个实施例的网络直播推流验证系统中验证模块的内部连接框图;

图5为本发明又一个实施例的网络直播推流验证方法的设备连接框图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

参见图1,提供了本发明一个实施例的网络直播推流验证方法,包括:s1,根据主播客户端的请求,向主播客户端下发推流地址和推流码,其中,所述推流码中包括多个关键字段;s2,接收主播客户端通过推流地址上报的视频流信息,所述视频流信息中携带有推流码和主播客户端信息;s3,对推流码中的多个关键字段以及主播客户端信息进行校验,当校验通过,则允许主播客户端的推流,否则,拒绝主播客户端的推流。

在网络直播领域,主播客户端通过采集摄像头的数据,并将数据进行视频编码,将编码后的视频流数据推送至直播平台的cdn服务器。在主播客户端向服务器进行推流时,服务器会向主播客户端下发推流地址,主播客户端通过推流地址向服务器进行推流,该推流地址容易被黑客破解或者被泄漏,导致直播的损失。

因此,本实施例提供一套能够防止推流地址被入侵的方法,该方法的主要实现过程为,当主播在直播平台注册成为主播时,主播在直播平台上会进行用户名和密码的注册,包括填入手机号码和身份证实名注册。注册成功后,直播平台会给主播分配一个房间号码,以标示主播以后在此房间内直播。同时,服务器也会向主播分配一个推流地址,标示主播客户端推流到cdn服务器的地址。在主播开始直播时,根据主播客户端的请求,向主播客户端下发推流地址和推流码,其中,推流码中包括多个关键字段,该多个字段用于后续校验。服务器接收主播客户端通过推流地址上报的视频流信息,其中,视频流信息中携带有推流码和主播客户端信息。服务器对推流码中的多个关键字段以及主播客户端信息进行校验,若校验通过,则允许主播客户端向服务器推流,若校验不通过,则拒绝主播客户端向服务器推流。

本实施例设计了一套方案来对网络直播的推流过程进行保护,从而防止黑客或者推流地址被泄漏而导致非主播本人进行直播,从而可能直播一些非法内容,损害主播的利益。

在上述实施例的基础上,本发明的一个实施例中,所述推流码中的多个关键字段包括服务器生成推流码的明文时间戳、非对称加密的公钥key值、加密后的服务器节点路径值以及加密后的时间戳。

其中,服务器向主播客户端下发推流码,推流码中包括多个关键字段,多个关键字段包括服务器生成推流码的明文时间戳、非对称加密的公钥key值、加密后的服务器节点路径值以及加密后的时间戳。

在上述各个实施例的基础上,本发明的另一个实施例中,所述步骤s1还包括:利用非对称加密算法生成对应的公钥key值和私钥key值,并利用公钥key值对服务器生成推流码的明文时间戳进行加密,形成加密后的时间戳;利用对称加密算法对服务器节点路径进行加密,形成加密后的服务器节点路径值;服务器将明文时间戳、非对称加密的公钥key值、加密后的服务器节点路径值以及加密后的时间戳组成推流码,并进行加密后打包下发给主播客户端。

推流码的设计主要是完成主播客户端的合法性校验,是出于安全性的角度设计。其中,推流码中主要包括多个字段,具体如下:

time&key&serverpath&encrypttime;

其中,time字段是服务器生成推流码的明文时间戳,key字段是服务器下发的一个非对称加密的公钥key值,其中,服务器每次生成推流码时,则会生成一对加密秘钥,并将公钥key值下发给主播客户端,次公钥key值,则对应推流码中的key值。使用公钥key值对time字段进行加密,从而生成加密后的时间戳,即encrypttime字段。serverpath字段则是由服务器上具体的cdn节点路径,使用公钥加密后的结果,从而对于此推流码中,其中的服务器cdn节点路径和推流码的时间戳时需要加密的。

在本实施例中,服务器生成推流码的具体过程,由于推流码中包括的字段有明文时间戳、推流key值、加密后的服务器节点路径值以及加密后的时间戳。因此,服务器首先获取生成推流码时的当前时间戳time,随后,服务器会使用非对称加密算法生成一对key,具体为一个公钥key值和一个私钥key值。在本实施例中,非对称加密算法采用rsa算法,根据rsa.createpairkey(secretkey,publickey)来生成一个公钥key值和一个私钥key值,后续数据会采用公钥key值来加密,采用对应的私钥key值来进行解密。

随后,采用公钥来加密明文时间戳,encrypttime=rsa.encrypt(time,publickey),通过调用rsa算法encrypt来使用公钥来对当前时间戳进行加密。推流码中会附带一个加密时间戳是为了防止主播修改时间戳从而绕过后续的校验。

其中,对服务器cdn节点路径进行加密,具体为serverpath=encrypt(path,publickey),其中path则是cdn服务器上的节点路径。然后使用公钥对此节点路径进行加密,形成加密后的cdn节点路径值。在本实施例中,使用对称加密算法对cdn节点路径的加密,具体则可以是tea加密算法或者des加密算法等,主播客户端则会使用同样的对称加密算法来对节点的路径进行解密。

服务器生成上述多个字段后,将明文时间戳、非对称加密的公钥key值、加密后的服务器节点路径值以及加密后的时间戳组成推流码,并将推流码和推流地址进行加密后打包下发给主播客户端。

在上述各个实施例的基础上,本发明的一个实施例中,所述步骤s2还包括:主播客户端根据服务器下发的推流码,获取推流码中的明文时间戳、加密后的时间戳以及服务器节点路径值和公钥key值,并获取主播客户端信息,其中,所述主播客户端信息包括主播客户端ip地址、主播客户端令牌token以及主播客户端设备唯一id;采用公钥key值对明文时间戳、加密后的时间戳以及主播客户端信息加密后,携带于视频流中形成视频流信息,且根据服务器节点路径值,通过推流地址将视频流信息上报给服务器。

服务器将生成的推流码和推流地址下发给主播客户端,主播客户端获取推流码中的明文时间戳、加密后的时间戳、加密的服务器节点路径值以及公钥key值,并获取主播客户端信息。其中,主播客户端信息主要包括主播客户端ip地址、主播客户端令牌token以及主播客户端设备唯一id。主播客户端采用服务器下发的推流码中的公钥key值对服务器下发的明文时间戳、加密后的时间戳以及主播客户端信息进行加密,将加密后的信息携带于视频流中形成视频流信息,通过推流地址将视频流信息推送给服务器上与节点路径值对应的节点。

在上述个实施例的基础上,本发明的另一个实施例中,所述步骤s3进一步包括:分别对主播客户端令牌token、主播客户端ip地址、主播客户端设备唯一id以及明文时间戳和加密时间戳进行验证,若验证均通过,则允许主播客户端向服务器推流,否则,拒绝主播客户端向服务器推流。

主播客户端将视频流信息上报给服务器后,服务器采用对应的私钥进行解密,得到主播客户端信息以及明文时间戳和加密时间戳。服务器分别对主播客户端令牌token、主播客户端ip地址、主播客户端设备唯一id以及明文时间戳和加密时间戳进行校验,若校验均通过,则允许主播客户端向服务器推流,只要其中的一项数据校验失败,则校验通不过,则拒绝主播客户端向服务器推流。

本实施例对服务器下发的推流码以及主播客户端信息进行校验,校验通过,才允许主播客户端向服务器推流,否则,不允许主播客户端向服务器推流,这样就防止了由于推流地址被黑客入侵或者泄露等进行非法的推流,损害主播的利益。

在上述各个实施例的基础上,本发明的另一个实施例中,服务器分别对主播客户端令牌token、主播客户端ip地址、主播客户端设备唯一id以及明文时间戳和加密时间戳进行校验的具体过程为,服务器将主播客户端令牌token与服务器下发给主播客户端令牌token进行比较,若一致,则验证通过,否则,验证不通过。

利用私钥key值对加密时间戳进行解密,得到解密时间戳,将解密时间戳与明文时间戳进行对比,若一致,则验证通过,若明文时间戳和解密时间戳不一致,则表明明文时间戳可能被黑客所修改,黑客很容易修改明文的时间戳,而无法修改加密时间戳。因此,在服务器向主播客户端下发的推流码中既包括明文时间戳,也包括加密时间戳。在主播客户端,黑客能够修改明文时间戳,但是无法修改加密时间戳,因此,主播客户端向服务器上报的加密时间戳是准确的,而上报的明文时间戳有可能是经过修改的,故服务器将主播客户端上报的明文时间戳和加密时间戳进行比较,一致,则表明明文时间戳未被修改,若不一致,则表明明文时间戳已经被篡改了。

判断主播客户端ip地址与主播向主播平台注册时的ip地址或者与该主播上一次在主播客户端直播时的ip地址是否一致,若一致,则验证通过,否则,进行短信验证,根据短信验证的结果确定此次验证是否通过。同理,判断主播客户端的设备唯一id是否与主播客户端向主播平台注册时的设备唯一id是否一致,若一致,则验证通过,否则,进行短信验证,根据短信验证的结果确定此次验证是否通过。即若主播客户端的ip地址与服务器分配给主播客户端的ip地址不一致或者主播客户端设备唯一id与主播客户端向主播平台注册时的设备唯一id不一致,则向主播的移动手机发送短信验证,防止主播推流码盗用直接进行直播,只要接受到主播发送的正确的短信验证才允许进行直播推流。

在上述各个实施例的基础上,本发明的一个实施例中,所述步骤s3还包括:当服务器接收到主播客户端上报的视频流信息时,获取当前时间戳;将获取的当前时间戳与解密时间戳进行对比,若时间戳差值在预设范围内,则验证通过,否则,验证不通过。

在本实施例中,服务器还会将解密时间戳和当前时间戳进行比较,判断两个时间戳的差值是否在预设范围内。具体为,服务器接收到主播客户端上报的视频流信息后,从视频流信息中获取加密时间戳,对加密时间戳采用对应的私钥进行解密,得到解密时间戳。此时服务器还获取当前时间戳,计算当前时间戳和解密时间戳之间的差值,若该差值在预设范围内,比如,该差值在5分钟之内,则允许主播客户端向服务器推流,否则,拒绝主播客户端向服务器推流。此时,主播客户端需要向服务器重新请求新的推流码。

参见图2,提供了本发明另一个实施例的网络直播推流验证系统,包括主播客户端1和服务器2,其中,服务器2包括下发模块21、接收模块22和验证模块23。

下发模块21,用于根据主播客户端的请求,向主播客户端1下发推流地址和推流码,其中,所述推流码中包括多个关键字段。

接收模块22,用于接收主播客户端1通过推流地址上报的视频流信息,所述视频流信息中携带有推流码和主播客户端信息。

验证模块23,用于对推流码中的多个关键字段以及主播客户端信息进行校验,当校验通过,则允许主播客户端1的推流,否则,拒绝主播客户端1的推流。

其中,推流码中的多个关键字段包括服务器生成推流码的明文时间戳、非对称加密的公钥key值、加密后的服务器节点路径值以及加密后的时间戳。

参见图3,服务器2中还包括第一加密模块24和第二加密模块25。其中,第一加密模块24,用于利用非对称加密算法生成对应的公钥key值和私钥key值,并利用公钥key值对服务器2生成推流码的时间戳进行加密,形成加密后的时间戳。

第二加密模块25,用于利用对称加密算法对服务器cdn节点路径进行加密,形成加密后的服务器节点路径值。

相应的,下发模块21,还用于将明文时间戳、非对称加密的公钥key值、加密后的服务器节点路径值以及加密后的时间戳组成推流码,并进行加密后打包下发给主播客户端。

如图3所示,主播客户端1中具体包括获取模块11和上报模块12,其中,获取模块11,用于根据服务器2下发的推流码,获取推流码中的明文时间戳、加密后的时间戳以及公钥key值,并获取主播客户端信息,其中,所述主播客户端信息包括主播客户端ip地址、主播客户端令牌token以及主播客户端设备唯一id。

上报模块12,用于采用公钥key值对时间戳、加密后的时间戳以及主播客户端信息加密后,携带于视频流中形成视频流信息,并通过推流地址上报给服务器。

如图3所示,服务器2还包括解密模块26,用于接收到主播客户端1上报的视频流信息,采用与公钥key值对应的私钥key值进行解密,从中得到主播客户端ip地址、主播客户端令牌token、主播客户端设备唯一id、明文时间戳以及加密时间戳。

参见图4,验证模块23包括第一验证单元231、第二验证单元232、第三验证单元233、第四验证单元234和第五验证单元235。

其中,验证模块23,具体用于分别对主播客户端令牌token、主播客户端ip地址、主播客户端设备唯一id以及明文时间戳和加密时间戳进行验证,若验证均通过,则允许主播客户端1向服务器2推流,否则,拒绝主播客户端1向服务器2推流。

第一验证单元231,用于将主播客户端令牌token与服务器2下发给主播客户端的令牌token进行比较,若一致,则验证通过,否则,验证不通过。

第二验证单元232,用于利用私钥key值对加密时间戳进行解密,得到解密时间戳,将解密时间戳与明文时间戳进行对比,若一致,则验证通过,否则,验证不通过。

第三验证单元233,用于验证主播客户端ip地址与主播向主播平台注册时的ip地址或者与该主播上一次在主播客户端直播时的ip地址是否一致,若一致,则验证通过,否则,进行短信验证,根据短信验证的结果确定此次验证是否通过。

第四验证单元234,用于验证主播客户端设备唯一id是否与主播向主播平台注册时的设备唯一id是否一致,若一致,则验证通过,否则,进行短信验证,根据短信验证的结果确定此次验证是否通过。

第五验证单元235,用于将获取的当前时间戳与解密时间戳进行对比,若时间戳差值在预设范围内,则验证通过,否则,验证不通过,其中,所述当前时间戳是指服务器接收到主播客户端上报的视频流信息时的时间。

参见图5,示出本申请实施例的网络直播推流验证方法的设备的结构框图。

参照图5,网络直播推流验证方法的设备包括:处理器(processor)501、存储器(memory)502和总线503;其中,所述处理器501和存储器502通过所述总线503完成相互间的通信。

所述处理器501用于调用所述存储器502中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:根据主播客户端的请求,向主播客户端下发推流地址和推流码,其中,所述推流码中包括多个关键字段;接收主播客户端通过推流地址上报的视频流信息,所述视频流信息中携带有推流码和主播客户端信息;对推流码中的多个关键字段以及主播客户端信息进行校验,当校验通过,则允许主播客户端的推流,否则,拒绝主播客户端的推流。

本发明公开一种计算机程序产品,该计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,该计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述对应实施例所提供的网络直播推流验证方法,例如包括:根据主播客户端的请求,向主播客户端下发推流地址和推流码,其中,所述推流码中包括多个关键字段;接收主播客户端通过推流地址上报的视频流信息,所述视频流信息中携带有推流码和主播客户端信息;对推流码中的多个关键字段以及主播客户端信息进行校验,当校验通过,则允许主播客户端的推流,否则,拒绝主播客户端的推流。

本发明还提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行上述对应实施例所提供的网络直播推流验证方法,例如包括:根据主播客户端的请求,向主播客户端下发推流地址和推流码,其中,所述推流码中包括多个关键字段;接收主播客户端通过推流地址上报的视频流信息,所述视频流信息中携带有推流码和主播客户端信息;对推流码中的多个关键字段以及主播客户端信息进行校验,当校验通过,则允许主播客户端的推流,否则,拒绝主播客户端的推流。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所描述的网络直播推流验证方法的设备等实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分方法。

本发明提供的一种网络直播推流验证方法及系统,主播客户端在向服务器进行直播推流的过程中,服务器会向主播客户端下发推流码,其中,推流码中包括多个关键字段,当主播客户端向服务器推流时,会将推流码以及主播客户端信息一并上报给服务器,服务器会对推流码以及主播客户端信息进行校验,只有校验通过后,才允许主播客户端向服务器进行推流,对网络直播的推流过程进行保护,从而防止黑客或者推流地址被泄漏而导致非主播本人进行直播,从而可能直播一些非法内容,损害主播的利益。

最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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