一种流媒体视频文件的保护方法与流程

文档序号:12628500阅读:306来源:国知局

本发明涉及一种流媒体视频文件的保护方法。



背景技术:

移动终端上,多数视频应用都提供了流媒体视频文件的下载和本地播放的功能,由于用户容易将有版权内容随意扩散到别的未授权用户或设备上进行非法播放,因此对于有版权的视频内容做各种加密和保护是必需的要求。



技术实现要素:

本发明的目的在于克服现有技术中的不足而提供一种流媒体视频文件的保护方法。

为实现上述目的,一方面,本发明提供的一种流媒体视频文件的保护方法,包括加密和解密两个部分,

加密部分包括如下步骤:

配置加密所需参数;

获取视频文件,并创建加密模块实例,采用预设的混淆算法,混淆所需的参数生成加密密钥,并采用预设的加密算法初始化加密上下文环境,

解密部分包括如下步骤:

创建解密模块实例,传入解密关联的参数;

定位视频文件,初始化解密模块,采用预设的混淆算法,混淆所需的参数生成解密密钥,并采用预设的解密算法初始化解密上下文环境。

优选地,加密部分和解密部分中所需的参数为可唯一标识授权信息的参数,参数包括设备ID、用户鉴权生成的token等。

优选地,获取视频文件的步骤为,发起http请求,下载媒体流url对应的视频文件或播放列表文件及播放列表文件中描述的所有目标视频分片文件。

优选地,视频文件为MP4、FLV等单文件格式视频文件,播放列表文件为HLS、HDS、MPEG2-DASH视频流对应的播放列表文件,播放列表文件格式为m3u8、xml等。

根据本发明提供的一种流媒体视频文件的保护方法,适用于所有基于http协议下载的流媒体视频文件的文件保护,不受文件格式限制,由于采用了能够唯一标识授权信息的参数作为密钥,同时加/解密相关联的参数只保存在当前下载、播放应用的上下文,可以有效防止受保护的视频内容无法在其他未授权的用户所在环境里播放,即保证已加密的视频文件只能在当前授权的设备上播放,因此可防止用户把有版权内容随意扩散到别的未授权的用户或者设备上非法播放。

具体实施方式

下面详细描述本发明的实施例。

本发明一实施例提供了一种流媒体视频文件的保护方法,包括加密部分和解密部分。

具体地,加密部分包括如下步骤:

步骤1、视频文件下载、加密:

步骤1.1、开启视频文件下载应用,配置加解密需要的参数:

步骤1.1.1、密钥要求:

选择一个或者多个能够唯一标识授权信息的参数,如设备ID,或者用户鉴权生成的token等;

选择某一已知的混淆算法以生成加/解密密钥。

步骤1.1.2、加/解密算法:

选择某一已知的加/解密算法,约定算法除密钥外必须的参数,比如AES、DES、3DES等;

固定分块加/解密的字节数,用于没有关键帧列表信息的文件格式。

步骤1.2、发起http请求,下载媒体流url对应的视频文件——如MP4、FLV或者其它格式的单文件,或者HLS、HDS、MPEG2-DASH视频流对应的播放列表文件(格式如m3u8、xml等)以及播放列表文件文件中描述的所有目标视频分片文件,存储到目标文件夹。

步骤1.3、下载应用创建并初始化一个加密模块的实例,混淆满足步骤1.1.1中要求的参数作为加密的密钥,采用步骤1.1.2指定的加密算法,初始化加密上下文环境:

其中,对于MP4、FLV或者其它的单文件格式:

调用对应的文件解析器,获取文件中的关键帧表内容,将其解析成时间戳-位置映射对(相对文件开始偏移的字节数)的一个列表结构,描述形式不限,从第一个时间戳-位置对开始,到下一个映射对开始之间的数据内容作为独立的数据分片,进行加密处理,以此循环,直到描述结构列表结束。

当文件解析器没有获取到文件的关键帧列表信息时,选择用步骤1.1.2指定的字节数作为文件的分块大小,对每个分块依序独立加密,以此循环,直到文件结束。

