媒体数据传输方法、装置及存储介质与流程

文档序号:16130695发布日期:2018-12-01 00:17阅读:276来源:国知局

本申请涉及媒体数据传输方法、装置及存储介质,属于通信技术领域。

背景技术

http直播流(httplivestreaming,hls)是由apple公司定义的用于实时流传输的协议。hls基于超文本传输协议(hypertexttransferprotocol,http)实现,并提供了一种高效且可靠地在英特网上传播连续视频的方法。

hls协议定义了至少两种加密过程对媒体数据进行加密。比如:定义了先进的加密标准(advancedencryptionstandard,aes)-128加密过程和sample-aes加密过程。其中,aes-128加密过程是以128比特位数据作一组进行对称加密的分组加密算法并配合使用加密块链(cipher-blockchaining,cbc)加密模式对目标媒体片段整体进行加密;sample-aes加密过程用于对目标媒体片段内的媒体样本数据使用aes-128加密算法配合使用cbc加密模式进行加密。

然而,在视频直播过程中使用hls协议传输数据时,只能使用hls协议定义的加密过程加密,加密方式比较局限。



技术实现要素:

本申请提供了一种媒体数据传输方法、装置及存储介质,可以解决视频直播过程中只能使用传输协议定义的加密过程来加密媒体数据,导致加密方式比较局限的问题。本申请提供如下技术方案:

第一方面,提供了一种媒体数据传输方法,所述方法包括:

确定传输目标媒体片段时所使用的传输协议的原始协议版本号;

对所述原始协议版本号进行扩展,得到扩展协议版本号;所述扩展加密过程是指所述传输协议定义范围以外的加密过程;

根据所述扩展加密过程的过程标识和加密密钥的密钥标识生成密钥标签;

根据所述扩展加密过程和所述加密密钥对所述目标媒体片段进行加密,得到加密后的媒体片段;

根据所述扩展协议版本号、所述密钥标签和所述加密后的媒体片段的片段标识生成媒体播放列表;

发布所述媒体播放列表和所述加密后的媒体片段,所述媒体播放列表用于供接收端根据所述扩展协议版本号和所述密钥标签对所述加密后的媒体片段进行解密。

可选地,所述根据所述扩展加密过程和所述加密密钥对所述目标媒体片段进行加密,得到加密后的媒体片段,包括:

将所述目标媒体片段作为一个整体,使用所述扩展加密过程和所述加密密钥对所述目标媒体片段进行加密,得到所述加密后的媒体片段。

可选地,所述目标媒体片段包括媒体样本数据和结构描述数据,所述根据所述扩展加密过程和所述加密密钥对所述目标媒体片段进行加密,得到加密后的媒体片段,包括:

使用所述扩展加密过程和所述加密密钥对所述目标媒体片段中的所述媒体样本数据进行加密,得到所述加密后的媒体片段。

可选地,所述根据所述扩展加密过程的过程标识和加密密钥的密钥标识生成密钥标签,包括:

获取加密初始向量;

获取所述密钥标识;

根据所述传输协议将所述密钥标签中的算法属性设置为所述扩展加密过程的过程标识,将所述密钥标签中的密钥属性设置为所述密钥标识,将所述密钥标签中的初始向量属性设置为所述加密初始向量,得到所述密钥标签。

可选地,所述根据所述扩展加密过程和所述加密密钥对所述目标媒体片段进行加密,得到加密后的媒体片段,包括:

在加密块链cbc分组加密模式下,使用所述加密初始向量与目标媒体片段进行异或操作;使用所述扩展加密过程和所述加密密钥对异或后的目标媒体片段进行加密,得到所述加密后的媒体片段;

或者,

在记数器ctr分组加密模式下,使用所述扩展加密过程和所述加密密钥对所述加密初始向量进行加密;使用加密后的加密初始向向量与所述目标媒体片段进行异或操作,得到所述加密后的媒体片段。

可选地,所述根据所述扩展加密过程和加密密钥的密钥标识生成密钥标签之后,还包括:

在所述加密密钥的使用时长达到预设时长时更新所述密钥标签;

根据所述更新后的密钥标签和更新所述密钥标签的时刻对应的目标媒体片段生成更新后的媒体播放列表。

第二方面,提供了一种媒体数据传输方法,所述方法包括:

获取发送端发布的媒体播放列表;所述媒体播放列表是所述发送端根据扩展协议版本号、密钥标签和加密后的媒体片段的片段标识生成的;所述扩展协议版本号是对传输协议的原始协议版本号进行扩展得到的;所述密钥标签是根据扩展加密过程的过程标识和加密密钥的密钥标识生成的;所述加密后的媒体片段是使用所述扩展加密过程和所述加密密钥对所述目标媒体片段进行加密得到的;所述扩展加密过程是指所述传输协议定义范围之外的加密过程;

根据所述媒体播放列表中的所述扩展协议版本号确定所述目标媒体片段的处理过程;

根据所述处理过程下载所述媒体播放列表中所述片段标识指示的所述加密后的媒体片段;

根据所述处理过程获取所述密钥标签中所述密钥标识指示的所述加密密钥;

根据所述过程标识指示的扩展加密过程和所述加密密钥对所述加密后的媒体片段进行解密,得到所述目标媒体片段;

对所述目标媒体片段进行处理。

第三方面,提供了一种媒体数据传输装置,所述装置包括:

版本号确定模块,用于确定传输目标媒体片段时所使用的传输协议的原始协议版本号;

版本号扩展模块,用于对所述原始协议版本号进行扩展,得到扩展协议版本号;所述扩展加密过程是指所述传输协议定义范围以外的加密过程;

标签生成模块,用于根据扩展加密过程的过程标识和加密密钥的密钥标识生成密钥标签;

数据加密模块,用于根据所述扩展加密过程和所述加密密钥对所述目标媒体片段进行加密,得到加密后的媒体片段;

列表生成模块,用于根据所述扩展协议版本号、所述密钥标签和所述加密后的媒体片段的片段标识生成媒体播放列表;

