流媒体加密方法、装置和系统的制作方法_3

文档序号:9870261阅读:来源:国知局
4b}rtes大小的固定数据,例如0x05050303,用 于标识加密盒,并且是整个加密盒的唯一标示。
[0118] Total size数据量为32bits,用于记载整个加密盒的数据量大小。
[0119] Offset to origin file数据量为32bits,用于记载加密数据在流媒体原文件中 的数据偏移量,也即当前加密盒携带的数据片段在在流媒体原文件中的起始位置。
[0120] DRM data为当前加密盒中,加密数据所使用的加密秘钥对应的加密信息,用于客 户端根据此信息获取对应的解密秘钥。DRM data length数据量为32bits,用于记录DRM da化的数据长度,也即记录DRM da化的数据量。
[0121] Encrypted data为当前加密盒中携带的加密数据,也即加密后的数据片段。每个 加密盒携带一个加密后的数据片段。Enc巧Pted data length数据量为32bits,用于记录 化crypted da化的数据长度,也即记录化crypted da化的数据量。
[0122] 然后,服务端可W根据数据片段的播放时间先后顺序,依次对数据片段进行加密。 服务端获取第一个数据片段,然后,将0x05050303写入Si即ature ID,用于标识加密盒的存 在。
[0123] 然后,服务端将记录的第一个数据片段在流媒体原文件中的起始位置,写入 Offset to origin file。
[0124] 然后,服务端将第一个数据片段的加密信息写入DRM data;并获取加密信息的数 据量,写入DRM da1:a length。
[0125] 然后,服务端根据第一个数据片段的加密秘钥,对第一个数据片段进行加密,得到 加密数据。服务端将得到的加密数据写入Encrypted data;并获取加密数据的信息量,写入 Encrypted d曰t曰 length。
[0126] 然后,服务端计算得到当前加密盒的总计数据量,并将得到的数据量写入Total size。
[0127] 由此,服务端完成第一个数据片段的加密,得到第一个加密盒。
[0128] 然后,服务端继续构建加密盒,依次对数据片段进行加密,得到对应的加密盒。
[0129] 在本实施例中,服务端按预设的数据量划分媒体数据,得到各数据片段;然后根据 预设的加密秘钥和加密信息,获取各数据片段的加密秘钥和加密信息;然后,根据各数据片 段的加密秘钥和加密信息,分别加密各数据片段得到各加密盒。本实施例通过将媒体数据 进行分段加密,无需对媒体数据中的每一个采样进行加密,大大减轻了服务端对媒体数据 的加密工作量;并且,服务端保持流媒体原文件的元数据保持不变,仅加密媒体数据,实现 了在不改变流媒体原文件格式的条件下对流媒体文件的加密。
[0130] 进一步的,参照图3,本发明流媒体加密方法第=实施例还提供一种流媒体加密方 法,基于上述图2所示的实施例,所述步骤S23之后,还包括:
[0131] 步骤S24、所述服务端判断所述各数据片段是否已全部完成加密;若所述各数据片 段未全部完成加密,则转入执行步骤:S22;若所述各数据片段已全部完成加密,则转入执行 步骤:S30。
[0132] 在本实施例中,服务端根据各数据片段的加密秘钥和加密信息,依次加密各数据 片段。取流媒体原文件的媒体数据长度为m,划分数据片段的预设数据量为k,则服务端依次 从媒体数据中截取长度为k的数据片段进行加密得到加密盒。
[0133] 作为一种实施方式,在得到加密盒后,服务端根据剩余的媒体数据长度判断当前 各数据片段是否已全部完成加密;若剩余的媒体数据长度为零,则判定当前各数据片段已 全部完成加密;若剩余的媒体数据长度不为零,则判定当前各数据片段未全部完成加密。
[0134] 若当前各数据片段未全部完成加密,则服务端继续从媒体数据中截取长度为k的 数据片段,获取此数据片段的加密秘钥和加密信息,对此数据片段进行加密。得到加密盒 后,再次判断当前各数据片段是否已全部完成加密。
[0135] 若当前各数据片段已全部完成加密,则服务端根据流媒体原文件的格式、元数据 和各加密盒,创建加密流媒体文件,完成对流媒体原文件的加密。
[0136] 在本实施例中,服务端判断各数据片段是否已全部完成加密;若各数据片段未全 部完成加密,则服务端继续获取数据片段的加密秘钥和加密信息对数据片段进行加密;若 各数据片段已全部完成加密,则服务端根据流媒体原文件的格式、元数据和各加密盒,创建 加密流媒体文件,完成对流媒体原文件的加密。本实施例通过判断各数据片段是否已全部 完成加密,避免数据片段在加密过程中被遗漏,保证了加密流媒体文件中媒体数据的完整 性。
[0137] 进一步的,参照图4,本发明流媒体加密方法第四实施例提供一种流媒体加密方 法,基于上述图1至图3所示的任一实施例(本实施例W图1为例),所述S30的步骤之后,还包 括:
[0138] 所述S40、所述服务端向客户端发布所述加密流媒体文件。
[0139] 服务端在根据流媒体原文件的格式、元数据和各加密盒,创建加密流媒体文件,完 成对流媒体原文件的加密后,向客户端发布得到的加密流媒体文件。
[0140] 具体的,作为一种实施方式,若当前服务端从流媒体源获取的流媒体原文件有多 个,则服务端可W在流媒体原文件全部完成加密后,将得到的多个加密流媒体文件统一打 包,向客户端发布。客户端可W-次性的下载得到全部的加密流媒体文件。
[0141] 作为另一种实施方式,若当前服务端从流媒体源获取的流媒体原文件有多个,月良 务端可W在每完成一个流媒体原文件的加密后,立即将得到的加密流媒体文件向客户端发 布,直至完成全部流媒体原文件的加密和发布。客户端可W依次下载加密流媒体文件进行 解密、播放,实现用户在线观看媒体内容。
[0142] 在本实施例中,完成流媒体原文件的加密,得到加密流媒体文件后,服务端向客户 端发布得到的加密流媒体文件,W供客户端下载。本实施例通过服务端主动向客户端发布 加密流媒体文件,使客户端可W及时获取加密流媒体文件,一边解密已获取的加密流媒体 文件一边继续下载后续的加密流媒体文件,实现了流媒体文件内容的在线连续播放,提高 了用户体验。
[0143] 参照图5,本发明流媒体加密装置第一实施例提供一种流媒体加密装置,所述流媒 体加密装置包括:
[0144] 获取模块10,用于根据流媒体原文件,得到元数据和媒体数据。
[0145] 本发明实施例中,流媒体加密装置位于服务端中,流媒体加密装置通过将流媒体 原文件的元数据和媒体数据分开,仅加密媒体数据,从而实现得到的加密流媒体文件格式 保持不变。
[0146] 具体的,作为一种实施方式,首先,获取模块10从流媒体源获取流媒体原文件。流 媒体原文件包括元数据和媒体数据。
[0147] 其中,元数据是用于描述流媒体原文件的数据,包括识别数据、文件属性数据、媒 体属性数据、索引数据等,可根据实际需要灵活设置;媒体数据包括当前流媒体原文件携带 的媒体内容数据,例如图形、图像、音频、视频等。
[0148] 然后,获取模块10解析流媒体原文件,得到元数据和媒体数据。
[0149] 加密模块20,用于根据预设的加密秘钥和加密信息,加密所述媒体数据得到加密 盒。
[0150] 在得到元数据和媒体数据后,加密模块20根据预设的加密秘钥和加密信息,加密 媒体数据得到加密盒。
[0151 ]具体的,作为一种实施方式,首先,加密模块20将媒体数据进行划分,得到媒体数 据的数据片段。加密模块20可W预设数据量,按照预设的数据量对媒体数据进行划分,得到 数据量相同的多个数据片段;加密模块20也可W预设片段数量,根据预设的片段数量对媒 体数据进行等分,得到预设数量的数据片段,得到的数据片段数据量相同;当然,加密模块 20也可W根据其他预设规则,划分媒体数据得到数据片段,可根据实际需要灵活设置。一个 数据片段中包括一个或多个媒体数据采样,可根据实际需要设置。
[0152] 加密模块20预设有数据片段的加密秘钥和加密信息。预设的加密信息为加密秘钥 的识别信息,具有唯一性,可W使用加密信息标识当前数据片段被加密为加密数据所使用 的加密秘钥。服务器还预设有加密秘钥对应的解密秘钥,解密秘钥用于解密加密秘钥加密 后的数据。需要说明的是,加密秘钥和对应的解密秘钥共用同一加密信息,也即加密秘钥、 解密秘钥和加密信息为一一对应的映射关系,服务器根据加密信息即可获取对应的加密秘 钥和解密秘钥。
[0153] 然后,加密模块20根据得到的数据片段,分配加密秘钥和加密信息。若当前要对所 有的数据片段使用相同的加密秘钥进行加密,则服务器向所有的数据片段分配相同的加密 秘钥和加密信息;若当前要对数据片段使用不同的加密秘钥进行加密,则服务器向不同的 数据片段分配不同的加密秘钥和加密秘钥对应的加密信息。
[0154] 然后,根据数据片段的加密秘钥,分别对数据片段进行加密。
[0155] 例如,根据播放时间的先后顺序,当前加密模块20得到的数据片段包括数据片段 1、数据片段2、数据片段3……数据片段n,共n个数据片段。
[0156] 加密模块20根据数据片段1的加密秘钥对数据片段1进行加密,得到加密数据1。
[0157] 然后,加密模块20创建加密盒1,将得到的加密数据1和加密秘钥对应的加密信息 填充到加密盒1中。
[0158] 然后,加密模块20获取加密盒1的相关信息数据,并将信息数据填充到加密盒1中, 完成加密盒1的填充。加密盒1的相关信息数据包括加密盒1的标识信息、加密盒1的数据大 小、加密数据I的数据大小等信息,可根据实际需要灵活设置。
[0159] 由此,加密模块20得到携带媒体数据的加密盒1。
[0160] 然后,加密模块20对数据片段2、数据片段3……数据片段n分别进行加密,得到加 密盒2、加密盒3……加密盒n。
[0161 ]由此,加密模块20完成对媒体数据的加密,得到加密盒。
[0162] 创建模块30,用于根据所述流媒体原文件的格式、所述元数据和所述加密盒,创建 加密流媒体文件。
[0163] 在完成对媒体数据的加密后,创建模块30根据得到的元数据和加密盒创建加密流 媒体文件。
[0164] 具体的,作为一种实施方式,首先,创建模块30新建加密流媒体文件,新建的加密 流媒体文件无具体的文件内容。
[0165] 然后,创建模块30根据流媒体原文件的格式,将获取的元数据写入加密流媒体文 件,使元数据在加密流媒体文件中的格式与元数据在流媒体原文件中的格式保持相同,例 如:使元数据在加密流媒体文件的位置与元数据在流媒体原文件中的位置相同。
[0166] 创建模块30根据流媒体原文件的格式,将获取的加密盒作为媒体数据写入加密流 媒体文件,使加密盒在加密流媒体文件中的格式与媒体数据在流媒体原文件中的格式保持 相同。例如,使元数据与加密盒在加密流媒体文件的排序,和元数据与媒体数据在流媒体原 文件中的排序保持一致。
[0167] 由此,完成流媒体原文件的加密,得到加密流媒体文件。得到的
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1