CN105635149A - 流媒体加密方法、装置和系统 - Google Patents

流媒体加密方法、装置和系统 Download PDF

Info

Publication number
CN105635149A
CN105635149A CN201511026456.6A CN201511026456A CN105635149A CN 105635149 A CN105635149 A CN 105635149A CN 201511026456 A CN201511026456 A CN 201511026456A CN 105635149 A CN105635149 A CN 105635149A
Authority
CN
China
Prior art keywords
encryption
media
data
secret key
service end
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201511026456.6A
Other languages
English (en)
Inventor
杨自清
周峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen TCL New Technology Co Ltd
Shenzhen TCL Digital Technology Co Ltd
Original Assignee
Shenzhen TCL New Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen TCL New Technology Co Ltd filed Critical Shenzhen TCL New Technology Co Ltd
Priority to CN201511026456.6A priority Critical patent/CN105635149A/zh
Publication of CN105635149A publication Critical patent/CN105635149A/zh
Priority to PCT/CN2016/084856 priority patent/WO2017113610A1/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0457Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply dynamic encryption, e.g. stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation

Abstract

本发明公开了一种流媒体加密方法,该方法包括:服务端根据流媒体原文件,得到元数据和媒体数据;根据预设的加密秘钥和加密信息,所述服务端加密所述媒体数据得到加密盒;所述服务端根据所述流媒体原文件的格式、所述元数据和所述加密盒,创建加密流媒体文件。本发明还公开了一种流媒体加密装置和系统。本发明大大减轻了服务端的加密工作量,提高了服务端的效率;同时,实现了不破坏流媒体原文件的格式成功加密流媒体文件,降低了客户端的开发成本。

Description