数据发布模块,用于发布所述媒体播放列表和所述加密后的媒体片段,所述媒体播放列表用于供接收端根据所述扩展协议版本号和所述密钥标签对所述加密后的媒体片段进行解密。

第四方面,提供了一种媒体数据传输装置,所述装置包括:

列表获取模块,用于获取发送端发布的媒体播放列表;所述媒体播放列表是所述发送端根据扩展协议版本号、密钥标签和加密后的媒体片段的片段标识生成的;所述扩展协议版本号是对传输协议的原始协议版本号进行扩展得到的;所述密钥标签是根据扩展加密过程的过程标识和加密密钥的密钥标识生成的;所述加密后的媒体片段是使用所述扩展加密过程和所述加密密钥对所述目标媒体片段进行加密得到的;所述扩展加密过程是指所述传输协议定义范围之外的加密过程;

过程确定模块,用于根据所述媒体播放列表中的所述扩展协议版本号确定所述目标媒体片段的处理过程;

数据下载模块,用于根据所述处理过程下载所述媒体播放列表中所述片段标识指示的所述加密后的媒体片段;

密钥获取模块,用于根据所述处理过程获取所述密钥标签中所述密钥标识指示的所述加密密钥;

数据解密模块,用于根据所述过程标识指示的扩展加密过程和所述加密密钥对所述加密后的媒体片段进行解密,得到所述目标媒体片段;

数据处理模块,用于对所述目标媒体片段进行处理。

第五方面,提供一种媒体数据传输装置,所述装置包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现第一方面所述的媒体数据传输方法;或者第二方面所述的媒体数据传输方法。

第六方面,提供一种计算机可读存储介质,所述存储介质中存储有程序,所述程序由所述处理器加载并执行以实现第一方面所述的媒体数据传输方法;或者第二方面所述的媒体数据传输方法。

本申请的有益效果在于:通过确定传输目标媒体片段时所使用的传输协议的原始协议版本号;在使用扩展加密过程对所述目标媒体片段进行加密时,对原始协议版本号进行扩展,得到扩展协议版本号;根据扩展加密过程的过程标识和加密密钥的密钥标识生成密钥标签;根据扩展加密过程和加密密钥对目标媒体片段进行加密,得到加密后的媒体片段;根据扩展协议版本号、密钥标签和加密后的媒体片段的片段标识生成媒体播放列表;发布媒体播放列表和加密后的媒体片段;可以解决视频直播过程中只能使用原始传输协议定义的加密过程来加密媒体数据,导致加密方式比较局限的问题;由于可以对原始协议版本号进行扩展,从而引入新的加密过程,因此,可以实现在原始传输协议的基础上对加密过程的扩展。

上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,并可依照说明书的内容予以实施,以下以本申请的较佳实施例并配合附图详细说明如后。

附图说明

图1是本申请一个实施例提供的媒体数据传输系统的结构示意图;

图2是本申请一个实施例提供的媒体数据传输方法的流程图;

图3是本申请一个实施例提供的媒体数据传输装置的框图;

图4是本申请一个实施例提供的媒体数据传输装置的框图;

图5是本申请一个实施例提供的媒体数据传输装置的框图。

具体实施方式

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

首先,对本申请涉及的若干名词进行介绍。

http直播流(httplivestreaming,hls)是用于实时进行流传输的协议。hls基于超文本传输协议(hypertexttransferprotocol,http)实现,基于hls协议传输的数据包括至少两部分,一部分是m3u8格式的描述文本内容(本申请中称为m3u8文件),另一部分是ts格式的媒体内容(本申请中称为ts文件)。

可选地,m3u8文件用于定义一个媒体播放列表(mediaplaylist)。媒体播放列表是由一组统一资源定位符(uniformresourcelocator,url)和多种信息标签按时间及语义顺序罗列而成的一段文本。每一个url都关联了一个媒体片段,该媒体片段是一个连续数据流在某个时间段内的一个可传输的分片数据块。为了播放数据流,接收端首先获取媒体播放列表,然后获取并播放媒体播放列表指示的媒体片段。

其中,媒体片段也可以称为媒体数据分片、媒体分片文件等,本申请不对媒体片段的名称作限定。

可选地,媒体片段包括媒体样本数据和结构描述数据;媒体样本数据用于指示媒体片段中的媒体内容;结构描述数据用于描述媒体样本数据的序列以使目标媒体片段构成一段可传输的数据块。其中,媒体样本数据包括但不限于:指示为用户直接提供声音媒体的音频信息、直接提供图像媒体的视频信息等。结构描述数据包括但不限于:按某种媒体传输格式要求将为用户提供的音频媒体进行描述并包装成流式音频数据的辅助描述信息、按某种媒体传输格式要求将为用户提供的视频媒体进行描述并包装成流式视频数据的辅助描述信息、按某种媒体传输格式要求将流式音频数据和流式视频数据进行多路复用的辅助描述信息等,本申请不对媒体样本数据和结构描述数据的内容作限定。

可选地,媒体播放列表中的某行url之前通过插入信息标签来描述该行url关联的媒体片段的某种特性;或者,描述整个媒体播放列表的某种特性;或者,描述该信息标签之后出现的媒体片段的某种特征。可选地,信息标签使用“#”来引导一个信息标签的名称。

示意性地,m3u8文件的内容如下所示:

#extm3u

#ext-x-targetduration:10

#ext-x-version:7

#ext-x-allow-cache:no

#ext-x-media-sequence:1

#ext-x-key:method=sample-sm4,

uri=https://media.example.com/key/keyid,

iv=0x2f170fb605c5765eba8d619612aca7e5

#ext-x-map:uri="live.mp4",byterange="560@0"

#extinf:4.96907,

#ext-x-byterange:25312@560

live.mp4

#extinf:4.96907,

#ext-x-byterange:25440@25872

live.mp4

#extinf:9.009,

http://media.example.com/first.ts

