一种在线流媒体播放方法、流媒体下载和离线播放方法与流程

文档序号:11156712阅读:2583来源:国知局
一种在线流媒体播放方法、流媒体下载和离线播放方法与制造工艺

本发明涉及数字版权保护技术领域,尤其涉及一种在线流媒体播放方法、流媒体下载和离线播放方法。



背景技术:

随着移动互联网的发展,移动流媒体的应用(Android和IOS平台的APP)越来越多,对流媒体内容版权保护方面,目前行业内有常见的技术方案包括:

1.采用在线鉴权,本地加密的方式

播放器在请求在线流媒体时,服务端对请求进行鉴权,确定其合法性。鉴权不通过则不支持下载到本地(手机端),鉴权通过则允许下载到本地(手机端)。基于本地硬件对本地的流媒体内容进行加密。本地播放前,先临时解密到沙箱,然后在播放。

这种方式的缺点在于:网络传输中数据并没有版权保护,容易被非法从网络端截取。已经下载到本地的数据,其版权保护也存在巨大漏洞,本地数据的版权保护依赖操作系统对沙箱的保护,这使得播放时,容易通过漏洞进行非法获取。

2.开发播放器的方式

针对上述方案里网络传输和本地播放中的漏洞,开发播放器的方式是将网络传输的流媒体内容经过服务端加密处理,通过开发播放器对接收到的内容进行解密。由于没有相应的标准协议的支持,加解密没有协商机制,更多是两边共同约定的形式。这种方式无需先解密到沙箱,而是由播放器直接负责解密;然而自主开发播放器,容易受手机操作系统版本、手机硬件的较大影响,想要实现比较好的兼容性很困难。

3.HTTP LIVE STREAM(HLS)方案

采用苹果的HTTP LIVE STREAM方案,流媒体需要根据苹果的方案进行切片处理,不适用现有系统的改造。另外HLS对下载到本地内容的保护有不足,其鉴权依赖联网鉴权,否则会存在漏洞。此外,Android较早版本的系统,其播放器对HLS不支持或者支持不好,使得HLS方案的适应范围不广。

综上所述,上述方案存在明显缺失,且没有通用性的较完美的行业标准支持。因此,有必要提供一种实现DRM(Digital Rights Management,数字版权管理)的移动流媒体播放及下载方法,以解决现有技术不能得到不同系统(Android系统和IOS系统)的支持、不能同时实现在线和下载后保护的问题。



技术实现要素:

鉴于上述的分析,本发明旨在提供一种在线流媒体播放方法、流媒体下载和离线播放方法,用以解决现有技术不能实现跨平台、不能同时实现在线和下载后保护的问题。

本发明的目的主要是通过以下技术方案实现的:

提供了一种实现DRM的在线流媒体播放方法,包括步骤:

步骤S1.客户端的移动应用向Proxy代理端发送播放请求;

步骤S2.Proxy代理端接收并解析播放请求,将播放请求与目标流媒体服务器地址进行内容重新组合后,发送到目标流媒体服务器;

步骤S3.流媒体服务器接收到重新组合后的播放请求,对客户端请求的数据进行加密后,发送给Proxy代理端;

步骤S4.Proxy代理端接收加密数据,对加密数据进行解密,并判断解密是否成功,在解密成功的情况下,将用户请求的数据发送给移动应用,以提供给播放器进行播放。

其中,所述客户端是IOS或者Android移动设备。

所述移动应用向Proxy代理端发送的播放请求包括本地URL。

所述内容重新组合,包括:从移动应用获取流媒体服务器IP地址、文件路径和请求文件的数据范围,将播放请求中的本地地址替换为流媒体服务器IP地址,再重新组装成HTTP播放请求。

步骤S3中,流媒体服务器对数据进行加密,包括:采用预先制定好的加解密规则在程序流程中动态生成密钥。

步骤S4中,在解密失败的情况下,Proxy代理端返回解码失败不能播放的信息给移动应用。

本发明还提供了一种在线流媒体通过内容分发网络请求播放的方法,包括以下步骤:

步骤S1.客户端的移动应用向Proxy代理端发送播放请求;

步骤S2.Proxy代理端接收并解析播放请求,将播放请求进行内容重新组合,并发送到目标CDN服务器;

步骤S3.CDN服务器接收到播放请求之后,检测所请求的数据是否存在;

如果存在,则直接发送包含所请求的数据的加密数据到Proxy代理端;

如果数据不存在,则CDN服务器返回响应给Proxy代理端,Proxy代理端解析响应,进而向数据源站发送数据请求,数据源站将所请求的数据发送给CDN服务器,CDN服务器对数据加密,并发送给Proxy代理端;

步骤S4.Proxy代理端接收并解密加密数据,判断解密是否成功;在解密成功的情况下,将用户请求的数据发送给移动应用。

本发明还提供了一种实现DRM的流媒体下载和离线播放方法,包括数据下载和离线播放两个过程。

数据下载过程包括以下步骤:

客户端的移动应用向媒体服务器端发送下载请求;

媒体服务器端接收请求后,加密所请求下载的数据,并将加密数据发送给客户端;