流媒体加密方法、装置和系统
技术领域
本发明涉及数字版权管理领域,尤其涉及一种流媒体加密方法、装置和系统。
背景技术
流媒体又叫流式媒体,采用流媒体技术,用户无需等待媒体内容全部下载完成,可以一边下载一边播放,节省了用户的等待时间和存储空间。基于当前计算机技术和网络技术的快速发展,用户使用流媒体技术收看媒体内容已成为了当前重要的一种多媒体观看途径。内容提供商或者版权所有者为了保障自己的利益,防止媒体内容被非法复制、肆意传播,通常会对流媒体进行加密,用户得到授权后才能获取媒体内容,从而实现对流媒体的版权保护。
当前,对流媒体的加密主要采用DRM(DigitalRightsManagement,数字版权管理),用于控制和限制流媒体的使用权。主流的DRM方案包括Microsoft(微软)的PlayReady,Google(谷歌)的Widevine,以及三星、飞利浦、松下等公司共同组建的Marlin等。虽然具体的实现方式有差异,但是目前的DRM方案具有一个共同的特点,就是对多媒体的容器格式进行了更改,增加了客户端的负担。
例如,Microsoft(微软)使用ASF(AdvancedStreamingFormat,高级串流格式)输出流媒体文件。ASF文件是一个容器,通常由3部分组成:文件头对象(HeaderObject)、数据对象(DataObject)和索引对象(IndexObject),其中文件头对象和索引对象均为元数据,数据对象为媒体数据。PlayReady在对ASF文件进行加密时,增加ProtectionSystemIdentifierObject(保护系统标识符对象)到ASFHeaderobject(ASF文件头对象)中,修改了元数据中的theStreamPropertiesobject(流属性对象)表明每一路流是加密的,还会增加payloadextensions(有效载荷扩展)用于存储SamleID(采样ID),最后再加上ASFobject(ASF对象)的size(数据大小)和offsets(补偿)。这种加密方式不仅修改了ASF文件的元数据,还使得原有的ASF文件格式变得面貌全非。另外,由于PlayReady加密媒体数据中的每个mediaobject(媒体对象),也即加密每一个video/audiosamples(音视频采样),导致加密数据量大,工作负担重。
当客户端收到被修改后的文件格式(或者容器)时,一方面,为了解复用媒体内容,需要修改客户端原有的demux(解复用)模块来适应新的文件格式,这大大增加了客户端demux模块的兼容性开发工作;另一方面,客户端必须逐个对加密的video/audiosample进行解密,严重耗费了客户端的资源,减慢了系统进程。
由此可见,现有的流媒体加密技术不仅数据加密工作量大,而且对原文件格式或容器格式的修改,破坏了原文件的格式,导致客户端的负荷加重。
发明内容
本发明的主要目的在于提供一种流媒体加密方法、装置和系统,旨在解决现有流媒体加密技术破坏原有文件格式、数据加密工作量大的技术问题。
为实现上述目的,本发明提供一种流媒体加密方法,所述流媒体加密方法包括以下步骤:
服务端根据流媒体原文件,得到元数据和媒体数据;
根据预设的加密秘钥和加密信息,所述服务端加密所述媒体数据得到加密盒;
所述服务端根据所述流媒体原文件的格式、所述元数据和所述加密盒,创建加密流媒体文件。
在一个实施例中,所述根据预设的加密秘钥和加密信息,所述服务端加密所述媒体数据得到加密盒的步骤包括:
所述服务端按预设的数据量划分所述媒体数据,得到各数据片段;
根据预设的加密秘钥和加密信息,所述服务端获取所述各数据片段的加密秘钥和加密信息;
根据所述各数据片段的加密秘钥和加密信息,所述服务端分别加密所述各数据片段得到各加密盒。
在一个实施例中,所述根据所述各数据片段的加密秘钥和加密信息,所述服务端分别加密所述各数据片段得到各加密盒的步骤之后,还包括:
所述服务端判断所述各数据片段是否已全部完成加密;
若所述各数据片段未全部完成加密,则转入执行步骤:根据预设的加密秘钥和加密信息,所述服务端获取所述各数据片段的加密秘钥和加密信息;
若所述各数据片段已全部完成加密,则转入执行步骤:所述服务端根据所述流媒体原文件的格式、所述元数据和所述加密盒,创建加密流媒体文件。
在一个实施例中,所述服务端根据所述流媒体原文件的格式、所述元数据和所述加密盒,创建加密流媒体文件的步骤之后,还包括:
所述服务端向客户端发布所述加密流媒体文件。
此外,为实现上述目的,本发明还提供一种流媒体加密装置,所述流媒体加密装置包括:
获取模块,用于根据流媒体原文件,得到元数据和媒体数据;
加密模块,用于根据预设的加密秘钥和加密信息,加密所述媒体数据得到加密盒;
创建模块,用于根据所述流媒体原文件的格式、所述元数据和所述加密盒,创建加密流媒体文件。
在一个实施例中,所述加密模块包括:
划分单元,用于按预设的数据量划分所述媒体数据,得到各数据片段;
秘钥单元,用于根据预设的加密秘钥和加密信息,获取所述各数据片段的加密秘钥和加密信息;
加密单元,用于根据所述各数据片段的加密秘钥和加密信息,分别加密所述各数据片段得到各加密盒。
在一个实施例中,所述加密模块还包括:
判断单元,用于判断所述各数据片段是否已全部完成加密。
在一个实施例中,所述流媒体加密装置还包括:
发布模块,用于向客户端发布所述加密流媒体文件。
此外,为实现上述目的,本发明还提供一种流媒体加密系统,所述流媒体加密系统包括服务端和客户端,其中:
所述服务端包括获取模块、加密模块、创建模块和发布模块;
所述客户端,用于从所述服务端获取加密流媒体文件。
在一个实施例中,所述服务端预设有解密秘钥,所述解密秘钥与所述预设的加密秘钥、加密信息对应,所述客户端还用于,
获取所述加密流媒体文件中加密盒的加密信息,根据所述加密信息从所述服务端获取所述加密盒的解密秘钥;
根据所述解密秘钥,解密所述加密盒得到数据片段;
解析所述数据片段得到媒体内容,将所述媒体内容呈现给用户。
本发明实施例提出的一种流媒体加密方法、装置和系统,通过服务端分离流媒体原文件的元数据和媒体数据,仅对媒体数据进行加密得到加密盒,并将元数据与加密盒根据流媒体原文件的格式写入新创建的加密流媒体文件,实现了加密流媒体文件与流媒体原文件格式保持一致。同时,在对媒体数据进行加密时,服务端无需对每一个媒体数据采样进行加密,大大减轻了服务端的加密工作量,提高了服务端的效率。本发明实施例解决了流媒体加密技术破坏原有文件格式、数据加密工作量大的技术问题,实现了不破坏流媒体原文件的格式成功加密流媒体文件,并减少了数据加密的工作量,效果显著,有效提升了服务端的效率。
附图说明
图1为本发明流媒体加密方法第一实施例的流程示意图;
图2为本发明流媒体加密方法第二实施例的流程示意图;
图3为本发明流媒体加密方法第三实施例的流程示意图;
图4为本发明流媒体加密方法第四实施例的流程示意图;
图5为本发明流媒体加密装置第一实施例的功能模块示意图;
图6为本发明流媒体加密装置第二实施例的功能模块示意图;
图7为本发明流媒体加密装置第三实施例的功能模块示意图;
图8为本发明流媒体加密装置第四实施例的功能模块示意图;
图9为本发明流媒体加密系统第一实施例、第二实施例的模块示意图;
图10为本发明实施例中一种ASF流媒体文件的加密应用场景示意图;
图11为本发明实施例中一种ASF流媒体文件格式示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:服务端根据流媒体原文件,得到元数据和媒体数据;根据预设的加密秘钥和加密信息,所述服务端加密所述媒体数据得到加密盒;所述服务端根据所述流媒体原文件的格式、所述元数据和所述加密盒,创建加密流媒体文件。
由于现有技术在对流媒体文件进行加密时,对每一个媒体数据采样进行加密,并且更改了流媒体文件的原格式,导致加密工作量大;客户端在收到加密后的流媒体文件时,需要对应修改自己的解复用模块,研发成本大,而且客户端需要对每一个媒体数据采样进行解密,解密工作量大。
本发明提供一种解决方案,在对媒体数据进行加密时,服务端无需对每一个媒体数据采样进行加密,大大减轻了服务端的加密工作量,提高了服务端的效率。同时,实现了不破坏流媒体原文件的格式成功加密流媒体文件,避免可客户端对解复用模块的修改,降低了客户端的开发成本。
参照图1,本发明流媒体加密方法第一实施例提供一种流媒体加密方法,所述流媒体加密方法包括:
步骤S10、服务端根据流媒体原文件,得到元数据和媒体数据。
本发明实施例中,服务端通过将流媒体原文件的元数据和媒体数据分开,仅加密媒体数据,从而实现得到的加密流媒体文件格式保持不变。当然,本实施例中,服务端也可以为其他具有加密功能的硬件设备。
具体的,作为一种实施方式,首先,服务端从流媒体源获取流媒体原文件。流媒体原文件包括元数据和媒体数据。
其中,元数据是用于描述流媒体原文件的数据,包括识别数据、文件属性数据、媒体属性数据、索引数据等,可根据实际需要灵活设置;媒体数据包括当前流媒体原文件携带的媒体内容数据,例如图形、图像、音频、视频等。
然后,服务端解析流媒体原文件,得到元数据和媒体数据。
步骤S20、根据预设的加密秘钥和加密信息,所述服务端加密所述媒体数据得到加密盒。
在得到元数据和媒体数据后,服务端根据预设的加密秘钥和加密信息,加密媒体数据得到加密盒。
具体的,作为一种实施方式,首先,服务端将媒体数据进行划分,得到媒体数据的数据片段。服务端可以预设数据量,按照预设的数据量对媒体数据进行划分,得到数据量相同的多个数据片段;服务端也可以预设片段数量,根据预设的片段数量对媒体数据进行等分,得到预设数量的数据片段,得到的数据片段数据量相同;当然,服务端也可以根据其他预设规则,划分媒体数据得到数据片段,可根据实际需要灵活设置。一个数据片段中包括一个或多个媒体数据采样,可根据实际需要设置。
服务端预设有数据片段的加密秘钥和加密信息。预设的加密信息为加密秘钥的识别信息,具有唯一性,可以使用加密信息标识当前数据片段被加密为加密数据所使用的加密秘钥。服务器还预设有加密秘钥对应的解密秘钥,解密秘钥用于解密加密秘钥加密后的数据。需要说明的是,加密秘钥和对应的解密秘钥共用同一加密信息,也即加密秘钥、解密秘钥和加密信息为一一对应的映射关系,服务器根据加密信息即可获取对应的加密秘钥和解密秘钥。
然后,服务端根据得到的数据片段,分配加密秘钥和加密信息。若当前要对所有的数据片段使用相同的加密秘钥进行加密,则服务器向所有的数据片段分配相同的加密秘钥和加密信息;若当前要对数据片段使用不同的加密秘钥进行加密,则服务器向不同的数据片段分配不同的加密秘钥和加密秘钥对应的加密信息。
然后,根据数据片段的加密秘钥,分别对数据片段进行加密。
例如,根据播放时间的先后顺序,当前服务端得到的数据片段包括数据片段1、数据片段2、数据片段3……数据片段n,共n个数据片段。
服务端根据数据片段1的加密秘钥对数据片段1进行加密,得到加密数据1。
然后,服务端创建加密盒1,将得到的加密数据1和加密秘钥对应的加密信息填充到加密盒1中。
然后,服务端获取加密盒1的相关信息数据,并将信息数据填充到加密盒1中,完成加密盒1的填充。加密盒1的相关信息数据包括加密盒1的标识信息、加密盒1的数据大小、加密数据1的数据大小等信息,可根据实际需要灵活设置。
由此,服务端得到携带媒体数据的加密盒1。
然后,服务端对数据片段2、数据片段3……数据片段n分别进行加密,得到加密盒2、加密盒3……加密盒n。
由此,服务端完成对媒体数据的加密,得到加密盒。
步骤S30、所述服务端根据所述流媒体原文件的格式、所述元数据和所述加密盒,创建加密流媒体文件。
在完成对媒体数据的加密后,服务端根据得到的元数据和加密盒创建加密流媒体文件。
具体的,作为一种实施方式,首先,服务端新建加密流媒体文件,新建的加密流媒体文件无具体的文件内容。
然后,服务端根据流媒体原文件的格式,将获取的元数据写入加密流媒体文件,使元数据在加密流媒体文件中的格式与元数据在流媒体原文件中的格式保持相同,例如:使元数据在加密流媒体文件的位置与元数据在流媒体原文件中的位置相同。使元数据与加密盒在加密流媒体文件的排序,和元数据与媒体数据在流媒体原文件中的排序保持一致。
服务端根据流媒体原文件的格式,将获取的加密盒作为媒体数据写入加密流媒体文件,使加密盒在加密流媒体文件中的格式与媒体数据在流媒体原文件中的格式保持相同。例如,使元数据与加密盒在加密流媒体文件的排序,和元数据与媒体数据在流媒体原文件中的排序保持一致。
由此,完成流媒体原文件的加密,得到加密流媒体文件。得到的加密流媒体文件与流媒体原文件的格式相同。同时,由于服务端将媒体数据进行分段加密,无需对媒体数据中的每一个媒体数据采样进行加密,大大减轻了服务端对媒体数据的加密工作量。
作为另一种实施方式,服务端可以预先创建加密流媒体文件,首先将获取的元数据根据流媒体原文件的格式写入加密流媒体文件,然后再对媒体数据进行加密。服务端在得到加密盒后,依次将得到的加密盒写入加密流媒体文件,直至完成所有媒体数据的加密。
由此,完成流媒体原文件的加密,得到加密流媒体文件。得到的加密流媒体文件与流媒体原文件的格式相同。同时,由于服务端将媒体数据进行分段加密,无需对媒体数据中的每一个采样进行加密,大大减轻了服务端对媒体数据的加密工作量。
以当前应用场景为ASF(AdvancedStreamingFormat,高级串流格式)流媒体文件的加密,进行举例说明。
参照图10,服务端包括加密服务器、流媒体内容发布服务器和许可服务器;客户端包括控制管理模块、网络下载模块、解密数据模块、文件格式解复用模块和解码呈现模块。
首先,加密服务器从流媒体源获取ASF流媒体文件,ASF流媒体文件包括:文件头对象(HeaderObject)、数据对象(DataObject)和索引对象(IndexObject),其中文件头对象和索引对象均为元数据,数据对象为媒体数据。加密服务器解析ASF流媒体文件,得到元数据和媒体数据。
然后,加密服务器根据预设的数据量,将数据对象分为大小相同的数据片段。
然后,加密服务器从许可服务器获取预设的加密秘钥和加密信息。各数据片段可使用相同的加密秘钥加密,也可使用不同的加密秘钥加密,可根据实际需要灵活设置。加密服务器根据得到的加密秘钥分别对数据片段进行加密,得到对应的加密盒。
加密服务器创建加密流媒体文件,参照图11,根据ASF流媒体文件的格式,首先将元数据中的文件头对象写入加密流媒体文件,然后将得到的加密盒写入加密流媒体文件,最后将元数据中的索引对象写入加密流媒体文件。
由此,加密服务器完成对ASF流媒体文件的加密,得到加密流媒体文件。然后,加密服务器将得到的加密流媒体文件推送给流媒体内容发布服务器。
流媒体内容发布服务器在收到加密流媒体文件后,将加密流媒体文件发布给客户端的网络下载模块。
当用户需要获取此加密流媒体文件时,控制管理模块协调管理网络下载模块、解密数据模块、文件格式解复用模块和解码呈现模块,获取加密流媒体文件并进行解密,呈现给用户。
具体的,首先,控制网络下载模块从流媒体内容发布服务器发出请求,下载加密流媒体文件。然后,解密数据模块解析得到的加密流媒体文件,得到加密盒。
解密数据模块从得到的加密盒获取加密盒中的加密信息,并根据得到的加密信息向许可服务器发送许可请求,许可请求携带有加密信息。
许可服务器收到解密数据模块发送的许可请求后,根据许可请求携带的加密信息,查找加密信息对应的解密秘钥;然后,许可服务器将解密秘钥返回给解密数据模块。
解密数据模块收到解密秘钥后,根据解密秘钥对各加密盒中的加密数据进行解密,得到媒体数据的每一个数据片段。
然后,文件格式解复用模块对得到的媒体数据片段进行解析,得到每一个媒体数据采样和显示时间戳等信息。
然后,解码呈现模块根据得到的媒体数据采样和显示时间戳等信息解码媒体数据内容,并在客户端的显示屏中呈现媒体内容。
由此,实现了流媒体原文件的加密和解密。
在本实施例中,服务端根据流媒体原文件,得到元数据和媒体数据;然后,根据预设的加密秘钥和加密信息,服务端加密媒体数据得到加密盒;然后,根据流媒体原文件的格式、元数据和加密盒,服务端创建加密流媒体文件,完成对流媒体原文件的加密。本实施通过服务端分离流媒体原文件的元数据和媒体数据,仅对媒体数据进行加密得到加密盒,并将元数据与加密盒根据流媒体原文件的格式写入新创建的加密流媒体文件,实现了加密流媒体文件与流媒体原文件格式保持一致。同时,在对媒体数据进行加密时,服务端无需对每一个媒体数据采样进行加密,大大减轻了服务端的加密工作量,提高了服务端的效率。本实施例解决了流媒体加密技术破坏原有文件格式、数据加密工作量大的技术问题,实现了不破坏流媒体原文件的格式成功加密流媒体文件,并减少了数据加密的工作量,效果显著,有效提升了服务端的效率。
进一步的,参照图2,本发明流媒体加密方法第二实施例提供一种流媒体加密方法,基于上述图1所示的实施例,所述步骤S20包括:
步骤S21、所述服务端按预设的数据量划分所述媒体数据,得到各数据片段。
在得到流媒体原文件的媒体数据后,首先,服务端按预设的数据量等量划分媒体数据。
其中,预设的数据量为数据的字节大小,可根据应用场景和客户需要灵活设置。例如,为保障得到的媒体数据在解析后,更精确的组合为媒体内容呈现给用户,可以设置数据量较小;为提高媒体内容播放的流畅度,使用户下载更快,可以设置数据量较大。一个数据片段中包括一个或多个媒体数据采样,可根据实际需要设置。
服务端将媒体数据划分为等量大小的片段,得到各数据片段。同时,服务端记载各数据片段在流媒体原文件中的起始位置。
步骤S22、根据预设的加密秘钥和加密信息,所述服务端获取所述各数据片段的加密秘钥和加密信息。
在得到各数据片段后,服务端根据预设的加密秘钥和加密信息,获取各数据片段的加密秘钥和加密信息。
具体的,作为一种实施方式,服务端预设有加密秘钥和加密信息。预设的加密信息为加密秘钥的识别信息,具有唯一性,可以使用加密信息标识当前数据片段被加密为加密数据所使用的加密秘钥。服务器还预设有加密秘钥对应的解密秘钥,解密秘钥用于解密加密秘钥加密后的数据。需要说明的是,加密秘钥和对应的解密秘钥共用同一加密信息,也即加密秘钥、解密秘钥和加密信息为一一对应的映射关系,服务器根据加密信息即可获取对应的加密秘钥和解密秘钥。
然后,服务端根据得到的数据片段,分配加密秘钥和加密信息。若当前要对所有的数据片段使用相同的加密秘钥进行加密,则服务器向所有的数据片段分配相同的加密秘钥和加密信息;若当前要对数据片段使用不同的加密秘钥进行加密,则服务器向不同的数据片段分配不同的加密秘钥和加密秘钥对应的加密信息。
由此,服务端得到各片段的加密秘钥和加密信息。
步骤S23、根据所述各数据片段的加密秘钥和加密信息,所述服务端分别加密所述各数据片段得到各加密盒。
在得到各数据片段的加密秘钥和加密信息后,服务端分别加密各数据片段得到各加密盒。
具体的,作为一种实施方式,服务端构建一个加密盒,加密盒的数据结构如下表1所示。
名称 数据量
Signature ID(签名标识) 32bits(比特)
Total size(总数据量) 32bits
Offset to origin file(对源文件的补偿) 32bits
DRM data length(DRM数据长度) 32bits
DRM data(DRM数据) -
Encrypted data length(加密数据长度) 32bits
Encrypted data(加密数据) -
表1
其中,SignatureID为32bits,也即4bytes大小的固定数据,例如0x05050303,用于标识加密盒,并且是整个加密盒的唯一标示。
Totalsize数据量为32bits,用于记载整个加密盒的数据量大小。
Offsettooriginfile数据量为32bits,用于记载加密数据在流媒体原文件中的数据偏移量,也即当前加密盒携带的数据片段在在流媒体原文件中的起始位置。
DRMdata为当前加密盒中,加密数据所使用的加密秘钥对应的加密信息,用于客户端根据此信息获取对应的解密秘钥。DRMdatalength数据量为32bits,用于记录DRMdata的数据长度,也即记录DRMdata的数据量。
Encrypteddata为当前加密盒中携带的加密数据,也即加密后的数据片段。每个加密盒携带一个加密后的数据片段。Encrypteddatalength数据量为32bits,用于记录Encrypteddata的数据长度,也即记录Encrypteddata的数据量。
然后,服务端可以根据数据片段的播放时间先后顺序,依次对数据片段进行加密。服务端获取第一个数据片段,然后,将0x05050303写入SignatureID,用于标识加密盒的存在。
然后,服务端将记录的第一个数据片段在流媒体原文件中的起始位置,写入Offsettooriginfile。
然后,服务端将第一个数据片段的加密信息写入DRMdata;并获取加密信息的数据量,写入DRMdatalength。
然后,服务端根据第一个数据片段的加密秘钥,对第一个数据片段进行加密,得到加密数据。服务端将得到的加密数据写入Encrypteddata;并获取加密数据的信息量,写入Encrypteddatalength。
然后,服务端计算得到当前加密盒的总计数据量,并将得到的数据量写入Totalsize。
由此,服务端完成第一个数据片段的加密,得到第一个加密盒。
然后,服务端继续构建加密盒,依次对数据片段进行加密,得到对应的加密盒。
在本实施例中,服务端按预设的数据量划分媒体数据,得到各数据片段;然后根据预设的加密秘钥和加密信息,获取各数据片段的加密秘钥和加密信息;然后,根据各数据片段的加密秘钥和加密信息,分别加密各数据片段得到各加密盒。本实施例通过将媒体数据进行分段加密,无需对媒体数据中的每一个采样进行加密,大大减轻了服务端对媒体数据的加密工作量;并且,服务端保持流媒体原文件的元数据保持不变,仅加密媒体数据,实现了在不改变流媒体原文件格式的条件下对流媒体文件的加密。
进一步的,参照图3,本发明流媒体加密方法第三实施例还提供一种流媒体加密方法,基于上述图2所示的实施例,所述步骤S23之后,还包括:
步骤S24、所述服务端判断所述各数据片段是否已全部完成加密;若所述各数据片段未全部完成加密,则转入执行步骤:S22;若所述各数据片段已全部完成加密,则转入执行步骤:S30。
在本实施例中,服务端根据各数据片段的加密秘钥和加密信息,依次加密各数据片段。取流媒体原文件的媒体数据长度为m,划分数据片段的预设数据量为k,则服务端依次从媒体数据中截取长度为k的数据片段进行加密得到加密盒。
作为一种实施方式,在得到加密盒后,服务端根据剩余的媒体数据长度判断当前各数据片段是否已全部完成加密;若剩余的媒体数据长度为零,则判定当前各数据片段已全部完成加密;若剩余的媒体数据长度不为零,则判定当前各数据片段未全部完成加密。
若当前各数据片段未全部完成加密,则服务端继续从媒体数据中截取长度为k的数据片段,获取此数据片段的加密秘钥和加密信息,对此数据片段进行加密。得到加密盒后,再次判断当前各数据片段是否已全部完成加密。
若当前各数据片段已全部完成加密,则服务端根据流媒体原文件的格式、元数据和各加密盒,创建加密流媒体文件,完成对流媒体原文件的加密。
在本实施例中,服务端判断各数据片段是否已全部完成加密;若各数据片段未全部完成加密,则服务端继续获取数据片段的加密秘钥和加密信息对数据片段进行加密;若各数据片段已全部完成加密,则服务端根据流媒体原文件的格式、元数据和各加密盒,创建加密流媒体文件,完成对流媒体原文件的加密。本实施例通过判断各数据片段是否已全部完成加密,避免数据片段在加密过程中被遗漏,保证了加密流媒体文件中媒体数据的完整性。
进一步的,参照图4,本发明流媒体加密方法第四实施例提供一种流媒体加密方法,基于上述图1至图3所示的任一实施例(本实施例以图1为例),所述S30的步骤之后,还包括:
所述S40、所述服务端向客户端发布所述加密流媒体文件。
服务端在根据流媒体原文件的格式、元数据和各加密盒,创建加密流媒体文件,完成对流媒体原文件的加密后,向客户端发布得到的加密流媒体文件。
具体的,作为一种实施方式,若当前服务端从流媒体源获取的流媒体原文件有多个,则服务端可以在流媒体原文件全部完成加密后,将得到的多个加密流媒体文件统一打包,向客户端发布。客户端可以一次性的下载得到全部的加密流媒体文件。
作为另一种实施方式,若当前服务端从流媒体源获取的流媒体原文件有多个,服务端可以在每完成一个流媒体原文件的加密后,立即将得到的加密流媒体文件向客户端发布,直至完成全部流媒体原文件的加密和发布。客户端可以依次下载加密流媒体文件进行解密、播放,实现用户在线观看媒体内容。
在本实施例中,完成流媒体原文件的加密,得到加密流媒体文件后,服务端向客户端发布得到的加密流媒体文件,以供客户端下载。本实施例通过服务端主动向客户端发布加密流媒体文件,使客户端可以及时获取加密流媒体文件,一边解密已获取的加密流媒体文件一边继续下载后续的加密流媒体文件,实现了流媒体文件内容的在线连续播放,提高了用户体验。
参照图5,本发明流媒体加密装置第一实施例提供一种流媒体加密装置,所述流媒体加密装置包括:
获取模块10,用于根据流媒体原文件,得到元数据和媒体数据。
本发明实施例中,流媒体加密装置位于服务端中,流媒体加密装置通过将流媒体原文件的元数据和媒体数据分开,仅加密媒体数据,从而实现得到的加密流媒体文件格式保持不变。
具体的,作为一种实施方式,首先,获取模块10从流媒体源获取流媒体原文件。流媒体原文件包括元数据和媒体数据。
其中,元数据是用于描述流媒体原文件的数据,包括识别数据、文件属性数据、媒体属性数据、索引数据等,可根据实际需要灵活设置;媒体数据包括当前流媒体原文件携带的媒体内容数据,例如图形、图像、音频、视频等。
然后,获取模块10解析流媒体原文件,得到元数据和媒体数据。
加密模块20,用于根据预设的加密秘钥和加密信息,加密所述媒体数据得到加密盒。
在得到元数据和媒体数据后,加密模块20根据预设的加密秘钥和加密信息,加密媒体数据得到加密盒。
具体的,作为一种实施方式,首先,加密模块20将媒体数据进行划分,得到媒体数据的数据片段。加密模块20可以预设数据量,按照预设的数据量对媒体数据进行划分,得到数据量相同的多个数据片段;加密模块20也可以预设片段数量,根据预设的片段数量对媒体数据进行等分,得到预设数量的数据片段,得到的数据片段数据量相同;当然,加密模块20也可以根据其他预设规则,划分媒体数据得到数据片段,可根据实际需要灵活设置。一个数据片段中包括一个或多个媒体数据采样,可根据实际需要设置。
加密模块20预设有数据片段的加密秘钥和加密信息。预设的加密信息为加密秘钥的识别信息,具有唯一性,可以使用加密信息标识当前数据片段被加密为加密数据所使用的加密秘钥。服务器还预设有加密秘钥对应的解密秘钥,解密秘钥用于解密加密秘钥加密后的数据。需要说明的是,加密秘钥和对应的解密秘钥共用同一加密信息,也即加密秘钥、解密秘钥和加密信息为一一对应的映射关系,服务器根据加密信息即可获取对应的加密秘钥和解密秘钥。
然后,加密模块20根据得到的数据片段,分配加密秘钥和加密信息。若当前要对所有的数据片段使用相同的加密秘钥进行加密,则服务器向所有的数据片段分配相同的加密秘钥和加密信息;若当前要对数据片段使用不同的加密秘钥进行加密,则服务器向不同的数据片段分配不同的加密秘钥和加密秘钥对应的加密信息。
然后,根据数据片段的加密秘钥,分别对数据片段进行加密。
例如,根据播放时间的先后顺序,当前加密模块20得到的数据片段包括数据片段1、数据片段2、数据片段3……数据片段n,共n个数据片段。
加密模块20根据数据片段1的加密秘钥对数据片段1进行加密,得到加密数据1。
然后,加密模块20创建加密盒1,将得到的加密数据1和加密秘钥对应的加密信息填充到加密盒1中。
然后,加密模块20获取加密盒1的相关信息数据,并将信息数据填充到加密盒1中,完成加密盒1的填充。加密盒1的相关信息数据包括加密盒1的标识信息、加密盒1的数据大小、加密数据1的数据大小等信息,可根据实际需要灵活设置。
由此,加密模块20得到携带媒体数据的加密盒1。
然后,加密模块20对数据片段2、数据片段3……数据片段n分别进行加密,得到加密盒2、加密盒3……加密盒n。
由此,加密模块20完成对媒体数据的加密,得到加密盒。
创建模块30,用于根据所述流媒体原文件的格式、所述元数据和所述加密盒,创建加密流媒体文件。
在完成对媒体数据的加密后,创建模块30根据得到的元数据和加密盒创建加密流媒体文件。
具体的,作为一种实施方式,首先,创建模块30新建加密流媒体文件,新建的加密流媒体文件无具体的文件内容。
然后,创建模块30根据流媒体原文件的格式,将获取的元数据写入加密流媒体文件,使元数据在加密流媒体文件中的格式与元数据在流媒体原文件中的格式保持相同,例如:使元数据在加密流媒体文件的位置与元数据在流媒体原文件中的位置相同。
创建模块30根据流媒体原文件的格式,将获取的加密盒作为媒体数据写入加密流媒体文件,使加密盒在加密流媒体文件中的格式与媒体数据在流媒体原文件中的格式保持相同。例如,使元数据与加密盒在加密流媒体文件的排序,和元数据与媒体数据在流媒体原文件中的排序保持一致。
由此,完成流媒体原文件的加密,得到加密流媒体文件。得到的加密流媒体文件与流媒体原文件的格式相同。同时,由于加密模块20将媒体数据进行分段加密,无需对媒体数据中的每一个媒体数据采样进行加密,大大减轻了加密模块20对媒体数据的加密工作量。
作为另一种实施方式,创建模块30可以预先创建加密流媒体文件,首先将获取的元数据根据流媒体原文件的格式写入加密流媒体文件,然后再对媒体数据进行加密。创建模块30在得到加密盒后,依次将得到的加密盒写入加密流媒体文件,直至完成所有媒体数据的加密。
由此,完成流媒体原文件的加密,得到加密流媒体文件。得到的加密流媒体文件与流媒体原文件的格式相同。同时,由于加密模块20将媒体数据进行分段加密,无需对媒体数据中的每一个采样进行加密,大大减轻了加密模块20对媒体数据的加密工作量。
在本实施例中,获取模块10根据流媒体原文件,得到元数据和媒体数据;然后,根据预设的加密秘钥和加密信息,加密模块20加密媒体数据得到加密盒;然后,根据流媒体原文件的格式、元数据和加密盒,创建模块30创建加密流媒体文件,完成对流媒体原文件的加密。本实施通过分离流媒体原文件的元数据和媒体数据,仅对媒体数据进行加密得到加密盒,并将元数据与加密盒根据流媒体原文件的格式写入新创建的加密流媒体文件,实现了加密流媒体文件与流媒体原文件格式保持一致。同时,在对媒体数据进行加密时,服务端无需对每一个媒体数据采样进行加密,大大减轻了服务端的加密工作量,提高了服务端的效率。本实施例解决了流媒体加密技术破坏原有文件格式、数据加密工作量大的技术问题,实现了不破坏流媒体原文件的格式成功加密流媒体文件,并减少了数据加密的工作量,效果显著,有效提升了服务端的效率。
进一步的,参照图6,本发明流媒体加密装置第二实施例提供一种流媒体加密装置,基于上述图5所示的实施例,所述加密模20包括:
划分单元21,用于按预设的数据量划分所述媒体数据,得到各数据片段。
在得到流媒体原文件的媒体数据后,首先,划分单元21按预设的数据量等量划分媒体数据。
其中,预设的数据量为数据的字节大小,可根据应用场景和客户需要灵活设置。例如,为保障得到的媒体数据在解析后,更精确的组合为媒体内容呈现给用户,可以设置数据量较小;为提高媒体内容播放的流畅度,使用户下载更快,可以设置数据量较大。一个数据片段中包括一个或多个媒体数据采样,可根据实际需要设置。
划分单元21将媒体数据划分为等量大小的片段,得到各数据片段。同时,划分单元21记载各数据片段在流媒体原文件中的起始位置。
秘钥单元22,用于根据预设的加密秘钥和加密信息,获取所述各数据片段的加密秘钥和加密信息。
在得到各数据片段后,秘钥单元22根据预设的加密秘钥和加密信息,获取各数据片段的加密秘钥和加密信息。
具体的,作为一种实施方式,秘钥单元22预设有加密秘钥和加密信息。预设的加密信息为加密秘钥的识别信息,具有唯一性,可以使用加密信息标识当前数据片段被加密为加密数据所使用的加密秘钥。秘钥单元22还预设有加密秘钥对应的解密秘钥,解密秘钥用于解密加密秘钥加密后的数据。需要说明的是,加密秘钥和对应的解密秘钥共用同一加密信息,也即加密秘钥、解密秘钥和加密信息为一一对应的映射关系,秘钥单元22根据加密信息即可获取对应的加密秘钥和解密秘钥。
然后,秘钥单元22根据得到的数据片段,分配加密秘钥和加密信息。若当前要对所有的数据片段使用相同的加密秘钥进行加密,则秘钥单元22向所有的数据片段分配相同的加密秘钥和加密信息;若当前要对数据片段使用不同的加密秘钥进行加密,则秘钥单元22向不同的数据片段分配不同的加密秘钥和加密秘钥对应的加密信息。
由此,秘钥单元22得到各片段的加密秘钥和加密信息。
加密单元23,用于根据所述各数据片段的加密秘钥和加密信息,分别加密所述各数据片段得到各加密盒。
在得到各数据片段的加密秘钥和加密信息后,加密单元23分别加密各数据片段得到各加密盒。
具体的,作为一种实施方式,服务端构建一个加密盒,加密盒的数据结构如上述表1所示。
其中,SignatureID为32bits,也即4bytes大小的固定数据,例如0x05050303,用于标识加密盒,并且是整个加密盒的唯一标示。
Totalsize数据量为32bits,用于记载整个加密盒的数据量大小。
Offsettooriginfile数据量为32bits,用于记载加密数据在流媒体原文件中的数据偏移量,也即当前加密盒携带的数据片段在在流媒体原文件中的起始位置。
DRMdata为当前加密盒中,加密数据所使用的加密秘钥对应的加密信息,用于客户端根据此信息获取对应的解密秘钥。DRMdatalength数据量为32bits,用于记录DRMdata的数据长度,也即记录DRMdata的数据量。
Encrypteddata为当前加密盒中携带的加密数据,也即加密后的数据片段。每个加密盒携带一个加密后的数据片段。Encrypteddatalength数据量为32bits,用于记录Encrypteddata的数据长度,也即记录Encrypteddata的数据量。
然后,加密单元23可以根据数据片段的播放时间先后顺序,依次对数据片段进行加密。加密单元23获取第一个数据片段,然后,将0x05050303写入SignatureID,用于标识加密盒的存在。
然后,加密单元23将记录的第一个数据片段在流媒体原文件中的起始位置,写入Offsettooriginfile。
然后,加密单元23将第一个数据片段的加密信息写入DRMdata;并获取加密信息的数据量,写入DRMdatalength。
然后,加密单元23根据第一个数据片段的加密秘钥,对第一个数据片段进行加密,得到加密数据。服务端将得到的加密数据写入Encrypteddata;并获取加密数据的信息量,写入Encrypteddatalength。
然后,加密单元23计算得到当前加密盒的总计数据量,并将得到的数据量写入Totalsize。
由此,加密单元23完成第一个数据片段的加密,得到第一个加密盒。
然后,加密单元23继续构建加密盒,依次对数据片段进行加密,得到对应的加密盒。
在本实施例中,划分单元21按预设的数据量划分媒体数据,得到各数据片段;然后,秘钥单元22根据预设的加密秘钥和加密信息,获取各数据片段的加密秘钥和加密信息;然后,加密单元23根据各数据片段的加密秘钥和加密信息,分别加密各数据片段得到各加密盒。本实施例通过将媒体数据进行分段加密,无需对媒体数据中的每一个采样进行加密,大大减轻了服务端对媒体数据的加密工作量;并且,保持流媒体原文件的元数据保持不变,仅加密媒体数据,实现了在不改变流媒体原文件格式的条件下对流媒体文件的加密。
进一步的,参照图7,本发明流媒体加密装置第三实施例还提供一种流媒体加密装置,基于上述图6所示的实施例,所述加密模块20还包括:
判断单元24,用于判断所述各数据片段是否已全部完成加密。
在本实施例中,加密单元23根据各数据片段的加密秘钥和加密信息,依次加密各数据片段。取流媒体原文件的媒体数据长度为m,划分数据片段的预设数据量为k,则加密单元23依次从媒体数据中截取长度为k的数据片段进行加密得到加密盒。
作为一种实施方式,在得到加密盒后,判断单元24根据剩余的媒体数据长度判断当前各数据片段是否已全部完成加密;若剩余的媒体数据长度为零,则判定当前各数据片段已全部完成加密;若剩余的媒体数据长度不为零,则判定当前各数据片段未全部完成加密。
若当前各数据片段未全部完成加密,则秘钥单元22继续从媒体数据中截取长度为k的数据片段,获取此数据片段的加密秘钥和加密信息,加密单元23对此数据片段进行加密。得到加密盒后,判断单元24再次判断当前各数据片段是否已全部完成加密。
若当前各数据片段已全部完成加密,则创建模块30根据流媒体原文件的格式、元数据和各加密盒,创建加密流媒体文件,完成对流媒体原文件的加密。
在本实施例中,判断单元24判断各数据片段是否已全部完成加密;若各数据片段未全部完成加密,则秘钥单元22继续获取数据片段的加密秘钥和加密信息,由加密单元23对数据片段进行加密;若各数据片段已全部完成加密,则创建模块30根据流媒体原文件的格式、元数据和各加密盒,创建加密流媒体文件,完成对流媒体原文件的加密。本实施例通过判断各数据片段是否已全部完成加密,避免数据片段在加密过程中被遗漏,保证了加密流媒体文件中媒体数据的完整性。
进一步的,参照图8,本发明流媒体加密装置第四实施例提供一种流媒体加密装置,基于上述图5至图7所示的任一实施例(本实施例以图5为例),所述流媒体加密装置还包括:
发布模块40,用于向客户端发布所述加密流媒体文件。
在加密模块30根据流媒体原文件的格式、元数据和各加密盒,创建加密流媒体文件,完成对流媒体原文件的加密后,发布模块40向客户端发布得到的加密流媒体文件。
具体的,作为一种实施方式,若当前服务端从流媒体源获取的流媒体原文件有多个,则发布模块40可以在流媒体原文件全部完成加密后,将得到的多个加密流媒体文件统一打包,向客户端发布。客户端可以一次性的下载得到全部的加密流媒体文件。
作为另一种实施方式,若当前服务端从流媒体源获取的流媒体原文件有多个,发布模块40可以在创建模块30每完成一个流媒体原文件的加密后,立即将得到的加密流媒体文件向客户端发布,直至完成全部流媒体原文件的发布。客户端可以依次下载加密流媒体文件进行解密、播放,实现用户在线观看媒体内容。
在本实施例中,创建模块30完成流媒体原文件的加密,得到加密流媒体文件后,发布模块40向客户端发布得到的加密流媒体文件,以供客户端下载。本实施例通过主动向客户端发布加密流媒体文件,使客户端可以及时获取加密流媒体文件,一边解密已获取的加密流媒体文件一边继续下载后续的加密流媒体文件,实现了流媒体文件内容的在线连续播放,提高了用户体验。
参照图9,本发明流媒体加密系统第一实施例提供一种流媒体加密系统,所述流媒体加密系统包括服务端A和客户端B,其中:
所述服务端A包括获取模块10、加密模块20、创建模块30和发布模块40;
所述客户端B,用于从所述服务端A获取加密流媒体文件。
流媒体加密系统包括服务端A和客户端B,服务端A用于加密流媒体原文件,并将得到的加密流媒体文件向客户端B发布;客户端B用于从服务端A获取加密流媒体文件,并将流媒体内容呈现给用户。
其中,服务端A包括:获取模块10、加密模块20、创建模块30和发布模块40。
具体的,作为一种实施方式,首先,服务端A从流媒体源获取流媒体原文件。然后,服务端A从流媒体原文件中获取元数据和媒体数据,并保持元数据不变。
然后,服务端A将得到的媒体数据根据预设的数据量划分为等量大小的数据片段,分别对数据片段进行加密,得到对应的各加密盒。
然后,服务端A创建新的流媒体文件,作为加密流媒体文件,新创建的流媒体文件格式与流媒体原文件的格式保持相同。服务端A将元数据保持不变,写入加密流媒体文件中,将加密盒作为媒体数据写入加密流媒体文件,完成流媒体原文件的加密。
然后,服务端A将得到的加密流媒体文件向客户端B发布。
客户端B根据用户的需要,从服务端A下载加密流媒体文件。
然后,客户端B解析得到的加密流媒体文件,得到各加密盒。客户端B获取各加密盒的加密信息,并根据加密信息向服务端A发送许可请求。
在许可请求通过后,客户端B获取服务端A返回的解密秘钥,对加密盒进行解密后,将得到的媒体数据进行解码,呈现媒体内容给用户。
作为另一种实施方式,服务端A从流媒体源获取流媒体原文件。然后,服务端A从流媒体原文件中获取元数据和媒体数据,并保持元数据不变。
服务端A创建新的流媒体文件,作为加密流媒体文件。然后,将得到的元数据写入加密流媒体文件,保持元数据内容不变。并且,服务端A保持元数据在加密流媒体文件中的格式与在流媒体原文件中的不变,例如元数据在流媒体原文件中位于文件头,则服务端将元数据写入加密流媒体文件中时,仍然保持元数据在加密流媒体文件的文件头。
然后,服务端A将得到的媒体数据划分为等量大小的数据片段,分别对数据片段进行加密,得到对应的各加密盒。服务端A依次将得到的加密盒写入加密流媒体文件,保持加密盒在加密流媒体文件中的格式与媒体数据在流媒体原文件中的格式一致。
在服务端A完成全部数据片段的加密,并将得到的加密盒全部写入加密流媒体文件中后,服务端完成对流媒体原文件的加密。
然后,服务端A将得到的加密流媒体文件向客户端B发布。
客户端B根据用户的需要,从服务端A下载加密流媒体文件。
然后,客户端B解析得到的加密流媒体文件,得到各加密盒。客户端B获取各加密盒的加密信息,并根据加密信息向服务端A发送许可请求。
在许可请求通过后,客户端B获取服务端A返回的解密秘钥,对加密盒进行解密后,将得到的媒体数据进行解码,呈现媒体内容给用户。
在本实施例中,流媒体加密系统包括服务端A和客户端B,其中,服务端A用于将流媒体原文件进行加密,得到加密流媒体文件,并将得到的加密流媒体文件发布给客户端B;客户端B,用于从服务端A获取加密流媒体文件,并解密得到流媒体文件的内容呈现给用户。本实施例通过服务端加密流媒体原文件,得到的加密流媒体文件与流媒体原文件格式保持不变,使得客户端在下载得到加密流媒体文件后,得到的媒体数据格式不变,仅需要对加密盒进行解密即可得到媒体数据,不需要调整客户端的解复用模块即可实现媒体数据的解复用,减轻了客户端的兼容开发工作量,在保证流媒体文件加密安全性的同时实现了加密系统开发成本的降低。
进一步的,参照图9,本发明流媒体加密系统第二实施例提供一种流媒体加密系统,基于上述图9所示的本发明流媒体加密系统第一实施例,所述服务端A预设有解密秘钥,所述解密秘钥与所述预设的加密秘钥、加密信息对应,所述客户端B还用于,
获取所述加密流媒体文件中加密盒的加密信息,根据所述加密信息从所述服务端获取所述加密盒的解密秘钥;根据所述解密秘钥,解密所述加密盒得到数据片段;解析所述数据片段得到媒体内容,将所述媒体内容呈现给用户。
具体的,作为一种实施方式,服务端A预设有流媒体原文件的解密秘钥,服务端A预设的解密秘钥与预设的流媒体原文件的加密秘钥、加密信息对应。可以理解为,服务端A预设有流媒体原文件的加密秘钥、解密秘钥和加密信息,三者互相对应。其中,加密信息为加密秘钥和解密秘钥的标识信息,服务端A可以根据加密信息得到对应的加密秘钥和解密秘钥。服务端A使用加密秘钥加密的数据,可以使用对应的解密秘钥进行解密,得到原数据。
客户端B在得到加密流媒体文件后,解析得到的加密流媒体文件,得到元数据和加密盒。元数据用于获取当前流媒体原文件的各项信息。
客户端B依次读取加密流媒体文件中的各加密盒,获取加密和中的加密信息。然后,客户端B将根据加密信息向服务端A发送许可请求,获取加密信息对应的解密秘钥。
服务端A收到客户端B的许可请求后,查找加密信息对应的解密秘钥,将解密秘钥返回给客户端B。在本实施例中,预设客户端B已得到服务端A的授权,可以获取服务端A发布的流媒体文件。
客户端B接收服务端A返回的解密秘钥,对携带当前解密信息的加密盒进行解密,也即解密加密盒中携带的加密数据,得到数据片段。客户端B分别解密加密流媒体文件中携带的各加密盒,得到各数据片段。
然后,客户端B解析媒体数据的各数据片段,得到各数据片段中的每一个媒体数据采样和相关的显示时间戳的信息。
然后,客户端B对每一个媒体数据采样进行解码,得到媒体内容。客户端B根据显示时间戳等信息,将得到的媒体内容呈现给客户,例如,在客户端B的显示屏上显示视频,控制客户端B的音频输出模块输出音频等。
由此,流媒体加密系统实现了流媒体文件的加密和解密。
在本实施例中,客户端B在获取加密流媒体文件后,获取加密流媒体文件中加密盒的加密信息,根据加密信息从服务端A获取加密盒的解密秘钥;然后,根据得到的解密秘钥,解密加密盒得到数据片段;然后,解析数据片段得到媒体内容,将媒体内容呈现给用户。本实施例中,客户端B解密得到的媒体数据为数据片段,一个数据片段中可能多个媒体数据采样,避免了对每一个媒体数据采样进行解密,减轻了客户端B的解密工作量。同时,由于加密流媒体文件格式与流媒体原文件格式相同,客户端B可以直接解密加密盒得到媒体数据。本实施例实现了流媒体文件加密时,格式保持不变,并且减轻了服务端的加密工作量和客户端的解密工作量,提升了流媒体文件加密和解密的效率。
以上仅为本发明的可选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种流媒体加密方法,其特征在于,所述流媒体加密方法包括以下步骤:
服务端根据流媒体原文件,得到元数据和媒体数据;
根据预设的加密秘钥和加密信息,所述服务端加密所述媒体数据得到加密盒;
所述服务端根据所述流媒体原文件的格式、所述元数据和所述加密盒,创建加密流媒体文件。
2.如权利要求1所述的流媒体加密方法,其特征在于,所述根据预设的加密秘钥和加密信息,所述服务端加密所述媒体数据得到加密盒的步骤包括:
所述服务端按预设的数据量划分所述媒体数据,得到各数据片段;
根据预设的加密秘钥和加密信息,所述服务端获取所述各数据片段的加密秘钥和加密信息;
根据所述各数据片段的加密秘钥和加密信息,所述服务端分别加密所述各数据片段得到各加密盒。
3.如权利要求2所述的流媒体加密方法,其特征在于,所述根据所述各数据片段的加密秘钥和加密信息,所述服务端分别加密所述各数据片段得到各加密盒的步骤之后,还包括:
所述服务端判断所述各数据片段是否已全部完成加密;
若所述各数据片段未全部完成加密,则转入执行步骤:根据预设的加密秘钥和加密信息,所述服务端获取所述各数据片段的加密秘钥和加密信息;
若所述各数据片段已全部完成加密,则转入执行步骤:所述服务端根据所述流媒体原文件的格式、所述元数据和所述加密盒,创建加密流媒体文件。
4.如权利要求1-3所述的流媒体加密方法,其特征在于,所述服务端根据所述流媒体原文件的格式、所述元数据和所述加密盒,创建加密流媒体文件的步骤之后,还包括:
所述服务端向客户端发布所述加密流媒体文件。
5.一种流媒体加密装置,其特征在于,所述流媒体加密装置包括:
获取模块,用于根据流媒体原文件,得到元数据和媒体数据;
加密模块,用于根据预设的加密秘钥和加密信息,加密所述媒体数据得到加密盒;
创建模块,用于根据所述流媒体原文件的格式、所述元数据和所述加密盒,创建加密流媒体文件。
6.如权利要求5所述的流媒体加密装置,其特征在于,所述加密模块包括:
划分单元,用于按预设的数据量划分所述媒体数据,得到各数据片段;
秘钥单元,用于根据预设的加密秘钥和加密信息,获取所述各数据片段的加密秘钥和加密信息;
加密单元,用于根据所述各数据片段的加密秘钥和加密信息,分别加密所述各数据片段得到各加密盒。
7.如权利要求6所述的流媒体加密装置,其特征在于,所述加密模块还包括:
判断单元,用于判断所述各数据片段是否已全部完成加密。
8.如权利要求5-7所述的流媒体加密装置,其特征在于,所述流媒体加密装置还包括:
发布模块,用于向客户端发布所述加密流媒体文件。
9.一种流媒体加密系统,其特征在于,所述流媒体加密系统包括服务端和客户端,其中:
所述服务端包括如权利要求5-8所述的任一项装置;
所述客户端,用于从所述服务端获取加密流媒体文件。
10.如权利要求9所述的流媒体加密系统,其特征在于,所述服务端预设有解密秘钥,所述解密秘钥与所述预设的加密秘钥、加密信息对应,所述客户端还用于,
获取所述加密流媒体文件中加密盒的加密信息,根据所述加密信息从所述服务端获取所述加密盒的解密秘钥;
根据所述解密秘钥,解密所述加密盒得到数据片段;
解析所述数据片段得到媒体内容,将所述媒体内容呈现给用户。
CN201511026456.6A 2015-12-30 2015-12-30 流媒体加密方法、装置和系统 Pending CN105635149A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201511026456.6A CN105635149A (zh) 2015-12-30 2015-12-30 流媒体加密方法、装置和系统
PCT/CN2016/084856 WO2017113610A1 (zh) 2015-12-30 2016-06-04 流媒体加密方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511026456.6A CN105635149A (zh) 2015-12-30 2015-12-30 流媒体加密方法、装置和系统