#extinf:9.009,

http://media.example.com/second.ts

#extinf:3.003,

http://media.example.com/third.ts

在上例中,首行的#extm3u用于指示解析程序按hls协议的媒体播放列表的语法格式来理解这段文本的内容。

ext-x-targetduration标签指定了媒体片段持续时间的最大值。可选地,ext-x-targetduratio的值为整数。媒体播放列表中的媒体片段在extinf标签中定义的持续时间小于或者等于ext-x-targetduration标签指定的持续时间。可选地,ext-x-targetduration标签在媒体播放列表中出现一次,其格式为:

#ext-x-targetduration:<s>

其中,s是一个以秒为单位的整数。

ext-x-version为版本号标签,该版本号标签用于指示媒体播放列表中的媒体片段文件所使用的hls协议的版本号。版本号标签ext-x-version的值是媒体数据传输过程中各个传输设备都能执行的hls协议的协议版本号。

ext-x-allow-catch为缓存指示标签,该缓存指示标签用于指示允许或者不允许缓存媒体片段。缓存指示标签适用于媒体播放列表中的各个媒体片段。ext-x-allow-catch的格式如下:

#ext-x-allow-cache:<yes|no>

其中,yes用于指示允许缓存媒体片段;no用于指示不允许缓存媒体片段。

ext-x-media-sequence为序号指示标签,序号指示标签用于指示媒体播放列表文件中第一个媒体片段在整个直播的媒体片段序列中的序列号。ext-x-media-sequence的格式如下:

#ext-x-media-sequence:<number>

其中,number为序列号的值。可选地,序列号为整数。

可选地,媒体播放列表文件中的ext-x-media-sequence标签的数量小于或等于1。若媒体播放列表文件中没有ext-x-media-sequence标签,那么会把媒体播放列表中的第一个url的序列号视为0。

ext-x-key为密钥标签,密钥标签用于提供解密媒体片段所需的信息,ext-x-key标签的格式如下:

#ext-x-key:method=<method>,[uri=“<uri>”],[iv=<iv>]

method为算法属性,该method的值method指定了加密过程,method可以为加密过程的过程标识。过程标识用于唯一地标识某一加密过程,该过程标识可以是加密过程(包括原始加密过程和扩展加密过程)的名称;或者,也可以是随机字符串等,本实施例不对过程标识的设置方式作限定。当前最新的hls协议中定义了三种加密过程,比如:none、aes-128和sample-aes。加密过程none表示媒体文件不被加密,如果加密过程是none,那么统一资源标识符(uniformresourceidentifier,uri)和iv属性不存在,这时也可以省略ext-x-key标签;加密过程aes-128表示媒体片段使用先进的加密标准(advancedencryptionstandard,aes)-128位密钥并配合加密块链(cipher-blockchaining,cbc)分组模式加密;加密过程sample-aes表示对媒体片段内的媒体样本数据使用aes-128加密过程并配合cbc分组模式进行加密,而对构成媒体片段的格式信息不作加密。uri属性为密钥属性,可以指定获取加密密钥的方法。uri的值uri为加密密钥的密钥标识。iv属性可以指定使用密钥的初始化向量。可选地,如果媒体播放列表没有包含ext-x-key标签,那么媒体片段不会被加密。可选地,密钥标签还可以包括其它属性,比如:keyformat、keyformatversions等属性,本实施在此不再一一赘述;其中,keyformat和keyformatversions用于描述通过该密钥标签内的uri获取到的内容解析出密钥的方式。

ext-x-map标签用于指示获取所需的媒体初始化部分的方式。ext-x-map标签适用于后续的媒体片段,直到下一个ext-x-map标签的出现。xt-x-map标签的格式如下:

#ext-x-map:uri=<uri>,byterange=<byterange>

其中,uri用于指示媒体初始化部分资源的位置;byterange用于指示初始化资源占用字节块的字节长度和字节开始位置。byterang是一个可选项,如果未指定,则表示整个指定资源都需要。

extinf标签是一个记录标签,该记录标签用于描述之后的uri所指定的媒体文件。可选地,记录标签的格式为:

#extinf:<duration>,<title>

其中,duration用于指定媒体片段的持续时间,该持续时间可以以秒为单位,该持续时间可以四舍五入到最接近的整数。行内逗号后边的剩余部分是媒体文件的标题,该剩余部分也可以为空。

ext-x-byterange标签用于表示媒体片段是一个媒体uri资源中的一段,对之后的url有效,ext-x-byterange标签的格式如下:

#ext-x-byterange:<n>[@<o>]

其中,n表示媒体片段的数据块所占url链接到的媒体资源的字节长度,o表示媒体片段的数据块在uri链接到的媒体资源中的字节开始位置。

当然,上述只是m3u8文件的示例性说明,在实际实现时,m3u8文件可以包括更多或者更少的信息标签,本申请对此不作限定。

“http://media.example.com/first.ts”、“http://media.example.com/second.ts”、“http://media.example.com/third.ts”是媒体片段的统一资源定位符(uniformresourcelocator,url)地址。

统一资源标识符(uniformresourceidentifier,uri):是指用于标识某一互联网资源名称的字符串。

统一资源定位符(uniformresourcelocator,url):用于指示从互联网上得到的资源的位置和访问方法,是互联网上的标准资源的地址。总地来说,uri标记了一个网络资源,该网络资源包括互联网资源的地址及访问方式,而url标记了一个互联网资源的地址及访问方式,也即,uri包括url;换句话说,所有的url均为uri,但并不是所有的uri都是url。

原始传输协议:是指已有的用于进行媒体数据传输的协议,比如:上述的hls协议。

原始协议版本号:是指原始传输协议提供的版本号,比如:hls协议第二版、hls协议第五版等。

