媒体文件的播放方法、装置及存储介质与流程

文档序号:25039427发布日期:2021-05-14 13:19阅读:82来源:国知局
媒体文件的播放方法、装置及存储介质与流程

1.本发明涉及数字版权管理技术领域,尤其涉及一种媒体文件的播放方法、装置及存储介质。


背景技术:

2.随着数字媒体技术的飞速发展,数字媒体内容得到广泛应用,媒体内容的盗版技术和方式也变得越来越多。为防止数字媒体在应用过程中受到非法的拷贝及恶意的传播,许多软件厂商都推出了相应的数字版权管理(drm,digital rights management)技术,通过加密技术,锁定和限制媒体数据的使用及分发途径,从而达到防范对媒体数据无授权复制和使用的基本目标。
3.由于系统播放器比较稳定,播放媒体数据都优先采用系统播放器,但在安卓(android)8.0版本之前,android的系统播放器并不支持drm技术,无法播放drm加密的媒体数据。


技术实现要素:

4.本发明实施例提供一种媒体文件的播放方法、装置及存储介质,能够使不同系统版本的用户都能观看到通过数字版权管理技术加密的媒体数据。
5.本发明实施例的技术方案是这样实现的:
6.本发明实施例提供一种媒体文件的播放方法,包括:
7.响应于针对媒体文件的播放指令,发送相应的媒体数据获取请求;
8.接收到返回的加密文件,所述加密文件的文件头包括对应数字版权管理中心的统一资源定位符(url,uniform resource locator),所述加密文件的文件体包括所述媒体数据;
9.基于所述url,发送对应所述媒体文件的授权请求;
10.接收到返回的对应所述加密文件的密钥,所述密钥为所述数字版权管理中心基于所述授权请求进行数字版权验证通过后返回的;
11.基于返回的所述密钥,对所述加密文件进行解密,得到所述媒体数据;
12.调用系统播放器,对所述媒体数据进行播放。
13.本发明实施例提供一种媒体文件的播放装置,包括:
14.第一发送模块,用于响应于针对媒体文件的播放指令,发送相应的媒体数据获取请求;
15.第一接收模块,用于接收到返回的加密文件,所述加密文件的文件头包括对应数字版权管理中心的url,所述加密文件的文件体包括所述媒体数据;
16.第二发送模块,用于基于所述url,发送对应所述媒体文件的授权请求;
17.第二接收模块,用于接收到返回的对应所述加密文件的密钥,所述密钥为所述数字版权管理中心基于所述授权请求进行数字版权验证通过后返回的;
18.解密模块,用于基于返回的所述密钥,对所述加密文件进行解密,得到所述媒体数据;
19.播放模块,用于调用系统播放器,对所述媒体数据进行播放。
20.上述方案中,所述第一发送模块,还用于响应于针对媒体文件的播放指令,通过数字版权管理插件,发送相应的媒体数据获取请求,所述媒体数据获取请求携带有媒体文件标识。
21.上述方案中,所述第一接收模块,还用于接收到基于所述媒体文件标识返回的加密文件;
22.其中,所述加密文件为对所述媒体文件进行解封装,得到所述媒体数据;通过密钥对所述媒体数据进行加密,并将对应所述密钥的密钥标识与数字版权管理中心的url置入文件头,对所述文件头与加密后的所述媒体数据进行封装得到的。
23.上述方案中,所述第二发送模块,还用于获取所述播放指令对应的目标用户的用户身份信息;
24.发送携带有密钥标识及用户身份信息的授权请求至所述数字版权管理中心,以基于所述用户身份信息进行数字版权验证,并在验证通过后,返回所述密钥标识对应的密钥。
25.上述方案中,所述解密模块,还用于对所述加密文件进行解析,得到加密后的所述媒体数据;
26.基于返回的所述密钥,对所述加密的所述媒体数据进行解密,得到解密后的所述媒体数据。
27.上述方案中,所述解密模块,还用于在本地获取与所述加密文件相对应的本地密钥;
28.将所述本地密钥及返回的所述密钥进行组合,得到组合密钥;
29.基于所述组合密钥对所述加密文件进行解密。
30.上述方案中,所述播放模块,还用于将所述媒体数据封装成特定格式的媒体文件;
31.调用所述系统播放器,对所述特定格式的媒体文件进行解码及播放。
32.上述方案中,所述装置还包括:
33.存储模块,用于存储返回的所述密钥至区块链网络。
34.本发明实施例提供一种电子设备,包括:
35.存储器,用于存储可执行指令;
36.处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的媒体文件的播放方法。
37.本发明实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的媒体文件的播放方法。
38.本发明实施例具有以下有益效果:
39.本发明通过接收到返回的加密文件;发送对应媒体文件的授权请求;接收到返回的对应所述加密文件的密钥;基于返回的密钥,对加密文件进行解密,得到媒体数据;调用系统播放器,对媒体数据进行播放;如此,由于在调用系统播放器之前,已经对加密文件进行了解密,系统播放器获取到的是解密后的媒体数据,使得android8.0之前的系统播放器也能对媒体数据进行播放。
附图说明
40.图1是本发明实施例提供的媒体文件的播放系统100的架构示意图;
41.图2是本发明实施例提供的电子设备的结构示意图;
42.图3是本发明实施例提供的媒体文件的播放方法的流程示意图;
43.图4是本发明实施例提供的视频客户端的界面示意图;
44.图5是本发明实施例提供的得到加密文件的流程示意图;
45.图6是本发明实施例提供的获取密钥的流程示意图;
46.图7是本发明实施例提供的视频播放的流程示意图;
47.图8是本发明实施例提供的区块链网络的应用架构示意图;
48.图9是本发明实施例提供的区块链网络900中区块链的结构示意图;
49.图10是本发明实施例提供的区块链网络900的功能架构示意图;
50.图11是本发明实施例提供的媒体文件的播放方法的流程示意图;
51.图12是本发明实施例提供的媒体文件的播放方法的流程示意图;
52.图13是本发明实施例提供的媒体文件的播放装置的结构示意图。
具体实施方式
53.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
54.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
55.在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
56.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
57.对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
58.1)数字版权管理,指的是出版者用来控制被保护对象的使用权的一些技术,这些技术保护的有数字化内容(例如:软件、音乐、电影)以及硬件,处理数字化产品的某个实例的使用限制。
59.2)媒体文件,互联网中可获取的各种形式(如视频、音频、图文等媒体形式)的媒体,如客户端中展现的视频文件、音频文件、包括图文形式的文章等。
60.3)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
61.4)交易(transaction),等同于计算机术语“事务”,交易包括了需要提交到区块链网络执行的操作,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。
62.例如,部署(deploy)交易用于向区块链网络中的节点安装指定的智能合约并准备好被调用;调用(invoke)交易用于通过调用智能合约在区块链中追加交易的记录,并对区块链的状态数据库进行操作,包括更新操作(包括增加、删除和修改状态数据库中的键值对)和查询操作(即查询状态数据库中的键值对)。
63.5)区块链(blockchain),是由区块(block)形成的加密的、链式的交易的存储结构。
64.6)区块链网络(blockchain network),通过共识的方式将新区块纳入区块链的一系列的节点的集合。
65.7)账本(ledger),是区块链(也称为账本数据)和与区块链同步的状态数据库的统称。其中,区块链是以文件系统中的文件的形式来记录交易;状态数据库是以不同类型的键(key)值(value)对的形式来记录区块链中的交易,用于支持对区块链中交易的快速查询。
66.8)智能合约(smart contracts),也称为链码(chaincode)或应用代码,部署在区块链网络的节点中的程序,节点执行接收的交易中所调用的智能合约,来对状态数据库的键值对数据进行更新或查询的操作。
67.9)共识(consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部,实现共识的机制包括工作量证明(pow,proof of work)、权益证明(pos,proof of stake)、股份授权证明(dpos,delegated proof-of-stake)、消逝时间量证明(poet,proof of elapsed time)等。
68.参见图1,图1是本发明实施例提供的媒体文件的播放系统100的架构示意图,为实现支撑一个示例性应用,终端500通过网络400连接内容服务器200及数字版权管理中心300,网络400可以是广域网或者局域网,又或者是二者的组合。
69.终端500,用于响应于针对媒体文件的播放指令,发送媒体数据获取请求至内容服务器200;
70.内容服务器200,用于从媒体数据库600获取加密文件,并返回加密文件;
71.其中,加密文件的文件头包括对应数字版权管理中心的统一资源定位符url,加密文件的文件体包括媒体数据;
72.终端500,还用于基于url,发送对应媒体文件的授权请求至数字版权管理中心;
73.数字版权管理中心300,用于从密钥数据库700获取加密文件的密钥,并返回加密文件的密钥;
74.终端500,还用于基于返回的密钥,对加密文件进行解密,得到媒体数据;调用系统播放器,对媒体数据进行播放。
75.在实际应用中,内容服务器和数字版权管理中心既可以为单独配置的支持各种业务的一个服务器,亦可以配置为一个服务器集群;终端可以为智能手机、平板电脑、笔记本电脑等各种类型的用户终端,还可以为可穿戴计算设备、个人数字助理(pda)、台式计算机、蜂窝电话、媒体播放器、导航设备、游戏机、电视机、或者这些数据处理设备或其他数据处理设备中任意两个或多个的组合。
76.接下来对实施本发明实施例的媒体文件的播放方法的电子设备进行说明。参见图2,图2是本发明实施例提供的电子设备的结构示意图,图2所述的电子设备包括:处理器210、存储器250、网络接口220和用户接口230。电子设备中的各个组件通过总线系统240耦合在一起。可理解,总线系统240用于实现这些组件之间的连接通信。总线系统240除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统240。
77.处理器210可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
78.用户接口230包括使得能够呈现媒体内容的一个或多个输出装置231,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口230还包括一个或多个输入装置232,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
79.存储器250可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器250可选地包括在物理位置上远离处理器210的一个或多个存储设备。
80.存储器250包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,read only memory),易失性存储器可以是随机存取存储器(ram,random access memory)。本发明实施例描述的存储器250旨在包括任意适合类型的存储器。
81.在一些实施例中,存储器250能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
82.操作系统251,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
83.网络通信模块252,用于经由一个或多个(有线或无线)网络接口220到达其他计算设备,示例性的网络接口220包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universal serial bus)等;
84.显示模块253,用于经由一个或多个与用户接口230相关联的输出装置231(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
85.输入处理模块254,用于对一个或多个来自一个或多个输入装置232之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
86.在一些实施例中,本发明实施例提供的媒体文件的播放装置可以采用软件方式实现,图2示出了存储在存储器250中的媒体文件的播放装置255,其可以是程序和插件等形式的软件,包括以下软件模块:第一发送模块2551、第一接收模块2552、第二发送模块2553、第二接收模块2554、解密模块2555及播放模块2556,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。
87.在另一些实施例中,本发明实施例提供的媒体文件的播放装置可以采用硬件方式
实现,作为示例,本发明实施例提供的媒体文件的播放装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的媒体文件的播放方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(asic,application specific integrated circuit)、dsp、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场可编程门阵列(fpga,field-programmable gate array)或其他电子元件。
88.基于上述对本发明实施例的媒体文件的播放系统及电子设备的说明,接下来对本发明实施例提供的媒体文件的播放方法进行说明,图3为本发明实施例提供的媒体文件的播放方法的流程示意图,在一些实施例中,该媒体文件的播放方法由终端实施,如通过图1中的终端500实施,结合图1及图3,对本发明实施例提供的媒体文件的播放方法进行说明。
89.步骤301:终端响应于针对媒体文件的播放指令,发送相应的媒体数据获取请求。
90.在一些实施例中,终端上设置有客户端,如音乐客户端、视频客户端、微博客户端等具有媒体内容播放功能的客户端,用户可以通过在客户端上,针对视图界面呈现的视频播放按键执行点击操作,以触发针对媒体文件的播放指令。客户端接收到针对媒体文件的播放指令,并响应于播放指令,向媒体数据分发服务器发送相应的媒体数据获取请求。
91.示例性地,以客户端为视频客户端为例,图4为本发明实施例提供的视频客户端的界面示意图,参见图4,视频客户端的界面呈现不同视频的信息及对应视频的播放按钮,如电视剧“没有秘密的你”的介绍信息,通过点击该电视剧所对应的播放按钮,触发针对该电视剧的播放指令,使得视频客户端向相应的内容服务器发送获取请求,以获取该电视剧的视频数据。
92.需要说明的是,媒体数据与媒体文件一一对应,媒体文件为媒体数据的封装形式。在实际实施时,对应媒体数据的加密文件存储在媒体数据库中,媒体数据库可以是内容服务器所包含的,也可以是独立存在,而未配置于内容服务器中,其中,内容服务器可以从媒体数据库读取所需的媒体文件,以对媒体文件进行分发。
93.在一些实施例中,响应于针对媒体文件的播放指令,通过数字版权管理插件,发送相应的媒体数据获取请求,媒体数据获取请求携带有媒体文件标识。
94.这里,在实际实施时,数据版权管理插件集成于客户端中,客户端通过数据版权管理插件执行媒体数据获取请求的发送、加密文件的接收、授权请求、密钥的获取、加密文件的解密等操作。
95.需要说明的是,在媒体数据库中,媒体文件所对应的加密文件与媒体文件的标志对应存储,以使内容服务器能够根据数据获取请求中携带的媒体文件标识,查找到对应的加密文件。例如,当媒体文件为视频文件时,将视频标识(id,identity document)与加密文件配对存储在视频文件库中,以使视频服务器基于视频id查找到与视频id相匹配的加密文件。
96.步骤302:接收到返回的加密文件。
97.这里,加密文件的文件头包括对应数字版权管理中心的url,加密文件的文件体包括媒体数据。
98.在一些实施例中,接收到基于所述媒体文件标识返回的加密文件;其中,所述加密文件为对所述媒体文件进行解封装,得到所述媒体数据;通过密钥对媒体数据进行加密,并
将对应密钥的密钥标识与数字版权管理中心的url置入文件头,对文件头与加密后的所述媒体数据进行封装得到的。
99.这里,在实际实施时,加密文件可以通过以下方式得到:获取媒体文件的文件头,以确定媒体文件的格式;根据媒体文件的格式,对媒体文件进行解封装操作,得到媒体数据;通过加密工具对媒体数据进行加密及封装,得到加密文件。
100.图5为本发明实施例提供的得到加密文件的流程示意图,参见图5,在一些实施例中,加密工具可以通过以下方式得到加密文件:首先,创建私有签名密钥、公有签名密钥、许可密钥种子和密钥标识,并由许可密钥种子和密钥标识生成一个密钥,此密钥是用来加密保护媒体数据的;然后,把密钥标识、数字版权管理中心的url、版本号等信息存放于文件头部,并根据私有签名密钥签名其头部;最后,加密媒体数据,并将加密后的媒体数据与头部一起打包成特定格式的加密文件。如,加密文件可为扩展名为.asf、.wma、.wmv形式。
101.步骤303:基于url,发送对应媒体文件的授权请求。
102.在实际实施时,终端会先在本地检索是否存在有效的密钥,若存在,则直接从本地获取加密文件的密钥;若检索失败,则根据url,链接到数字版权管理中心,向数据版权管理中心发送对应媒体文件的授权请求。
103.在一些实施例中,终端可以通过以下方式发送对应媒体文件的授权请求:获取所述播放指令对应的目标用户的用户身份信息;发送携带有密钥标识及用户身份信息的授权请求至所述数字版权管理中心,以基于所述用户身份信息进行数字版权验证,并在验证通过后,返回所述密钥标识对应的密钥。
104.在实际实施时,终端根据用户在客户端的登录的账号信息,确定用户身份信息,并从加密的文件的头部获取密钥标识,然后,基于用户身份信息及密钥标识生成对应媒体文件的授权请求,并发送至数字版权管理中心。数字版权管理中心根据用户身份信息,判断用户是否具有播放媒体文件的权限,若有,则从密钥数据库中获取密钥标识对应的密钥;否则,返回请求失败的信息。
105.例如,对于仅vip用户有权限播放的媒体文件,数字版权管理中心会将用户身份信息与vip用户信息记录中的用户信息进行匹配,以判断目标用户是否为vip用户,若是,则获取密钥标识对应的密钥,返回至终端;又如,对于仅某应用平台可播放的媒体文件,数字版权管理中心会判断用户身份信息的来源,是否为可播放媒体文件的应用平台的注册用户,若是,则获取密钥标识对应的密钥,返回至终端。
106.图6为本发明实施例提供的获取密钥的流程示意图,参见图6,在一些实施例中,终端可以直接将加密文件的文件头与用户身份信息一同发送给数字版权管理中心,数字版权管理中心接收到客户端发送的加密文件的文件头和用户身份信息后,将许可密钥种子和接收的文件头中的密钥标识生成一个与打包媒体数据时相同的密钥,以用于解密。接着,生成一个版权许可,将加密的密钥添加到版权许可中,再添加一个数字版权许可服务中获得的证书,使用证书中的公有密钥对版权许可进行签名;最后将版权许可传送到终端。这里,版权许可中还可定义许可的权限,如播放次数、起止时间等。
107.步骤304:接收到返回的对应加密文件的密钥。
108.这里,密钥为数字版权管理中心基于授权请求进行数字版权验证通过后返回的。
109.步骤305:基于返回的密钥,对加密文件进行解密,得到媒体数据。
110.在实际实施时,终端可以对返回的密钥进行保存,将其存储在本地,以在下次需要播放该媒体文件时,直接从本地获取密钥。需要说明的是,获得的密钥设置有许可权限,如播放次数、起止时间等。当超出播放次数、或超出权限时间时,该密钥无效。
111.在一些实施例中,数字版权管理中心将密钥携带在版权许可中发送至终端,终端对该版权许可进行验证,并将该版权许可存储至许可库中,然后通过版权许可携带的密钥对加密文件进行解密。
112.在一些实施例中,终端可以通过以下方式得到媒体数据:对加密文件进行解析,得到加密后的媒体数据;基于返回的密钥,对加密的媒体数据进行解密,得到解密后的媒体数据。
113.在实际实施时,由于加密文件包括文件头和文件体,这里,对文件体进行解析,当得到加密的媒体数据,然后基于返回的密钥,对该加密的媒体数据进行解密。
114.在一些实施例中,终端可以通过以下方式得到媒体数据:在本地获取与所述加密文件相对应的本地密钥;将所述本地密钥及返回的所述密钥进行组合,得到组合密钥;基于所述组合密钥对所述加密文件进行解密。
115.在实际实施时,在数字版权管理中心将密钥发送至终端时,存在被截获的可能,若该密钥被黑客截获,便能够解密加密文件,播放媒体文件。通过将密钥分成两把,一把存储在数字版权管理中心,一把存储在终端本地,在对加密文件进行解密时,需要先从数字版权管理中心获取密钥,再获取本地存储的密钥,然后对两把密钥进行组合,得到组合密钥,以通过组合密钥对加密文件进行解密;如此,由于必须同时获取两把密钥,才能够对加密文件进行解密,加强密钥的安全性。
116.步骤306:调用系统播放器,对媒体数据进行播放。
117.这里,由于已经对加密的媒体数据进行解密,系统播放器获取到的是未加密的媒体数据,即使是android8.0之前的系统播放器也能够对该媒体数据进行播放。
118.在一些实施例中,终端可以通过以下方式对媒体数据进行播放:将媒体数据封装成特定格式的媒体文件;调用系统播放器,对特定格式的媒体文件进行解码及播放。
119.这里,将媒体数据封装成系统服务器所能读取的特定格式的媒体文件,并创建微型本地流服务器,然后调用系统播放器,使系统服务器从客户端获取特定格式的媒体文件,对特定格式的媒体文件进行解码及播放。
120.以媒体文件为视频文件为例,视频包括图像和音频两部分,图7为本发明实施例提供的视频播放的流程示意图,参见图7,系统播放器通过解复用器对视频文件进行解封装,得到音频包队列及图像包队列,然后对音频包队列进行音频解码,得到音频帧队列;以及对图像包进行图像解码得到图像帧队列;对图像帧进行图像显示,同时对音频帧进行声音输出。需要说明的是,每读取一帧音频帧及一帧图像帧就进行输出,直至数据读取完毕。
121.在一些实施例中,还可以结合区块链技术,在接收到返回的对应加密文件的密钥后,将加密文件的密钥存储至区块链网络,以使下一次需要对媒体文件进行播放时,能够直接从区块链网络获取到解密文件的密钥。
122.这里,接收到返回的对应加密文件的密钥后,生成用于存储密钥的交易,提交生成的所述交易至区块链网络的节点,以使所述节点对交易共识后存储对应密钥至区块链网络;在存储至区块链网络之前,服务器还可获取密钥对应的密钥的摘要信息;将得到的密钥
的摘要信息存储至区块链网络。
123.参见图8,图8为本发明实施例提供的区块链网络的应用架构示意图,包括业务主体500、认证中心800,区块链网络900(示例性示出了共识节点910-1至共识节点910-3),下面分别说明。
124.区块链网络900的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的电子设备例如用户终端和服务器,都可以在不需要授权的情况下接入区块链网络900;以联盟链为例,业务主体在获得授权后其下辖的电子设备(例如终端/服务器)可以接入区块链网络900,此时,成为区块链网络900中的一类特殊的节点即客户端节点。
125.在一些实施例中,客户端节点可以只作为区块链网络900的观察者,即提供支持业务主体发起交易(例如,用于上链存储数据或查询链上数据)功能,对于区块链网络900的共识节点910的功能,例如排序功能、共识服务和账本功能等,服务器节点可以缺省或者有选择性(例如,取决于业务主体的具体业务需求)地实施。从而,可以将业务主体的数据和业务处理逻辑最大程度迁移到区块链网络900中,通过区块链网络900实现数据和业务处理过程的可信和可追溯。
126.区块链网络900中的共识节点接收来自业务主体500的客户端节点提交的交易,执行交易以更新账本或者查询账本,执行交易的各种中间结果或最终结果可以返回业务主体的客户端节点中显示。
127.下面以业务主体接入区块链网络以实现媒体文件的播放为例,说明区块链网络的示例性应用。
128.参见图8,媒体文件的播放涉及的业务主体500,从认证中心800进行登记注册获得数字证书,数字证书中包括业务主体的公钥、以及认证中心800对业务主体的公钥和身份信息签署的数字签名,用来与业务主体针对交易的数字签名一起附加到交易中,并被发送到区块链网络,以供区块链网络从交易中取出数字证书和签名,验证消息的可靠性(即是否未经篡改)和发送消息的业务主体的身份信息,区块链网络会根据身份进行验证,例如是否具有发起交易的权限。业务主体下辖的电子设备(例如终端或者服务器)运行的客户端都可以向区块链网络900请求接入而成为客户端节点。
129.业务主体500的客户端节点用于媒体文件的播放,例如,响应于针对媒体文件的播放指令,发送相应的媒体数据获取请求;接收到返回的加密文件,加密文件的文件头包括对应数字版权管理中心的统一资源定位符url,加密文件的文件体包括所述媒体数据;基于url,发送对应媒体文件的授权请求;接收到返回的对应加密文件的密钥,密钥为数字版权管理中心基于授权请求进行数字版权验证通过后返回的;将密钥存储至区块链网络;基于返回的密钥,对加密文件进行解密,得到媒体数据;调用系统播放器,对媒体数据进行播放。
130.其中,将密钥发送至区块链网络900的操作,可以预先在客户端节点510设置业务逻辑,当接收到返回的对应加密文件的密钥时,客户端节点510将密钥自动发送至区块链网络900,也可以由业务主体500的业务人员在客户端节点510中登录,手动打包密钥,并将其发送至区块链网络900。在发送时,客户端节点510根据对应密钥生成对应存储操作的交易,在交易中指定了实现存储操作需要调用的智能合约、以及向智能合约传递的参数,交易还携带了服客户端节点510的数字证书、签署的数字签名(例如,使用客户端节点510的数字证
书中的私钥,对交易的摘要进行加密得到),并将交易广播到区块链网络900中的共识节点910。
131.区块链网络900中的共识节点910中接收到交易时,对交易携带的数字证书和数字签名进行验证,验证成功后,根据交易中携带的业务主体500的身份,确认业务主体500是否是具有交易权限,数字签名和权限验证中的任何一个验证判断都将导致交易失败。验证成功后签署节点910自己的数字签名(例如,使用节点910-1的私钥对交易的摘要进行加密得到),并继续在区块链网络900中广播。
132.区块链网络900中的共识节点910接收到验证成功的交易后,将交易填充到新的区块中,并进行广播。区块链网络900中的共识节点910广播的新区块时,会对新区块进行共识过程,如果共识成功,则将新区块追加到自身所存储的区块链的尾部,并根据交易的结果更新状态数据库,执行新区块中的交易:对于提交更新领取记录的交易,在状态数据库中添加领取记录。
133.作为区块链的示例,参见图9,图9为本发明实施例提供的区块链网络900中区块链的结构示意图,每个区块的头部既可以包括区块中所有交易的哈希值,同时也包含前一个区块中所有交易的哈希值,新产生的交易的记录被填充到区块并经过区块链网络中节点的共识后,会被追加到区块链的尾部从而形成链式的增长,区块之间基于哈希值的链式结构保证了区块中交易的防篡改和防伪造。
134.下面说明本发明实施例提供的区块链网络的示例性的功能架构,参见图10,图10为本发明实施例提供的区块链网络900的功能架构示意图,包括应用层901、共识层902、网络层903、数据层904和资源层905,下面分别进行说明。
135.资源层905封装了实现区块链网路900中的节点的计算资源、存储资源和通信资源。
136.数据层904封装了实现账本的各种数据结构,包括以文件系统中的文件实现的区块链,键值型的状态数据库和存在性证明(例如区块中交易的哈希树)。
137.网络层903封装了点对点(p2p,point to point)网络协议、数据传播机制和数据验证机制、接入认证机制和业务主体身份管理的功能。
138.其中,p2p网络协议实现区块链网络900中节点之间的通信,数据传播机制保证了交易在区块链网络900中的传播,数据验证机制用于基于加密学方法(例如数字证书、数字签名、公/私钥对)实现节点之间传输数据的可靠性;接入认证机制用于根据实际的业务场景对加入区块链网络900的业务主体的身份进行认证,并在认证通过时赋予业务主体接入区块链网络900的权限;业务主体身份管理用于存储允许接入区块链网络900的业务主体的身份、以及权限(例如能够发起的交易的类型)。
139.共识层902封装了区块链网络900中的节点对区块达成一致性的机制(即共识机制)、交易管理和账本管理的功能。共识机制包括pos、pow和dpos等共识算法,支持共识算法的可插拔。
140.交易管理用于验证节点接收到的交易中携带的数字签名,验证业务主体的身份信息,并根据身份信息判断确认其是否具有权限进行交易(从业务主体身份管理读取相关信息);对于获得接入区块链网络900的授权的业务主体而言,均拥有认证中心颁发的数字证书,业务主体利用自己的数字证书中的私钥对提交的交易进行签名,从而声明自己的合法
身份。
141.账本管理用于维护区块链和状态数据库。对于取得共识的区块,追加到区块链的尾部;执行取得共识的区块中的交易,当交易包括更新操作时更新状态数据库中的键值对,当交易包括查询操作时查询状态数据库中的键值对并向业务主体的服务器节点返回查询结果。支持对状态数据库的多种维度的查询操作,包括:根据区块序列号(例如交易的哈希值)查询区块;根据区块哈希值查询区块;根据交易序列号查询区块;根据交易序列号查询交易;根据业务主体的账号(序列号)查询业务主体的账号数据;根据通道名称查询通道中的区块链。
142.应用层901封装了区块链网络能够实现的各种业务,包括交易的溯源、存证和验证等。
143.本发明通过接收到返回的加密文件;发送对应媒体文件的授权请求;接收到返回的对应所述加密文件的密钥;基于返回的密钥,对加密文件进行解密,得到媒体数据;调用系统播放器,对媒体数据进行播放;如此,由于在调用系统播放器之前,已经对加密文件进行了解密,系统播放器获取到的是解密后的媒体数据,使得android8.0之前的系统播放器也能对媒体数据进行播放。
144.下面以媒体文件为视频文件的播放为例,说明本发明实施例的媒体文件的播放方法。图11是本发明实施例提供的媒体文件的播放方法的流程示意图,参见图11,本发明实施例提供的媒体文件的播放方法包括:
145.步骤701:视频提供方对视频文件进行解封装,得到视频数据。
146.这里,视频提供方指视频的出版者,即视频版权的所有方。
147.步骤702:视频提供方通过密钥对视频数据进行加密,并将密钥的密钥标识与数据版权中心的url置入文件头。
148.在实际实施时,通过密钥对视频数据进行加密后,将密钥标识、数字版权管理中心的url、版本号等信息存放在文件头部,并根据私有签名密钥签名其头部。
149.步骤703:视频提供方对文件头与加密后的媒体数据进行封装,得到加密文件。
150.这里,将加密后的媒体数据与头部一起打包成特定格式的加密文件。如,加密文件可为扩展名为.wmv形式。
151.步骤704:视频提供方将加密文件存储至视频服务器的数据库。
152.这里,将加密文件与视频标识配对存入视频服务器的数据库。
153.步骤705:视频提供方将密钥及密钥标识配对存储至数字版权管理中心的数据库。
154.步骤706:视频客户端接收到针对视频的播放指令。
155.这里,用户可以通过在视频客户端上,针对视图界面呈现的视频播放按键执行点击操作,以触发针对视频的播放指令。
156.步骤707:视频客户端发送携带有视频标识的视频数据获取请求。
157.这里,客户端响应于播放指令,通过drm插件发送相应的媒体数据获取请求。
158.步骤708:视频服务器返回对应视频标识的加密文件。
159.这里,视频服务器通过视频标识获取到对应的加密文件,并将加密文件返回给视频客户端。
160.步骤709:视频客户端发送携带有用户身份信息及密钥标识的授权请求。
161.步骤710:数字版权管理中心基于用户身份信息,进行身份验证。
162.例如,对于仅vip用户有权限播放的视频文件,数字版权管理中心会将用户身份信息与vip用户信息记录中的用户信息进行匹配,以判断目标用户是否为vip用户。
163.步骤711:验证通过后,数字版权管理中心返回对应密钥标识的密钥。
164.步骤712:视频客户端解析加密文件,得到加密的视频数据。
165.步骤713:视频客户端通过返回的密钥对加密的视频数据进行解密,得到解密后的视频数据。
166.步骤714:视频客户端调用系统播放器,播放解密后的视频数据。
167.在实际实施时,客户端对视频数据进行封装得到视频文件,调用系统播放器,使视频播放器对视频文件进行解码及播放。
168.下面,将说明本发明实施例在一个实际的应用场景中的示例性应用。图12为本发明实施例提供的媒体文件的播放方法的流程示意图,下面结合图12对本发明实施例提供的媒体数据的播放方法进行说明。
169.步骤801:将媒体文件进行解封装,得到媒体数据,并通过加密工具对媒体数据进行加密。
170.在实际实施时,加密工具创建私有签名密钥、公有签名密钥、许可密钥种子和密钥标识,并由许可密钥种子和密钥标识生成一个密钥,用来加密保护媒体数据。
171.步骤802:将加密后的媒体数据封装成特定格式的加密文件。
172.在实际实施时,将密钥标识、数字版权管理中心的url、版本号等信息存放在文件头部,并根据私有签名密钥签名其头部,将加密后的媒体数据与头部一起打包成特定格式的加密文件。如,加密文件可为扩展名为.asf、.wma、.wmv形式。
173.步骤803:将加密媒体数据的密钥与密钥标识匹配起来,并存储在密钥数据库中。
174.步骤804:将加密文件与媒体文件标识匹配起来,存储在媒体数据库中。
175.步骤805:客户端响应于针对媒体文件的播放指令,通过drm插件从内容服务器获取加密文件。
176.这里,drm插件集成在客户端中,客户端可以为音乐客户端、视频客户端、微博客户端等具有媒体内容播放功能的客户端。
177.在实际实施时,用户可以通过在客户端上,针对视图界面呈现的媒体文件播放按键执行点击操作,以触发针对媒体文件的播放指令。客户端接收到针对媒体文件的播放指令,并响应于播放指令,通过drm插件发送相应的媒体数据获取请求。这里,媒体数据获取请求携带有媒体文件标识,以使内容服务器能够根据数据获取请求中携带的媒体文件标识,查找到对应的加密文件,并将加密文件返回给客户端。
178.步骤806:drm插件基于url,从数字版权管理中心获取加密文件的密钥。
179.在实际实施时,客户端根据url,链接到数字版权管理中心,向数据版权管理中心发送对应媒体文件的授权请求。其中,授权请求携带有密钥标识及用户身份信息,数字版权管理中心根据用户身份信息,判断用户是否具有播放媒体文件的权限,若有,则从密钥数据库中获取密钥标识对应的密钥;否则,返回请求失败的信息。
180.步骤807:drm插件通过密钥对加密文件进行解密,得到媒体数据,解密成功后将音视频数据重新封装成媒体流,并创建微型本地流服务器,调用系统播放器,播放媒体数据。
181.在实际实施时,对加密文件进行解析,得到加密后的媒体数据;基于返回的密钥,对加密的媒体数据进行解密,得到解密后的媒体数据;将媒体数据封装成特定格式的媒体文件后,创建微型本地流服务器;调用系统播放器,是系统播放器从客户端的drm插件获取特定格式的媒体文件,对特定格式的媒体文件进行解码及播放。
182.在一些实施例中,在数字版权管理中心将密钥发送至终端时,存在被截获的可能,若该密钥被黑客截获,便能够解密加密文件,播放媒体文件。通过将密钥分成两把,一把存储在数字版权管理中心,一把存储在终端本地,必须同时获取两把密钥,才能够对加密文件进行解密,以加强密钥的安全性。
183.这里,由于已经对加密的媒体数据进行解密,系统播放器获取到的是未加密的媒体数据,即使是android8.0之前的系统播放器也能够对该媒体数据进行播放。
184.下面继续说明本发明实施例提供的媒体文件的播放装置255的实施为软件模块的示例性结构,图13为本发明实施例提供的媒体文件的播放装置的结构示意图,参见图13,媒体文件的播放装置255中的软件模块可以包括:
185.第一发送模块2551,用于响应于针对媒体文件的播放指令,发送相应的媒体数据获取请求;
186.第一接收模块2552,用于接收到返回的加密文件,所述加密文件的文件头包括对应数字版权管理中心的url,所述加密文件的文件体包括所述媒体数据;
187.第二发送模块2553,用于基于所述url,发送对应所述媒体文件的授权请求;
188.第二接收模块2554,用于接收到返回的对应所述加密文件的密钥,所述密钥为所述数字版权管理中心基于所述授权请求进行数字版权验证通过后返回的;
189.解密模块2555,用于基于返回的所述密钥,对所述加密文件进行解密,得到所述媒体数据;
190.播放模块2556,用于调用系统播放器,对所述媒体数据进行播放。
191.在一些实施例中,所述第一发送模块2551,还用于响应于针对媒体文件的播放指令,通过数字版权管理插件,发送相应的媒体数据获取请求,所述媒体数据获取请求携带有媒体文件标识。
192.在一些实施例中,所述第一接收模块2552,还用于接收到基于所述媒体文件标识返回的加密文件;
193.其中,所述加密文件为对所述媒体文件进行解封装,得到所述媒体数据;通过密钥对所述媒体数据进行加密,并将对应所述密钥的密钥标识与数字版权管理中心的url置入文件头,对所述文件头与加密后的所述媒体数据进行封装得到的。
194.在一些实施例中,所述第二发送模块2553,还用于获取所述播放指令对应的目标用户的用户身份信息;
195.发送携带有密钥标识及用户身份信息的授权请求至所述数字版权管理中心,以基于所述用户身份信息进行数字版权验证,并在验证通过后,返回所述密钥标识对应的密钥。
196.在一些实施例中,所述解密模块2555,还用于对所述加密文件进行解析,得到加密后的所述媒体数据;
197.基于返回的所述密钥,对所述加密的所述媒体数据进行解密,得到解密后的所述媒体数据。
198.在一些实施例中,所述解密模块2555,还用于在本地获取与所述加密文件相对应的本地密钥;
199.将所述本地密钥及返回的所述密钥进行组合,得到组合密钥;
200.基于所述组合密钥对所述加密文件进行解密。
201.在一些实施例中,所述播放模块2556,还用于将所述媒体数据封装成特定格式的媒体文件;
202.调用所述系统播放器,对所述特定格式的媒体文件进行解码及播放。
203.在一些实施例中,所述装置还包括:存储模块,用于存储返回的所述密钥至区块链网络。
204.本发明实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的媒体文件的播放方法,例如,如图3示出的方法。
205.在一些实施例中,存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
206.在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
207.作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
208.作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
209.以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1