Publications (1)

Publication Number Publication Date
CN105635149A true CN105635149A (zh) 2016-06-01

Family

ID=56049639

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511026456.6A Pending CN105635149A (zh) 2015-12-30 2015-12-30 流媒体加密方法、装置和系统

Country Status (2)

Country Link
CN (1) CN105635149A (zh)
WO (1) WO2017113610A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106096334A (zh) * 2016-06-02 2016-11-09 中国传媒大学 超媒体数据的加密方法及加密装置、解密方法及解密装置
WO2017113610A1 (zh) * 2015-12-30 2017-07-06 深圳Tcl数字技术有限公司 流媒体加密方法、装置和系统
CN108718312A (zh) * 2018-05-22 2018-10-30 朱小军 一种文件在线加密方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101155296A (zh) * 2006-09-29 2008-04-02 中国科学技术大学 数据传输的方法
CN101980238A (zh) * 2010-11-12 2011-02-23 四川长虹电器股份有限公司 一种对rm/rmvb文件的加密方法
WO2011066531A2 (en) * 2009-11-30 2011-06-03 General Instrument Corporation System and method for encrypting and decrypting data
CN104639943A (zh) * 2015-01-30 2015-05-20 中国科学院信息工程研究所 一种基于h.264编码标准的通用视频加密方法及系统
CN105162588A (zh) * 2015-09-14 2015-12-16 网易(杭州)网络有限公司 一种媒体文件加解密方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105635149A (zh) * 2015-12-30 2016-06-01 深圳Tcl数字技术有限公司 流媒体加密方法、装置和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101155296A (zh) * 2006-09-29 2008-04-02 中国科学技术大学 数据传输的方法
WO2011066531A2 (en) * 2009-11-30 2011-06-03 General Instrument Corporation System and method for encrypting and decrypting data
CN101980238A (zh) * 2010-11-12 2011-02-23 四川长虹电器股份有限公司 一种对rm/rmvb文件的加密方法
CN104639943A (zh) * 2015-01-30 2015-05-20 中国科学院信息工程研究所 一种基于h.264编码标准的通用视频加密方法及系统
CN105162588A (zh) * 2015-09-14 2015-12-16 网易(杭州)网络有限公司 一种媒体文件加解密方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017113610A1 (zh) * 2015-12-30 2017-07-06 深圳Tcl数字技术有限公司 流媒体加密方法、装置和系统
CN106096334A (zh) * 2016-06-02 2016-11-09 中国传媒大学 超媒体数据的加密方法及加密装置、解密方法及解密装置
CN106096334B (zh) * 2016-06-02 2021-11-19 中国传媒大学 超媒体数据的加密方法及加密装置、解密方法及解密装置
CN108718312A (zh) * 2018-05-22 2018-10-30 朱小军 一种文件在线加密方法