扩展后的传输协议:是指在原始传输协议的基础上对媒体数据传输方式进行扩展后的得到的传输协议。示意性地,本申请中,扩展后的传输协议是指在原始传输协议的基础上,对媒体数据的加密过程进行了扩展,在原有的hls协议提供的none、aes-128加密过程和sample-aes加密过程的基础上增加了加密过程的可扩展方式,比如:可扩展方式为在原始协议版本号之后添加字符来表示对加密过程的扩展。换句话说,扩展后的传输协议并不改变原始传输协议的协议内容,只是在原始传输协议的基础上增加了加密过程的可扩展方式。

扩展协议版本号:是指使用扩展传输协议传输媒体数据时,若使用加密过程扩展加密过程加密媒体数据,则对原始协议版本号进行扩展得到的协议版本号。比如:原始协议版本号为2,对该原始协议版本号进行扩展得到的扩展协议版本号为2.1。

原始加密过程:是指原始传输协议定义的加密过程,比如:hls协议中定义的aes-128加密过程。

扩展加密过程:是指传输协议(包括原始传输协议和扩展后的传输协议)所定义范围之外的其它加密过程,比如:使用在hls协议定义范围之外的中国商用密钥算法sm4解密过程对目标媒体片段进行加密;又比如:使用在hls协议定义范围之外的sample-sm4对目标媒体片段中的目标样本数据进行加密等。其中,sm4和sample-sm4即为扩展加密过程。

图1是本申请一个实施例提供的媒体数据传输系统的结构示意图,如图1所示,该系统至少包括:发送端110和接收端120。

发送端110和接收端120是支持媒体数据传输的设备,比如:手机、计算机、可穿戴式设备、平板电脑、个人计算机等,本实施例在此不再一一列举。

可选地,发送端110与密钥服务子系统130和媒体发布子系统140分别进行通信相连。

密钥服务子系统130可以为发送端110提供的服务包括但不限于以下几种:

服务1,创建加密密钥并为发送端110提供该加密密钥以及该加密密钥的密钥标识。

其中,加密密钥可以是随机生成的字符串,比如:16字节的二进制数据,或者128比特的二进制数据等,本实施例不对加密密钥的长度和生成方式作限定。

每个加密密钥对应一个唯一的密钥标识,通过该密钥标识可以关联到该加密密钥。可选地,密钥标识是一个统一片段标识符,或者一个字符串等。

可选地,密钥服务子系统130创建的加密密钥具有时效性,换句话说,加密密钥只在有效时长内有效。有效时长可以是24小时、或者12小时等,本实施例不对有效时长的取值作限定。

服务2,根据密钥标识获得相关联的加密密钥。

密钥服务子系统130需要根据目标密钥标识获得相关联的目标加密密钥时,可以在已创建的加密密钥和相关联的密钥标识中检索;当检索到与目标密钥标识一致的密钥标识时,即可获取到该目标密钥标识关联的目标加密密钥;当未检索到与目标密钥标识一致的密钥标识时,则向发送端110返回检索出错以通知发送端110未检索出目标加密密钥。

可选地,密钥服务子系统130可以通过http协议的get请求来提供服务,get请求包括密钥标识;并在get请求的响应消息中返回加密密钥的原始数据,比如:由16个字节表示的二进制数据。

可选地,密钥服务子系统130可以通过不同于http协议的get请求的某种具有更高安全性的私有安全密钥传输通道来提供密钥的访问服务,比如:虚拟专用网络(virtualprivatenetwork,vpn)通道来提供密钥的访问服务,本申请不对密钥的传输方式作限定。

服务3,根据密钥标识注销相关联的加密密钥。

可选地,密钥服务子系统130接收到注销请求时,根据注销请求中的目标密钥标识在已创建的加密密钥和相关联的密钥标识中检索;当检索到与目标密钥标识一致的密钥标识时,注销(删除)该目标密钥标识关联的目标加密密钥;若未检索到与目标密钥标识一致的密钥标识时,则流程结束。

可选地,密钥服务子系统130可以设置在与发送端110相独立的设备中,比如:服务器、或者移动终端中等;或者,也可以设置在发送端110中;密钥服务子系统130在实际实现时可以为硬件、软件或者软硬件结合的系统。

发送端110用于在获取到媒体数据(或称媒体流)之后,按固定时间长度(比如:几秒)的时间间隔对媒体数据进行切分,得到至少一个分片;然后,对同一分片内的媒体数据(如音频媒体数据和/或视频媒体数据)按传输格式进行多路复用得到媒体片段。其中,对媒体数据进行多路复用是指:按照媒体数据的传输格式创建出每个媒体片段中媒体样本数据的序列的媒体结构数据,并将得到的结构描述数据与媒体样本数据结合,得到可传输的媒体数据块的过程。

其中,传输格式可以是动态图像专家组(movingpictureexpertsgroup,mpeg)2-传输流(transportstream,ts)。

发送端110还用于在获取到目标媒体片段之后,创建用于记录该目标媒体片段的媒体播放列表的资源;并确定传输目标媒体片段时所使用的传输协议的协议版本号。其中,传输协议可以是原始传输协议;版本号可以是原始传输协议的原始协议版本号;或者,传输协议也可以是扩展后的传输协议;版本号也可以是基于原始协议版本号进行扩展得到的扩展协议版本号。比如:发送端110确定出的扩展协议版本号为5.1,即,设置“#ext-x-version:5.1”。

其中,媒体数据可以是直播数据、或者点播数据等,该媒体数据可以为视频数据、音频数据、文本数据、或者图片数据等,本实施例不对媒体数据的类型作限定。

可选地,发送端110获取到目标媒体片段之后,先通过密钥服务子系统130提供的服务1服务获取加密密钥和该加密密钥的密钥标识;然后,根据该密钥标识生成密钥标签中的uri。

可选地,发送端110在生成密钥标签之前,还会随机生成一串字符串作为加密初始向量,比如:16字节或者128比特的二进制数据;然后,发送端110使用该加密初始向量、根据密钥标识生成的uri和加密过程的过程标识拼接得到的密钥标签;将该密钥标签添加至目标媒体片段的片段标识之前得到媒体播放列表。