Proxy代理端对收到的加密数据进行解密,然后通过客户端移动应用中与媒体服务器端的加解密规则不同的加解密规则生成一个私钥,利用私钥对解密后的数据再次进行加密,并将重新加密后的文件保存到本地中,完成数据下载;

数据的离线播放过程包括以下步骤:

客户端的移动应用向Proxy代理端发送数据获取和播放请求;

Proxy代理端读取保存在本地设备中的加密数据;

Proxy代理端根据客户端提供的私钥,将加密数据解密,并发送到移动应用进行离线播放。

优选的,将重新加密后的文件保存到本地设备的同时,Proxy代理端还可以将私钥保存到本地。

本发明有益效果如下:

本发明可以实现跨平台,能够完美的在Android系统和IOS系统下运行;采用个性化加密方案定制,同时将DRM功能模块和播放器捆绑,能保证加密的流媒体数据必须通过使用带有DRM功能模块的配套播放器才能播放,同时不会受个别运营商的限制;此外,能够实现在线保护和下载后保护的问题。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。

图1为一种在线流媒体播放方法的示意图;

图2为一种在线流媒体通过CDN请求播放方法的流程图;

图3为一种流媒体的下载和离线播放方法的流程图;

图4为一种流媒体的下载和离线播放方法的流程图。

具体实施方式

下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。

根据本发明的具体实施例一,公开了一种实现DRM的在线流媒体播放方法,如图1所示,包括以下步骤:

步骤S1.客户端的移动应用向内嵌的Proxy代理端发送播放请求。

所述客户端是IOS或者Android移动设备,客户端的移动应用中内嵌Proxy代理端。

所述播放请求的内容包括URL。

具体地,由移动应用开启线程打开Proxy代理端的代理程序,由代理程序开始监听移动应用的内部请求。

步骤S2.Proxy代理端接收并解析播放请求,将播放请求与目标流媒体服务器地址进行内容重新组合,并将重新组合的播放请求发送到目标流媒体服务器。

具体地,当监听到移动应用的播放请求后,Proxy代理端将播放请求进行重新组合,并发送到指定的流媒体服务器。

所述播放请求的内容重新组合,包括:Proxy代理端从移动应用获取流媒体服务器IP地址、文件路径和请求文件的数据范围(以视频文件为例可以请求1分钟到8分钟的数据片段)等,将播放请求中的本地地址替换为流媒体服务器IP地址,再结合文件路径和请求文件的数据范围等信息,重新组装成HTTP播放请求。

具体说明如下:假设移动应用发送的播放请求为本地127.0.0.1:11211的URL地址,11211作为代理程序的监听端口,Proxy代理端接收到移动应用请求后,重新将127.0.0.1的本地地址替换为远端服务器的IP地址,再通过重新组装HTTP请求向远端服务器发送出去。远端服务器接收到之后将会将文件大小内容等信息以服务器响应的形式返回。

步骤S3.流媒体服务器接收到播放请求,根据约定好的密钥生成规则,对客户端请求的数据进行加密,将加密好的数据发送给Proxy代理端。这个过程中,由预先制定好的加解密规则在程序流程中动态生成密钥,不需要将密钥打包成许可证在线鉴权。将加密好的数据发送给Proxy代理端可以采用服务器响应的形式进行。

步骤S4.Proxy代理端接收加密数据,根据约定好的加解密规则对加密数据进行解密,并判断解密是否成功;在解密成功的情况下,将用户请求的数据发送给移动应用,以提供给播放器正常播放;在解密失败的情况下,则Proxy代理端返回解码失败不能播放的信息。

本实施例所述方法不需要将密钥单独存储,只需要根据服务器和内嵌有DRM模块的移动设备约定好的加密规则动态生成密钥进行加密,从而达到流媒体在线数据保护的目的。

本发明的具体实施例二,公开了一种实现DRM的在线流媒体通过CDN(Content Delivery Network,内容分发网络)请求播放的方法,如图2所示,包括以下步骤:

步骤S1.客户端的移动应用向内嵌的Proxy代理端发送播放请求。其中,客户端是IOS或者Android移动设备,播放请求包括URL。

步骤S2.Proxy代理端接收并解析播放请求,将播放请求进行内容重新组合,并发送到目标CDN服务器。所述CDN服务器是指CDN专用DNS服务器。

其中,

所述播放请求的内容重新组合,包括:Proxy代理端从移动应用获取CDN服务器IP地址、文件路径和请求文件的数据范围(以视频文件为例可以请求1分钟到8分钟的数据片段)等,将播放请求中的本地地址替换为CDN服务器IP地址,再结合文件路径和请求文件的数据范围等信息,重新组装成播放请求。重新组合的播放请求是一种HTTP请求,将该请求向目标CDN服务器发送。

步骤S3.服务器接收到播放请求之后,检测客户端所请求的数据是否存在;如果存在,则直接发送200响应值的加密数据(包括所请求的数据)到Proxy代理端;如果客户端所请求的数据不存在,则CDN服务器返回302响应给Proxy代理端,Proxy代理端解析响应,进而向数据源站发送数据请求,数据源站将所请求的数据发送给CDN服务器,CDN服务器对数据加密,并发送给Proxy代理端。