Also Published As

Publication number Publication date
WO2017113610A1 (zh) 2017-07-06

Similar Documents

Publication Publication Date Title
CN101271501B (zh) 数字媒体文件的加解密方法及装置
JP5113299B2 (ja) Drm提供装置、システムおよびその方法
CN101535987B (zh) 具有多条内容的媒体存储结构在内容分发系统中的使用
KR100930303B1 (ko) 디지털 미디어 콘텐츠 보호 시스템 및 방법
US20110179288A1 (en) Technique for Content Management using Group Rights
KR20130099995A (ko) 라이브 어댑티브 스트리밍 내의 키 회전
CN104471913A (zh) 指示和处理内容传输和传送中的内容加密和权限管理
US20160182466A1 (en) TransDRM for Streaming Media
CN103825885A (zh) 一种互联网内容加密发布方法及系统
JP2010192944A (ja) コンテンツ配信装置、コンテンツ利用装置、コンテンツ配信システム、コンテンツ配信方法、およびプログラム
CN102075790A (zh) 一种流媒体分发和加密的方法
CN101610148B (zh) 一种对等互联网络数字版权保护方法
CN104540016A (zh) 一种视频播放方法及装置
CN103248474A (zh) 一种流媒体的加密、解密方法和装置
EP2706718A1 (en) Method, system, and server for digital copyright management
CN107306254B (zh) 基于双层加密的数字版权保护方法及系统
CN105635149A (zh) 流媒体加密方法、装置和系统
CN102063590B (zh) 用可复写存储设备发行数字影视的版权保护方法及装置
US20150074823A1 (en) Server, terminal and digital copyright management method
US11157633B1 (en) Digital content delivery system
KR20120070669A (ko) 스케일러블 미디어의 계층별 접근제어를 제공하는 암호화 및 복호화 방법
CN101860741A (zh) 信息处理设备、信息记录介质制造设备、信息记录介质及其方法、以及计算机程序
CN101408922A (zh) 数字版权管理系统及方法
CN105354446A (zh) 一种移动数字版权体系中数字内容加密方法
JP2010206540A (ja) ファイル生成装置、ファイル再生装置およびコンピュータプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20160601

RJ01 Rejection of invention patent application after publication