其中,过程标识用于唯一地标识某一加密过程,该过程标识可以是加密过程的名称;或者,也可以是随机字符串等,本实施例不对过程标识的设置方式作限定。

片段标识可以是发送端110为目标媒体片段生成的统一资源定位符(uniformresourcelocator,url)。可选地,当媒体播放列表中记录的片段标识的数量达到数量阈值时,发送端110将最先添加的片段标识移除;并在该移除的片段标识所使用的密钥标签与之后的片段标识所使用的密钥标签不同时,将移除的片段标识所使用的密钥标签移除,并向密钥服务子系统130发送注销请求,该注销请求中携带移除的密钥标签中的密钥标识,此时,密钥服务子系统130提供服务3。

可选地,发送端110获取到加密密钥之后启动定时器,在定时器指示的时长达到预设时长时,重新通过密钥服务子系统130获取加密密钥和密钥标识;和/或,重新生成加密初始向量,从而更新密钥标签,得到更新后的密钥标签;将更新后的密钥标签添加至当前时刻对应的目标媒体片段的片段标识之前,生成更新后的媒体播放列表。其中,预设时长可以是1小时、或者大于1小时且小于24小时区间中的任意值、或者是大于媒体片段文件的平均持续时间且小于1小时区间中的任意值,本实施例不对预设时长的设定方式和取值作限定。

本实施例中,密钥标签中的加密过程为原始加密过程,或者为扩展加密过程。比如:密钥标签中的过程标识method=sm4;或者,密钥标签中的过程标识method=sample-sm4,其中,sm4和sample-sm4为扩展加密过程。

可选地,在密钥标签中的过程标识method=sm4时,发送端110将目标媒体片段使用sm4配合使用cbc加密模式和加密密钥进行加密,得到加密后的媒体片段。在过程标识method=sample-sm4时,使用sm4配合使用cbc加密模式和加密密钥,对目标媒体片段中的媒体样本数据进行加密;将加密后的目标媒体样本数据和未经加密的媒体结构数据组成加密后的媒体片段;或者,将加密后的媒体样本数据再按照序列重建媒体结构数据得到加密后的媒体片段。

发送端110生成媒体播放列表之后,可以将媒体播放列表发送至媒体发布子系统140。

可选地,媒体发布子系统140可以设置在与发送端110相独立的设备中,比如:服务器、或者移动终端中等;或者,也可以设置在发送端110中;媒体发布子系统140在实际实现时可以为硬件、软件或者软硬件结合的系统。媒体发布子系统140可以为网页(web)站点、web服务器、内容分发网络或者任何支持http协议和https协议的服务、程序、模块或者设备。

媒体发布子系统140用于发布媒体播放列表、以及该媒体播放列表中的片段标识指示的目标媒体片段。

可选地,接收端120与媒体发布子系统140通信相连。

接收端120获取媒体发布子系统140发布的媒体播放列表,根据该媒体播放列表中的片段标识获取对应的目标媒体片段;并根据媒体播放列表指示的协议版本号、加密过程和密钥标识对目标媒体片段进行处理。

可选地,接收端120获取到媒体播放列表后获取协议版本号,在该协议版本号的格式符合扩展协议版本号的格式时,则使用扩展后的传输协议处理目标媒体片段。

可选地,接收端120获取到媒体播放列表后获取密钥标识;将该密钥标识发送至媒体发布子系统140,由媒体发布子系统140从密钥服务子系统130中获取该密钥标识对应的加密密钥,此时,密钥服务子系统130根据密钥标识提供服务2。

当然,接收端120也可以与密钥服务子系统130相连,直接向密钥服务子系统130发送密钥标识,而无需由媒体发布子系统140代理密钥服务子系统130提供加密密钥。

示意性地,在媒体播放列表中密钥标签中的加密过程为扩展加密过程,且扩展加密过程为使用sm4配合cbc加密模式对目标媒体片段进行加密时,若过程标识method=sm4,则接收端120使用sm4和加密密钥对加密后的媒体片段进行解密,得到目标媒体片段。若过程标识method=sample-sm4,则接收端120对加密后的媒体片段中的媒体样本数据使用sm4和加密密钥对这些媒体样本数据进行解密,结合未加密的结构描述数据得到目标媒体片段;或者,将解密后的媒体样本数据再按照序列重建结构描述数据得到目标媒体片段。

图2是本申请一个实施例提供的媒体数据传输方法的流程图,本实施例以该方法应用于图1所示的媒体数据传输系统中为例进行说明。该方法至少包括以下几个步骤:

步骤201,发送端确定传输目标媒体片段时所使用的传输协议的原始协议版本号。

目标媒体片段是发送端对获取到的媒体数据按照一定时间间隔进行分片之后得到的。目标媒体片段可以包含视频媒体数据、或者音频媒体数据等,本实施例不对目标媒体片段中的媒体数据的类型作限定。

其中,发送端获取到的媒体数据可以是发送端通过采集组件采集到的,比如:通过摄像头和麦克风采集到的;或者,也可以是采集设备发送的,比如:摄像机发送的;或者,也可以是由外部业务系统发送的,比如:视频会议系统发送的;或者,也可以是从存储介质中读取的,比如:从已存储的文件中读取到的。

可选地,传输协议可以是原始传输协议;或者,也可以是扩展后的传输协议。

其中,原始传输协议可能有多种原始协议版本,根据业务类型的不同,发送端可以选择当前业务类型对应的原始协议版本来传输目标媒体片段。由于扩展后的传输协议是在原始传输协议的基础上扩展得到的,因此,每个版本的原始传输协议都会存在对应的扩展后的传输协议。

比如:原始传输协议为hls协议,hls协议的原始协议版本号包括2、3、4、5、6、7、8等多种版本,发送端根据目标媒体片段的业务类型确定出原始协议版本号为5。

步骤202,发送端对原始协议版本号进行扩展,得到扩展协议版本号。

扩展加密过程是指传输协议定义范围之外的加密过程。