进一步的,CDN服务器对从数据源站获取的数据进行缓存,以供下次客户端发起相同请求的时候,直接从CDN服务器获取文件。

步骤S4.Proxy代理端接收加密数据,对加密数据进行解密,并判断解密是否成功;在解密成功的情况下,将用户请求的数据发送给移动应用;在解密失败的情况下,则Proxy代理端向移动应用返回解码失败不能播放的信息给移动应用。

具体地,CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回Proxy代理端。

Proxy代理端向CDN的全局负载均衡设备发起内容URL访问请求。

CDN全局负载均衡设备根据客户端IP地址,以及内容URL,选择客户端所属区域的区域负载均衡设备,通知Proxy代理端向这台区域负载均衡设备发起请求。

区域负载均衡设备为Proxy代理端选择缓存服务器提供服务,选择的依据包括:根据客户端IP地址,判断哪一台缓存服务器距客户端最近;根据客户端所请求的URL中携带的内容名称,判断哪一台缓存服务器上有客户端所需内容。

如果缓存服务器上并没有客户端想要的内容或已过期,则全局负载均衡设备返回302响应给Proxy代理端,同时这台缓存服务器就要向它的上一级缓存服务器请求内容,直至追溯到源站请求最新的文件进行缓存,当下次客户端发起相同请求的时候直接从缓存服务器获取最新的缓存文件。

如果缓存服务器上有客户端想要的内容,则区域负载均衡设备或全局负载均衡设备会查询各个缓存服务器当前的负载情况,判断哪一台缓存服务器尚有服务能力。基于以上这些条件的综合分析之后,全局负载均衡设备把一台缓存服务器的IP地址返回给Proxy代理端。

Proxy代理端向缓存服务器发起请求,缓存服务器响应请求,将200响应值的加密数据传送到Proxy代理端。

Proxy代理端收到响应后会做如下处理:

a)如果接收到的是200响应值的加密数据。Proxy代理端根据约定好的加解密规则对数据进行解密,解密成功则可以提供给播放器正常播放,解密失败则会造成播放器解码失败不能播放。

b)如果接收到的是302响应,Proxy代理端会在内部解析该响应,即将302响应的Header中的Location段的HTTP URL取出来,自动向源站发起数据请求,进而不需要等待CDN缓存服务器缓存之后再获取数据,提高了获取数据的速度,提升用户体验,当下一次请求该数据时即可从CDN缓存服务器快速获取。

根据本发明的具体实施例三,公开了一种流媒体的下载和离线播放方法,

数据的下载过程如图3所示,包括以下步骤:

客户端的移动应用向媒体服务器端发送下载请求;

所述客户端是IOS或者Android移动设备,客户端的移动应用中内嵌Proxy代理端。

媒体服务器端接收请求后利用预先设定好的加解密规则加密所请求下载的数据,并将加密数据发送给客户端;

客户端移动应用的Proxy代理端利用与服务器约定好的加解密规则,对收到的加密数据进行解密;然后,客户端的移动应用通过自身的加解密规则(移动应用自身的加解密规则与媒体服务器端的加解密规则不同)生成一个私钥,Proxy代理端利用私钥对解密后的数据再次进行加密,并将重新加密后的文件保存到本地设备中,完成数据下载过程。

本实施例通过在客户端进行再次加密,可以保证保存在本地设备中的数据即使被非法复制,也不能被使用。

数据的离线播放过程如图4所示,包括以下步骤:

客户端的移动应用向Proxy代理端发送数据获取和播放请求;

所述客户端是IOS或者Android移动设备,客户端的移动应用中内嵌Proxy代理端。Proxy代理端读取保存在本地设备中的加密数据;

Proxy代理端根据客户端的移动应用提供的私钥,将保存在本地设备中的加密数据解密,并发送到移动应用进行离线播放。

上述实施例1-3中,在线播放使用和服务器约定好的加解密规则解密,离线播放使用本地产生的密钥解密。

根据本发明的具体实施例四,公开了另一种流媒体的下载和离线播放方法,具体包括步骤:

客户端的移动应用发送下载流媒体文件请求;

流媒体服务器接收请求后,按照约定的加密规则加密数据,并发送给移动应用;

移动应用接收到加密数据后,通过Proxy代理端进行解密;

Proxy代理端对下载的数据进行解密之后,移动应用需要调用Proxy代理端自己提供的加密方法,并且使用自己产生的密钥对数据重新进行加密,同时这个密钥也会保存到本地;

当进行离线播放的时候,移动应用会使用Proxy代理端的解密密钥将本地文件解密处理后再播放。

综上所述,本发明实施例提供了一种流媒体的在线和离线播放方法,可以跨平台的基于C语言开发,能够完美的在Android系统和IOS系统下运行;采用个性化加密方案定制,同时DRM功能模块和播放器捆绑,能保证加密的流媒体数据必须通过使用带有DRM功能模块的配套播放器才能播放,同时不会受个别运营商的限制。

本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

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