其中,对于HLS、HDS、MPEG2-DASH视频流格式文件:

分别加密播放列表文件(格式如m3u8、xml等)以及所有播放列表文件中描述所包含的已下载的视频分片文件;

对于有range参数指定的单一目标视频文件,将该视频文件按照播放列表内容描述的,所在range起止范围分割出的视频分片作为独立的数据分片各自进行加密处理。

具体地,解密部分包括如下步骤:

步骤2、视频文件解密、播放:

步骤2.1、播放器创建一个解密模块的实例,传入解密关联的参数,参数要求及规则同步骤1.1的描述一致。

步骤2.2、播放器根据传入的待播放加密文件的地址,定位目标播放文件,比如MP4、FLV等单文件、也可以是HLS、HDS、MPEG2-DASH相关的播放列表文件,或者列表文件对应的多视频目标文件。

步骤2.3、初始化解密模块,混淆满足步骤1.1.1中要求的参数作为解密密钥,采用步骤1.1.2指定的解密算法,初始化解密的上下文环境:

其中,对于MP4、FLV或者其它格式的单文件:

调用对应的文件解析器,获取文件中的关键帧表内容,将其解析成时间戳-位置映射对(相对文件开始偏移的字节数)的一个列表结构,从第一个时间戳-位置对开始,到下一个映射对开始之间的数据内容作为独立的数据分片,进行解密处理。

当文件解析器没有获取到文件的关键帧列表信息时,按步骤1.1.2指定的字节数作为文件的分块大小,对每个分块依序独立解密,以此循环,直到文件结束。

其中,对于HLS、HDS、MPEG2-DASH等视频流格式文件:

解密模块分别解密播放列表文件(格式如m3u8、xml等)以及所有播放列表文件中描述所包含的已下载的视频分片文件;

对于有range参数指定的单一目标视频文件,根据播放列表文件描述,对于包含所有目标视频文件在各个range起止的范围的数据内容,作为独立的数据分片进行解密。

步骤2.4、播放器播放解密后的视频文件内容。

步骤2.5、当用户有seek操作时:

其中,对于MP4、FLV等格式的单一目标视频文件,有关键帧列表信息的话,通常播放器会根据文件的关键帧列表,选择最接近的关键帧开始位置,将位置偏移的的请求传递给解密模块,如果偏移值不是关键帧开始的位置,解密模块要根据步骤1.3.1中描述的列表结构进行修正,选择该请求位置之前最接近的一个时间戳-位置对开始的数据分片,进行解密,然后再传出播放器位置偏移请求开始位置要求的数据,以避免解密出错造成播放花屏或者播放失败。

对于没有关键帧列表信息的已加密文件,解密模块应根据步骤1.1.2约定的分块大小,查找到能满足播放器位置偏移请求的分块,以此开始解密。

其中,对于HLS、HDS、MPEG2-DASH视频流文件,由于加密时是针对目标视频分片单独加密,seek请求定位的会是各个目标视频分片文件开始的位置,seek操作通常不会造成解密出错和播放失败。

一种特殊情况,对于播放列表描述带Range参数指定的单一目标视频文件,如果播放器请求的偏移位置与播放列表描述的目标视频分片偏移不一致,也需要作如步骤2.5.1一样做校正。

根据本发明提供的一种流媒体视频文件的保护方法,适用于所有基于http协议下载的流媒体视频文件的文件保护,不受文件格式限制,由于采用了能够唯一标识授权信息的参数作为密钥,同时加/解密相关联的参数只保存在当前下载、播放应用的上下文,可以有效防止受保护的视频内容无法在其他未授权的用户所在环境里播放,即保证已加密的视频文件只能在当前授权的设备上播放,因此可防止用户把有版权内容随意扩散到别的未授权的用户或者设备上非法播放。

尽管上面已经示出和描述了本发明的部分具体的实施部分,可以理解的是,上述具体的举例实时部分是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

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