发送端可能使用原始传输协议定义范围之外的加密过程对目标媒体片段进行加密,此时,对原始协议版本号进行扩展,得到扩展协议版本号。

可选地,对原始协议版本号进行扩展是指在保留原始协议版本号的基础上,添加其它标识来标识传输协议为扩展后的传输协议,得到扩展协议版本号。示意性地,在保留用于指示原始协议版本号的整数的基础上,在该整数之后添加小数点和数字,得到扩展协议版本。比如:原始传输协议hls的原始协议版本号3之后添加小数点和数字1得到扩展协议版本号3.1。

比如:发送端生成的媒体播放列表中的扩展协议版本号如下:

#ext-x-version:3.1

步骤203,发送端根据扩展加密过程的过程标识和加密密钥的密钥标识生成密钥标签。

过程标识用于唯一地标识某一加密过程,该过程标识可以是加密过程(包括扩展加密过程)的名称;或者,也可以是随机字符串等,本实施例不对过程标识的设置方式作限定。比如:过程标识为sm4、sample-sm4。

加密密钥可以是发送端生成的;或者,也可以是发送端从密钥服务子系统中获取到的。

可选地,发送端在生成密钥标签之前,还可以获取加密初始向量;获取密钥标识;然后,根据传输协议将密钥标签中的算法属性设置为扩展加密过程的过程标识,将密钥标签中的密钥属性设置为密钥标识,将密钥标签中的初始向量属性设置为加密初始向量,得到密钥标签。

可选地,媒体数据的分组加密有多种加密模式,在各种加密模式下除需要加密密钥之外,还可以包括具有随机成分的加密初始向量作为加密过程的启动参数,加密初始向量和加密密钥一起作用于待加密的目标媒体片段,产生加密后的媒体片段。随着加密分组模式的不同,加密初始向量在加密过程中应用在数据上的具体操作也不同。

在一个示例中,在cbc分组加密模式下,使用加密初始向量与目标媒体片段进行异或操作;然后,使用扩展加密过程和加密密钥对异或后的目标媒体片段进行加密,得到加密后的媒体片段。

在又一个示例中,在记数器(counter,ctr)分组加密模式下,使用扩展加密过程和加密密钥对加密初始向量进行加密;然后,使用加密后的加密初始向量与目标媒体片段进行异或操作,得到加密后的媒体片段。

可选地,发送端每发送一个目标媒体片段获取一个加密初始向量;或者,发送端每隔一段时间为后续发送的目标媒体片段获取一个加密初始向量;或者,发送端在使用同一加密初始向量加密预设数量的目标媒体片段时获取新的加密初始向量;或者,发送端在获取加密密钥时获取新的加密初始向量;或者,发送端第一次发送目标媒体片段时获取加密初始向量;本实施例不对加密初始向量的生成时机、应用范围和更换规则作限定。

比如:发送端生成的媒体播放列表中的密钥标签如下:

#ext-x-key:method=sm4,uri="https://media.example.com/key/keyid",

iv=0xbfe5dd026b3170de8854ea0d9e142479

步骤204,发送端根据扩展加密过程和加密密钥对目标媒体片段进行加密,得到加密后的媒体片段。

可选地,发送端对目标媒体片段进行加密的方式包括但不限于以下几种:

第一种:将目标媒体片段作为一个整体,使用扩展加密过程和加密密钥对目标媒体片段进行加密,得到加密后的媒体片段。

比如:在密钥标签中的过程标识method=sm4时,发送端对目标媒体片段整体进行加密,得到加密后的媒体片段。

可选地,第一种加密方式可以只适用于部分原始协议版本号,比如:只适用于原始的hls协议版本号1、2和3。

第二种:目标媒体片段包括媒体样本数据和结构描述数据,使用扩展加密过程和加密密钥对目标媒体片段中的媒体样本数据进行加密,得到加密后的媒体片段。

发送端将目标媒体片段中的媒体样本数据和媒体结构数据分离,使用扩展加密过程和加密密钥对媒体样本数据进行加密,再把加密后的媒体样本数据和未加密的媒体结构数据重组为加密后的媒体片段;或者,发送端使用扩展加密过程和加密密钥对媒体样本数据进行加密,按照加密后的媒体样本数据重建媒体结构数据,将加密后的媒体样本数据和重建后的结构描述数据重组得到加密后的媒体片段。

比如:在密钥标签中的过程标识method=sample-sm4时,发送端先分离出目标媒体片段中的媒体样本数据并加密,再将加密后的媒体样本数据与媒体结构数据重组得到加密后的媒体片段。

可选地,第二种加密方式可以只适用于部分原始协议版本号,比如:只适用于原始的hls协议版本号5和之后的原始协议版本号。

可选地,发送端使用扩展加密过程对目标媒体片段进行加密时,可以结合块加密的工作模式对目标媒体片段进行加密。比如:结合cbc模式对目标媒体片段进行加密。

比如:在mpeg-2_ts格式下时,发送端跳过每个数据帧开头的固定长度的字节不进行数据加密,然后再对接下来的数据进行加密保护。其中,开头的固定长度的字节为前导明文,属于结构描述数据;数据帧内前导明文之后的数据为媒体样本数据。

可选地,前导明文的长度根据媒体数据编码类型的不同而有所不同。比如:对于音频数据,当音频编码格式为高级音频编码(advancedaudiocoding,aac)格式时,前导明文包括音频数据的头部数据和后续的16个字节长度的数据。又比如,对于音频数据,当音频编码格式为音频编码-3(audiocoding-3,ac-3)格式时,前导明文为16个字节长度的数据。又比如,对于视频媒体数据,当视频编码格式为使用nalu表达的h.264编码格式时,前导明文为32个字节长度的数据。

可选地,在对目标媒体片段中的媒体样本数据进行加密时,若剩余的待加密的媒体样本数据的长度未达到加密分组要求的长度(比如16字节),则可以将该剩余的待加密的媒体样本数据作为明文,不进行加密处理。这种情况下,加密分组长度短于媒体样本数据的长度,此时,即使出现一块媒体样本数据未作加密处理也不会对整体媒体样本数据的加密效果造成显著的负面影响。

可选地,在对目标媒体片段中的媒体样本数据进行加密时,若剩余的待加密的媒体样本数据的长度未达到加密分组要求的长度(比如16字节),则可以在尾部使用随机数据将该剩余的待加密的媒体样本数据拼合成一个加密分组要求的长度,之后再参与加密。这种情况下,会出现加密后的数据长度比加密前的数据长度更大,所以这时不再结合使用原来未加密的媒体结构数据,而是重建新的媒体结构数据,将加密后的媒体样本数据与新的媒体结构数据重组为加密后的媒体片段。

当然,在密钥标签中包括加密初始向量时,发送端还可以使用加密初始向量和加密密钥对目标媒体片段进行加密,本实施例在此不作赘述。

步骤205,发送端根据扩展协议版本号、密钥标签和加密后的媒体片段的片段标识生成媒体播放列表。

可选地,加密后的媒体片段的片段标识可以为加密后的媒体片段的url地址;接收端根据该url地址下载对应的加密后的媒体片段。

媒体播放列表用于供接收端根据扩展协议版本号和密钥标签对加密后的媒体片段进行解密。

步骤206,发送端发布媒体播放列表和加密后的媒体片段。

可选地,发送端可以通过媒体发布子系统发布媒体播放列表和加密后的媒体片段。

可选地,媒体发布子系统发布的媒体播放列表和加密后的媒体片段在指定的访问时间段内允许接收端访问。访问时间段可以是发送端指定的。

可选地,访问时间段可以为加密后的媒体片段持续时长的倍数,比如:10倍;或者,在发送端获取到的媒体数据为直播数据时,访问时间段的时间长度大于或等于直播时长,本实施例不对访问时间段的时长作限定。

可选地,媒体发布子系统基于http协议发布媒体播放列表和加密后的媒体片段;或者,基于安全套接字层超文本传输协议(hypertexttransferprotocoloversecuresocketlayer,https)协议发布媒体播放列表和加密后的媒体片段,本实施例不对媒体发布子系统使用的协议作限定。

可选地,媒体发布子系统以禁止缓存的方式发布加密后的媒体片段。

步骤207,接收端获取发送端发布的媒体播放列表。

在发送端使用扩展加密过程对目标媒体片段进行加密时,媒体播放列表是发送端根据扩展协议版本号、密钥标签和加密后的媒体片段的片段标识生成的;扩展协议版本号是对传输协议的原始协议版本号进行扩展得到的;密钥标签是根据扩展加密过程的过程标识和加密密钥的密钥标识生成的;加密后的媒体片段是使用扩展加密过程和加密密钥对目标媒体片段进行加密得到的。

可选地,接收端在经过媒体发布子系统授权之后,获取发送端发布的媒体播放列表。比如:接收端向媒体发布子系统发送登录信息,在媒体发布子系统验证该登录信息正确时,允许接收端获取媒体播放列表。

可选地,接收端周期性地根据媒体播放列表的url获取发送端发布的媒体播放列表。

步骤208,接收端根据媒体播放列表中的扩展协议版本号确定目标媒体片段的处理过程。

可选地,接收端获取到媒体播放列表之后获取版本号标签,在版本号标签的格式为扩展协议版本号的格式时,说明接收端使用扩展后的传输协议处理目标媒体片段。

步骤209,接收端根据处理过程下载媒体播放列表中片段标识指示的加密后的媒体片段。

接收端根据片段标识从媒体发布子系统中下载加密后的媒体片段。

步骤210,接收端根据处理过程获取密钥标签中密钥标识指示的加密密钥。

可选地,接收端将密钥标识通过媒体发布子系统发送至密钥子系统,然后,由密钥子系统根据密钥标识返回对应的加密密钥;或者,接收端直接与密钥子系统进行通信,由密钥子系统根据密钥标识返回对应的加密密钥。

步骤211,接收端根据过程标识指示的扩展加密过程和加密密钥对加密后的媒体片段进行解密,得到目标媒体片段。

根据步骤204中提供的两种加密方式,相应地解密方式包括但不限于以下几种:

对应第一种加密方式的第一种解密方式:使用扩展加密过程和加密密钥对加密后的媒体片段进行解密,即目标媒体片段。

对应第二种加密方式的第二种解密方式:对加密后的媒体片段进行分离,得到结构描述数据和加密后的媒体样本数据;使用扩展加密过程和加密密钥对加密后的媒体样本数据进行解密,将解密后的媒体样本数据与媒体结构重组得到目标媒体片段;或者,按照解密后的媒体样本数据的序列重建媒体结构数据,将解密后的媒体样本数据与重建得到的结构描述数据重组得到目标媒体片段。

当然,若发送端在加密过程中使用了加密初始向量对目标媒体片段进行加密,相应地,接收端需要在解密过程中需要使用相同的方法生成对应的解密初始向量,并使用该解密初始向量对加密后的媒体片段进行解密。

步骤212,接收端对目标媒体片段进行处理。

可选地,接收端处理目标媒体片段可以为对目标媒体片段进行播放。

综上所述,本实施例提供的媒体数据传输方法,通过确定传输目标媒体片段时所使用的传输协议的原始协议版本号;在使用扩展加密过程对所述目标媒体片段进行加密时,对原始协议版本号进行扩展,得到扩展协议版本号;根据扩展加密过程的过程标识和加密密钥的密钥标识生成密钥标签;根据扩展加密过程和加密密钥对目标媒体片段进行加密,得到加密后的媒体片段;根据扩展协议版本号、密钥标签和加密后的媒体片段的片段标识生成媒体播放列表;发布媒体播放列表和加密后的媒体片段;可以解决视频直播过程中只能使用原始传输协议定义的加密过程来加密媒体数据,导致加密方式比较局限的问题;由于可以对原始协议版本号进行扩展,从而引入新的加密过程,因此,可以实现在原始传输协议的基础上对加密过程的扩展。

另外,本实施例提供的媒体数据传输方法可以适用于多种媒体传输协议,即使已有的传输协议后续会升级,该媒体数据传输方法依然有效。

另外,通过对媒体片段中的媒体结构描述数据进行选择性地公开;对媒体样本数据进行加密保护;在不降低媒体样本数据受保护的状态下,对媒体片段进行格式转换等处理,比如按新的媒体格式要求重建媒体的结构描述数据并重组出媒体数据,可以直接集成到新的媒体格式的业务系统中。

可选地,步骤201-206可单独实现为发送端侧的方法实施例;步骤207-212可单独实现为接收端侧的方法实施例,本实施例对此不作限定。

可选地,发送端在提供媒体数据时,需要定期更换加密密钥,从而降低在较长时间的媒体数据传输过程中媒体数据受到攻击的可能性。在更换新的加密密钥时,发送端需要在媒体播放列表中应用新的加密密钥,并在使用该加密密钥进行加密保护的媒体片段的片段标识之前,插入应用了新的加密密钥的密钥标识。

基于上述实施例,在步骤203之后,发送端在加密密钥的使用时长达到预设时长时更新密钥标签,得到更新后的密钥标签;根据更新后的密钥标签和更新密钥标签的时刻对应的目标媒体片段生成更新后的媒体播放列表。

可选地,预设时长为1小时;或者,大于1小时且小于24小时;或者,小于1小时且大于目标媒体片段的平均持续时间。本实施例不对预设时长的设定方式和取值作限定。

其中,发送端更新密钥标签包括:更新密钥标签中的密钥标识和/或加密初始向量。

综上所述,本实施例中,通过每隔预设时长更新加密密钥的密钥标识和/或加密初始向量,可以降低在较长时间的媒体数据传输过程中媒体数据受到攻击的可能性;提高媒体数据的安全性。

图3是本申请一个实施例提供的媒体数据传输装置的框图,本实施例以该装置应用于图1所示的媒体数据传输系统中的发送端110为例进行说明。该装置至少包括以下几个模块:版本号确定模块310、版本号扩展模块320、标签生成模块330、数据加密模块340、列表生成模块350和数据发布模块360。

版本号确定模块310,用于确定传输目标媒体片段时所使用的传输协议的原始协议版本号;

版本号扩展模块320,用于对所述原始协议版本号进行扩展,得到扩展协议版本号;所述扩展加密过程是指所述传输协议定义范围以外的加密过程;

标签生成模块330,用于根据所述扩展加密过程的过程标识和加密密钥的密钥标识生成密钥标签;

数据加密模块340,用于根据所述扩展加密过程和所述加密密钥对所述目标媒体片段进行加密,得到加密后的媒体片段;

列表生成模块350,用于根据所述扩展协议版本号、所述密钥标签和所述加密后的媒体片段的片段标识生成媒体播放列表;

数据发布模块360,用于发布所述媒体播放列表和所述加密后的媒体片段,所述媒体播放列表用于供接收端根据所述扩展协议版本号和所述密钥标签对所述加密后的媒体片段进行解密。

相关细节参考上述方法实施例。

图4是本申请一个实施例提供的媒体数据传输装置的框图,本实施例以该装置应用于图1所示的媒体数据传输系统中的接收端120为例进行说明。该装置至少包括以下几个模块:列表获取模块410、过程确定模块420、数据下载模块430、密钥获取模块440、数据解密模块450和数据处理模块460。

列表获取模块410,用于获取发送端发布的媒体播放列表;所述媒体播放列表是所述发送端根据扩展协议版本号、密钥标签和加密后的媒体片段的片段标识生成的;所述扩展协议版本号是对传输协议的原始协议版本号进行扩展得到的;所述密钥标签是根据所述扩展加密过程的过程标识和加密密钥的密钥标识生成的;所述加密后的媒体片段是使用所述扩展加密过程和所述加密密钥对所述目标媒体片段进行加密得到的;所述扩展加密过程是指所述传输协议定义范围之外的加密过程;

过程确定模块420,用于根据所述媒体播放列表中的所述扩展协议版本号确定所述目标媒体片段的处理过程;

数据下载模块430,用于根据所述处理过程下载所述媒体播放列表中所述片段标识指示的所述加密后的媒体片段;

密钥获取模块440,用于根据所述处理过程获取所述密钥标签中所述密钥标识指示的所述加密密钥;

数据解密模块450,用于根据所述过程标识指示的扩展加密过程和所述加密密钥对所述加密后的媒体片段进行解密,得到所述目标媒体片段;

数据处理模块460,用于对所述目标媒体片段进行处理。

相关细节参考上述方法实施例。

需要说明的是:上述实施例中提供的媒体数据传输装置在进行媒体数据传输时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将媒体数据传输装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的媒体数据传输装置与媒体数据传输方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图5是本申请一个实施例提供的媒体数据传输装置的框图,该装置可以是图1所示的媒体数据传输系统中的发送端110;或者,也可以是接收端120。该装置至少包括处理器501和存储器502。

处理器501可以包括一个或多个处理核心,比如:4核心处理器、5核心处理器等。处理器501可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla

(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器501也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器501可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器501还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器502可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器502还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器502中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器501所执行以实现本申请中方法实施例提供的媒体数据传输方法。

在一些实施例中,媒体数据传输装置还可选包括有:外围设备接口和至少一个外围设备。处理器501、存储器502和外围设备接口之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口相连。示意性地,外围设备包括但不限于:射频电路、触摸显示屏、音频电路、和电源等。

当然,媒体数据传输装置还可以包括更少或更多的组件,本实施例对此不作限定。

可选地,本申请还提供有一种计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的媒体数据传输方法。

可选地,本申请还提供有一种计算机产品,该计算机产品包括计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的媒体数据传输方法。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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