CN110798714A - 一种基于hls的本地视频播放系统及播放方法 - Google Patents
一种基于hls的本地视频播放系统及播放方法 Download PDFInfo
- Publication number
- CN110798714A CN110798714A CN201911014168.7A CN201911014168A CN110798714A CN 110798714 A CN110798714 A CN 110798714A CN 201911014168 A CN201911014168 A CN 201911014168A CN 110798714 A CN110798714 A CN 110798714A
- Authority
- CN
- China
- Prior art keywords
- video
- hls
- file
- key
- encrypted
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2389—Multiplex stream processing, e.g. multiplex stream encrypting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/254—Management at additional data server, e.g. shopping server, rights management server
- H04N21/2541—Rights Management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/26613—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel for generating or managing keys in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
- H04N21/4385—Multiplex stream processing, e.g. multiplex stream decrypting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/633—Control signals issued by server directed to the network components or client
- H04N21/6332—Control signals issued by server directed to the network components or client directed to client
- H04N21/6334—Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key
- H04N21/63345—Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key by transmitting keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/85406—Content authoring involving a specific file format, e.g. MP4 format
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及音视频安全系统技术领域,具体而言,涉及一种基于HLS的本地视频播放系统及播放方法。本发明提供的基于HLS的本地视频播放系统,包括视频提供端和客户端,视频提供端包括密钥提供模块、HLS加密模块、内容输出模块;所述客户端包括解密模块、本地HLS服务器创建模块、m3u8文件生成模块及HLS播放模块。通过使用视频提供端和客户端之间约定的第二密钥对视频切片所用的第一密钥进行加密,及第二密钥分别预先内置于视频提供端和客户端,使得视频提供端和客户端之间具有关于第二密钥的匹配性,有效保障了本地视频文件的安全性。
Description
技术领域
本发明涉及音视频安全系统技术领域,具体而言,涉及一种基于HLS的本地视频播放系统及播放方法。
背景技术
随着科技发展各种新型音视频产品问世,市场对音视频内容需求越来越多了。为了防止音视频被非法拷贝,保障音视频发行方的权益,维持视频内容市场的良性发展,对音视频数字版权的保护需求越来越高,尤其是对于本地音视频,如何提高本地音视频的版权保护,防止被恶意、非法的复制拷贝成为当下的一个研究热点。
HLS(HTTP Live Streaming,基于HTTP的流媒体网络传输协议)协议是由苹果公司创立,针对iPhone,iPad等通信终端设计的。它的基本实现原理为将一个大的媒体文件进行分片,将分片文件资源路径记录于m3u8文件内,用于提供给客户端。客户端根据该m3u8文件即可获取对应的媒体资源进行播放。M3U是一种文件格式,是某些移动设备例如安卓,苹果手机浏览器缓存视频的“专用视频格式”文件,它记录了一个索引纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放,M3U8文件是指UTF-8编码格式的M3U文件。AES-128(Advanced Encryption Standard,高级加密标准)是一种标准化的加密方法,在绝大部分的硬件芯片、软件平台中进行内。现有的HLS协议里就提供了AES-128音视频码流数据加密方法,媒体文件分片成一个个切片文件,使用AES-128的密钥对切片加密,然后生成m3u8文件。m3u8文件中包含加密后的切片和切片密钥的URL地址,之后发布到HTTP服务器上。客户端下载并解析m3u8文件,然后下载切片文件和切片对应的密钥即可进行解密播放。
NanoHttpd是个很强大的开源库,是使用Java实现的微型web server,是一个可嵌入应用程序的轻量级的HTTP Server,对Android平台来说,是一个很不错的微型服务器解决方案,可以非常方便地集成到Android应用中去。
发明内容
本发明的目的在于提供一种易于实现并具有高安全性的本地视频播放保护,提出了一种基于HLS的本地视频播放系统及播放方法,实现对本地视频的安全保护。
为实现上述目的,本发明提供如下技术方案:
本发明提供一种基于HLS的本地视频播放系统,包括视频提供端和客户端:
视频提供端包括密钥提供模块、HLS加密模块、内容输出模块;密钥提供模块用于生成对HLS视频切片文件进行AES-128加密所需的第一密钥,及对第一密钥进行加密所需的第二密钥的设置;HLS加密模块提供对源视频文件的HLS切片、对HLS视频切片文件进行加密处理及基于AES-128加密方法对所述第一密钥进行加密;内容输出模块用于输出加密视频内容文件,加密视频内容文件包括加密HLS视频切片文件和视频信息文件,视频信息文件包括加密第一密钥文件;
客户端包括解密模块、本地HLS服务器创建模块、m3u8文件生成模块及HLS播放模块,本地HLS服务器创建模块用于创建本地HLS服务器,m3u8文件生成模块用于生成符合HLS协议的m3u8视频索引文件,并将m3u8视频索引文件发布到本地HLS服务器上。
本地HLS服务器设置为只有客户端具有访问权限;
视频提供端和客户端之间具有关于所述第二密钥的匹配性。
可选的,视频信息文件还包括源视频文件的视频名称、视频大小、视频分辨率、视频时长、视频示意图、视频格式中的至少一项。
可选的,视频提供端和客户端处于不同的设备端。
可选的,视频提供端和客户端处于同一个设备端。
本发明还提供一种基于HLS的本地视频播放方法,应用于基于HLS的本地视频播放系统,具体实施步骤包括:
步骤S1:视频提供端的密钥提供模块随机生成第一密钥,及对第二密钥进行设置;HLS切片模块,HLS加密模块对源视频进行切片获得HLS视频切片文件,基于AES-128加密方法使用第一密钥对HLS视频切片文件进行加密后得到加密HLS视频切片文件;加密模块基于AES-128加密方法使用第二密钥对第一密钥进行加密获得加密第一密钥;
步骤S2:内容输出模块将加密第一密钥写入视频信息文件,最终输出包含有加密HLS视频切片文件及视频信息文件的加密视频内容文件。
步骤S3:使加密视频内容文件与客户端处于同一个设备端,客户端获取所述加密视频内容文件在所述设备上的存放地址;
步骤S4:客户端的本地HLS服务器创建模块创建本地HLS服务器;
步骤S5:客户端的解密模块索取所述加密视频内容文件中的所述视频信息文件,并使用所述第二密钥对视频信息文件中的加密第一密钥进行解密以获得第一密钥,将获得的第一密钥发布在本地HLS服务器上;
步骤S6:客户端的m3u8文件生成模块创建m3u8视频索引文件并发布在本地HLS服务器上;
步骤S7:HLS播放模块读取本地HLS服务器上的m3u8视频索引文件,并进行解析、下载、解密及播放。
本发明还提供另一种基于HLS的本地视频播放方法,应用于基于HLS的本地视频播放系统,具体实施步骤包括:
步骤:41:视频提供端的密钥提供模块随机生成第一密钥,及对第二密钥进行设置;HLS切片模块,HLS加密模块对源视频进行切片获得HLS视频切片文件,基于AES-128加密方法使用第一密钥对HLS视频切片文件进行加密后得到加密HLS视频切片文件;加密模块基于AES-128加密方法使用第二密钥对第一密钥进行加密获得加密第一密钥;
步骤S42:内容输出模块将加密第一密钥写入视频信息文件,输出包含有加密HLS视频切片文件及视频信息文件的加密视频内容文件。
步骤S43:使加密视频内容文件与客户端处于同一个设备端,客户端获取加密视频内容文件的存放地址;
步骤S44:客户端的本地HLS服务器创建模块创建本地HLS服务器;
步骤S45:客户端的加密模块索取加密视频内容文件中的视频信息文件,并使用第二密钥对视频信息文件中的加密第一密钥进行解密以获得第一密钥,使用获得的第一密钥对加密视频内容文件中的加密HLS视频切片文件进行解密,将解密后的HLS视频切片文件发布到本地HLS服务器上;
步骤S46:客户端的m3u8文件生成模块创建m3u8视频索引文件并发布到本地HLS服务器上;
步骤S47:客户端的HLS播放模块索取本地HLS服务器上的m3u8视频索引文件,解析、下载及播放。
本发明提供的基于HLS的本地视频播放系统及播放方法,通过使用视频提供端和客户端之间约定的第二密钥对视频切片所用的第一密钥进行加密,及第二密钥分别预先内置于视频提供端和客户端,使得视频提供端和客户端之间具有关于第二密钥的匹配性,有效保障了本地视频文件的安全性,且通过在客户端创建本地HLS服务器并设置只有该客户端具有访问权限,将关键信息,诸如密钥key、HLS视频切片文件,存放在本地HLS服务器上,进一步增加了本地视频文件的安全性。
另外,由于视频提供端用来加密的算法及客户端用来解密的算法均是采用标准的AES-128加密方法,在达到高安全性的同时,使得本发明提供的技术方案更易实现。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明提供的一种基于HLS的本地视频播放系统的结构示意图;
图2为本发明提供的一种基于HLS的本地视频播放系统的应用示意图;
图3为本发明提供的一种基于HLS的本地视频播放方法的流程图;
图4为本发明提供的另一种基于HLS的本地视频播放方法的流程图。
图标:100-视频提供端;101-密钥提供模块;102-HLS加密模块;103-内容输出模块;200-客户端;201-解密模块;202-本地HLS服务器创建模块;203-m3u8文件生成模块;204-HLS播放模块。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:在本发明的描述中,术语“第一”、“第二”、“第三”、“第四”仅用于区分描述,而不能理解为只是或暗示相对重要性。
本发明提供的一种基于HLS的本地视频播放系统,如图1所示,包括视频提供端100和客户端200。视频提供端100包括密钥提供模块101、HLS加密模块102、内容输出模块103。
密钥提供模块101用于生成对HLS视频切片文件进行AES-128加密所需的第一密钥,及对第一密钥进行加密所需的第二密钥的设置,输出第一密钥和第二密钥并将两者传递给HLS加密模块10。HLS加密模块10提供对源视频文件的HLS切片、对HLS视频切片文件进行AES-128加密处理及基于AES-128加密方法对第一密钥进行加密,输出加密的HLS视频切片文件和加密的第一密钥文件并传递给内容输出模块103。内容输出模块103用于输出加密视频内容文件,包括加密HLS视频切片文件和视频信息文件,其中视频信息文件包括加密第一密钥文件。
客户端200包括解密模块201、本地HLS服务器创建模块202、m3u8文件生成模块203及HLS播放模块204,本地HLS服务器创建模块202用于创建本地HLS服务器,m3u8文件生成模块203用于生成符合HLS协议的m3u8视频索引文件,并将所述m3u8视频索引文件发布到所述本地HLS服务器上。
本地HLS服务器设置为只有所述客户端具有访问权限。
上述第二密钥是视频提供端100和客户端200之间约定的密钥,是预先分别内置于视频提供端100和客户端200内的,视频提供端100和所述客户端200之间具有关于该第二密钥的匹配性。具体的,内置第二密钥A的视频提供端输出的加密的HLS视频切片文件只能通过内置了第二密钥A的客户端进行播放,同理,内置第二密钥B的视频提供端输出的加密的HLS视频切片文件只能通过内置了第二密钥B的客户端进行播放。内置第二密钥A的视频提供端输出的加密的HLS视频切片文件不能够在内置第二密钥B的客户端上进行播放的,即视频提供端100和客户端100具有关于第二密钥的匹配性。
在一种实施方式中,视频提供端和客户端处于不同的设备端,如图2-a所示,视频提供端100处于第一设备端601上,客户端200处于第二设备端602上,这里所述的设备端是指具有软件系统和硬件系统的通过一系列指令对数据进行处理的电子设备,诸如智能手机、电脑(包含台式电脑、笔记本电脑、平板电脑等)、虚拟显示设备(一种基于虚拟现实技术的显示设备,具有独立的CPU、GPU及显示器的电子设备)。第一设备端601上的视频提供端100将需要加密的视频文件进行HLS切片、加密、第一密钥加密处理后最终输出该视频文件对应的加密视频内容文件。该加密视频包可以通过可移动存储设备,诸如U盘、移动硬盘等,传送到第二设备端602上。第二设备端602上的客户端200对该第二设备端602上的加密视频包进行播放,同样的,该加密视频包还可以通过可移动存储设备传送到安装有客户端200的第三设备端603上,第二设备端602上的客户端200和第三设备端603的客户端200分别与第一设备端601上的视频提供端具有关于第二密钥的匹配性。视频提供端100和客户端200还可以都处于同一第四设备端604上,如图2-b所示,视频提供端100将需要加密的源视频进行HLS切片、加密、第一密钥加密处理后最终输出该视频文件对应的加密视频内容文件到第三设备端603上,同时不可恢复性的删除源视频文件,第四设备端604上的客户端200可直接对该加密视频内容文件进行播放,但无法获取到源视频文件,可以降低无源视频版权的用户通过第四设备端604直接非法拷贝源视频文件的风险。
图3为本发明提供的一种基于HLS的本地视频播放方法的流程图,该方法应用于图1所示的基于HLS的本地视频播放系统,其具体实施步骤包括:
步骤S1:视频提供端100d的密钥提供模块101随机生成第一密钥,及对第二密钥进行设置;HLS加密模块102对源视频首先进行切片获得HLS视频切片文件,基于AES-128加密方法使用密钥提供模块101随机生成的第一密钥对该HLS视频切片文件进行加密后得到加密HLS视频切片文件,并基于AES-128加密方法使用密钥提供模块101已设置的第二密钥对第一密钥进行加密获得加密第一密钥。
根据AES-128加密的方法,当选用AES-128的ECB或CFB或OFB的加密模式进行加密时,第一密钥只包含一个密钥key,使用第二密钥对该密钥key进行加密,当选用CBC的加密模式时,第一密钥包含一个密钥key及一个初始向量IV,可以使用第二密钥分别对密钥key和初始向量IV进行加密,也可以预先将密钥key和初始向量IV进行合并,如初始向量IV紧接密钥key放置,而后用第二密钥对合并后的值进行加密,还可以使用不同的密钥分别对密钥key和初始向量IV进行加密,此种情况下,第二密钥包括第一第二密钥和第二第二密钥,其中第一第二密钥用于密钥key的加密,第二第二密钥用于初始向量IV的加密。
步骤S2:内容输出模块103将加密第一密钥写入视频信息文件,最终输出包含有加密HLS视频切片文件及视频信息文件的加密视频内容文件。
在一种可能的实施方式中,视频信息文件除了有加密第一密钥之外,还可以包括所述源视频文件的视频名称、视频大小、视频分辨率、视频时长、视频示意图、视频格式(如3D格式、2D格式)中的一项或多项信息,用于在客户端200中指示解密后的视频文件的名称、大小、分辨率、时长、视频示意图中的一项或多项信息,便于用户对视频文件的信息了解。
步骤S3:使加密视频内容文件与客户端200处于同一个设备端,客户端200获取加密视频内容文件在所述设备端上的存放地址。
对于视频提供端和客户端不在同一个设备端的情况,可以通过移动存储产品以复制、拷贝等方式将加密视频内容文件转移放置在客户端所在的设备端上。对于视频提供端和客户端在同一个设备端的情况,客户端可以直接获取加密视频内容文件的存放地址。
步骤S4:客户端200中的本地HLS服务器创建模块202创建本地HLS服务器。
本地服务器创建常用的一种方法是NanoHttpd,NanoHttpd是一个开源库,使用Java实现,可以非常方便地集成到Android应用中去,实现一个轻量级的Web Server。本发明提供的实施例中采用NanoHttpd进行本地HLS服务器的创建。
步骤S5:客户端200中的解密模块201索取加密视频内容文件中的视频信息文件,并使用第二密钥对视频信息文件中的加密第一密钥进行解密以获得第一密钥,将获得的第一密钥发布在本地HLS服务器上。
当视频提供端100对源视频的AES-128加密模式选用的是的CBC模式时,步骤S5中解密后的第一密钥包含密钥key和初始向量IV,将其中的密钥key发布到本地HLS服务器上,将初始向量IV写入m3u8视频索引文件。当对源视频的AES-128加密模式选用的是ECB、CFB和OFB中的其中一种时,步骤S5中解密后的第一密钥包含密钥key,将密钥key发布到本地HLS服务器上。
步骤S6:客户端200中的m3u8文件生成模块203创建m3u8视频索引文件并发布在所述本地HLS服务器上。
m3u8视频索引文件中存放了视频的基本信息和每一个视频切片的索引地址。当播放HLS视频时,按m3u8视频索引文件中的顺序下载视频切片并解密、播放。
m3u8视频索引文件中视频的基本信息包含有m3u8文件必须包含的标签、m3u8文件的版本信息等,同时还包含了视频加密的信息,例如AES-128加密方法、第一密钥的信息。当视频提供端100对源视频的AES-128加密模式选用的是的CBC模式时,m3u8视频索引文件中的视频基本信息包含有第一密钥中初始向量IV的值及密钥key的URL地址,当对源视频的AES-128加密模式选用的是ECB、CFB和OFB中的其中一种时,视频m3u8视频索引文件中的视频基本信息包含有密钥key的URL地址,密钥key的URL地址具体为上述第一密钥发布在本地HLS服务器上的存放路径。每一个视频切片的索引URL地址为加密视频内容文件中加密HLS视频切片文件在所述设备端的存放地址的完整路径加上加密HLS视频切片文件的文件名,并且在m3u8视频索引文件中按照加密HLS视频切片文件文件名进行排序。创建后的m3u8视频索引文件发布到本地HLS服务器上。
步骤S7:HLS播放模块202索取本地HLS服务器上的m3u8视频索引文件,并进行解析、下载、解密及播放。
客户端200中的HLS播放模块202从HLS服务器上获取到m3u8视频索引文件后,进行解析,获取第一密钥的URL地址并访问下载密钥key,获取加密HLS视频切片文件的URL地址并访问下载加密HLS视频切片文件,使用密钥key对下载的加密HLS视频切片文件进行解密,并将解密后的HLS视频切片文件存放在本地HLS服务器上并播放该HLS视频切片文件。
由于第二密钥是预先设置的,内置于视频提供端100及客户端200中,只有视频提供端100和客户端200的开发人员具有设置权限,用户不能够更改。本地HLS服务器被设置为只有客户端200具有访问权限,如此设置确保了只有客户端200才能够对加密的HLS视频文件进行解密,是对加密HLS视频文件的一种保护,通过将解密的密钥key和m3u8视频索引文件放置在本地HLS服务器上,并设置本地HLS服务器只能够被客户端200访问,因此能够有效防止通过其他途径获取第一密钥对加密的HLS视频切片文件进行解密,通过将m3u8视频索引文件一同发布到本地HLS服务器上,对m3u8视频索引文件进行保护,从而进一步加强的本地视频文件的安全性,最终能够有效保护本地视频的安全性。进一步的,为优化本地HLS服务器占用所在设备端的存储空间,客户端200可以设置为当视频播放结束后自动删除本地HLS服务器上该视频对应的HLS视频切片文件,或设置为根据用户需求进行相应HLS视频切片文件的删除,当需要重新播放该视频文件时,客户端200重新从本地HLS服务器上读取其m3u8视频索引文件并进行解析、下载、解密及播放。
在另一种实施方式中,上述步骤S6中m3u8文件生成模块创建的m3u8视频索引文件不在本地HLS服务器上发布,而是存放到客户端200所在的设备端上的其他存储目录下,该其他存储目录可以由用户通过客户端200的用户接口进行指定的存储目录,也可以是客户端200预先设置的默认存储目录。客户端200的HLS播放模块从该存储目录下索取m3u8视频索引文件,解析后依据文件里的密钥key的URL地址,从本地HLS服务器上下载密钥key方可进行加密HLS视频切片文件的解密,因此同样可以保护本地视频的安全性。
图4为本发明提供的另一种基于HLS的本地视频播放方法的流程图,该方法应用于图1所示的基于HLS的本地视频播放系统,与图3所示一种基于HLS的本地视频播放方法的不同之处在于,图4所示的方法中使用解密后的第一密钥对加密HLS视频切片文件进行解密并将解密后的HLS视频切片文件发布到本地HLS服务器上,HLS播放模块202不需要进行解密这一步,而是直接下载HLS视频切片文件进行播放,具体实施步骤包括:
步骤S41:视频提供端100d的密钥提供模块101随机生成第一密钥,及对第二密钥进行设置;HLS加密模块102对源视频首先进行切片获得HLS视频切片文件,基于AES-128加密方法使用密钥提供模块101随机生成的第一密钥对该HLS视频切片文件进行加密后得到加密HLS视频切片文件,并基于AES-128加密方法使用密钥提供模块101已设置的第二密钥对第一密钥进行加密获得加密第一密钥。
步骤S42:内容输出模块103将加密第一密钥写入视频信息文件,最终输出包含有加密HLS视频切片文件及视频信息文件的加密视频内容文件。
步骤S43:使加密视频内容文件与客户端200处于同一个设备端,客户端200获取加密视频内容文件在所述设备端上的存放地址。
步骤S44:客户端200中的本地HLS服务器创建模块202创建本地HLS服务器。
步骤S45:客户端200中的解密模块201索取加密视频内容文件中的视频信息文件,并使用第二密钥对视频信息文件中的加密第一密钥进行解密以获得第一密钥,使用获得的第一密钥对所述加密视频内容文件中的加密HLS视频切片文件进行解密,将解密后的HLS视频切片文件发布到所述本地HLS服务器上。
步骤S46:客户端200中的m3u8文件生成模块203创建m3u8视频索引文件并发布在所述本地HLS服务器上。
m3u8视频索引文件中存放了视频的基本信息和每一个视频切片的索引地址。m3u8视频索引文件中视频的基本信息中不再包含有视频加密的信息。每一个视频切片的索引URL地址为在本地HLS服务器上的HLS视频切片文件的存放地址加上HLS视频切片文件的文件名,并且在m3u8视频索引文件中按照HLS视频切片文件文件名进行排序。创建后的m3u8视频索引文件发布到本地HLS服务器上。
步骤S47:HLS播放模块202索取本地HLS服务器上的m3u8视频索引文件,并进行解析、下载及播放。
客户端200中的HLS播放模块202从HLS服务器上获取到m3u8视频索引文件后,进行解析,获取HLS视频切片文件的URL地址并访问下载HLS视频切片文件到本地HLS服务器上,下载的HLS视频切片文件将会覆盖原来的HLS视频切片文件,HLS播放模块202对HLS视频切片文件进行播放。
由于第二密钥是预先设置的,内置于视频提供端100及客户端200中,只有视频提供端100和客户端200的开发人员具有设置权限,用户不能够更改。本地HLS服务器被设置为只有客户端200具有访问权限,如此设置确保了只有客户端200才能够对加密的HLS视频文件进行解密,是对加密HLS视频文件的一种保护。通过将解密后的HLS视频切片文件放置在本地HLS服务器上,使得该HLS视频切片文件只能被客户端200获取,从而能够有效的防止该HLS视频切片文件被非法拷贝,是能够保障本地视频文件的安全性的。进一步的,将对应的m3u8视频索引文件也发布到本地HLS服务器上,即对m3u8视频索引文件进行保护,从而进一步加强的本地视频文件的安全性。
在又另一种实施方式中,上述步骤S46中m3u8文件生成模块创建的m3u8视频索引文件不在本地HLS服务器上发布,而是存放到客户端200所在的设备端上的其他存储目录下,该其他存储目录可以由用户通过客户端200的用户接口进行指定的存储目录,也可以是客户端200预先设置的默认存储目录。客户端200的HLS播放模块从该存储目录下索取m3u8视频索引文件,解析后依据文件里的HLS视频切片文件的URL地址,从本地HLS服务器上下载HLS视频切片进行播放,由于HLS视频切片文件在本地HLS服务器上,因此同样可以保护本地视频的安全性。
本发明提供的基于HLS的本地视频播放系统及播放方法,通过使用视频提供端和客户端之间约定的第二密钥对视频切片所用的第一密钥进行加密,及第二密钥分别预先内置于视频提供端和客户端,使得视频提供端和客户端之间具有关于第二密钥的匹配性,有效保障了本地视频文件的安全性,且通过在客户端创建本地HLS服务器并设置只有该客户端具有访问权限,将关键信息,诸如密钥key、HLS视频切片文件,存放在本地HLS服务器上,进一步增加了本地视频文件的安全性。
另外,由于视频提供端用来加密的算法及客户端用来解密的算法均是采用标准的AES-128加密方法,在达到高安全性的同时,使得本发明提供的技术方案更易实现。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于HLS的本地视频播放系统,其特征在于,包括视频提供端和客户端:
所述视频提供端包括密钥提供模块、HLS加密模块、内容输出模块;所述密钥提供模块用于生成对HLS视频切片文件进行AES-128加密所需的第一密钥,及对所述第一密钥进行加密所需的第二密钥的设置;所述HLS加密模块提供对源视频文件的HLS切片、对HLS视频切片文件进行加密处理及基于AES-128加密方法对所述第一密钥进行加密;所述内容输出模块用于输出加密视频内容文件,所述加密视频内容文件包括加密HLS视频切片文件和视频信息文件,所述视频信息文件包括加密第一密钥文件;
所述客户端包括解密模块、本地HLS服务器创建模块、m3u8文件生成模块及HLS播放模块,所述本地HLS服务器创建模块用于创建本地HLS服务器,所述m3u8文件生成模块用于生成符合HLS协议的m3u8视频索引文件,并将所述m3u8视频索引文件发布到所述本地HLS服务器上;
所述本地HLS服务器设置为只有所述客户端具有访问权限;
所述视频提供端和所述客户端之间具有关于所述第二密钥的匹配性。
2.根据权利要求1所述的一种基于HLS的本地视频播放系统,其特征在于,所述视频信息文件还包括视频名称、视频大小、视频分辨率、视频时长、视频示意图、视频格式中的至少一项。
3.根据权利要求1或2所述的一种基于HLS的本地视频播放系统,其特征在于,所述视频提供端和所述客户端处于不同的设备端。
4.根据权利要求1或2所述的一种基于HLS的本地视频播放系统,其特征在于,所述视频提供端和所述客户端处于同一个设备端。
5.一种基于HLS的本地视频播放方法,其特征在于,应用于权利要求1所述的一种基于HLS的本地视频播放系统,具体实施步骤包括:
步骤S1:所述视频提供端的密钥提供模块随机生成第一密钥,及对第二密钥进行设置;HLS加密模块对源视频进行切片获得HLS视频切片文件,基于AES-128加密方法使用第一密钥对HLS视频切片文件进行加密后得到加密HLS视频切片文件;加密模块基于AES-128加密方法使用第二密钥对第一密钥进行加密获得加密第一密钥;
步骤S2:所述视频提供端的内容输出模块将加密第一密钥写入视频信息文件,最终输出包含有所述加密HLS视频切片文件及视频信息文件的加密视频内容文件;
步骤S3:使所述加密视频内容文件与所述客户端处于同一个设备端,所述客户端获取加密视频内容文件在所述设备端上的存放地址;
步骤S4:所述客户端的本地HLS服务器创建模块创建本地HLS服务器;
步骤S5:所述客户端的解密模块索取所述加密视频内容文件中的视频信息文件,并使用第二密钥对视频信息文件中的加密第一密钥进行解密以获得第一密钥,将获得的第一密钥发布在所述本地HLS服务器上;
步骤S6:所述客户端的m3u8文件生成模块创建m3u8视频索引文件并发布在所述本地HLS服务器上;
步骤S7:所述客户端的HLS播放模块读取本地HLS服务器上的m3u8视频索引文件,并进行解析、下载、解密及播放。
6.一种基于HLS的本地视频播放方法,其特征在于,应用于权利要求1所述的一种基于HLS的本地视频播放系统,具体实施步骤包括:
步骤:41:所述客户端的密钥提供模块随机生成第一密钥,及对第二密钥进行设置;HLS加密模块对源视频进行切片获得HLS视频切片文件,基于AES-128加密方法使用第一密钥对HLS视频切片文件进行加密后得到加密HLS视频切片文件;加密模块基于AES-128加密方法使用第二密钥对第一密钥进行加密获得加密第一密钥;
步骤S42:所述客户端的内容输出模块将加密第一密钥写入视频信息文件,输出包含有加密HLS视频切片文件及视频信息文件的加密视频内容文件;
步骤S43:使所述加密视频内容文件与所述客户端处于同一个设备端,所述客户端获取加密视频内容文件在所述设备端的存放地址;
步骤S44:所述客户端的本地HLS服务器创建模块创建本地HLS服务器;
步骤S45:所述客户端的加密模块索取加密视频内容文件中的视频信息文件,并使用第二密钥对视频信息文件中的加密第一密钥进行解密以获得第一密钥,使用获得的第一密钥对加密视频内容文件中的加密HLS视频切片文件进行解密,将解密后的HLS视频切片文件发布到本地HLS服务器上;
步骤S46:所述客户端的m3u8文件生成模块创建m3u8视频索引文件并发布到本地HLS服务器上;
步骤S47:所述客户端的HLS播放模块索取本地HLS服务器上的m3u8视频索引文件,解析、下载及播放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911014168.7A CN110798714B (zh) | 2019-10-23 | 2019-10-23 | 一种基于hls的本地视频播放系统及播放方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911014168.7A CN110798714B (zh) | 2019-10-23 | 2019-10-23 | 一种基于hls的本地视频播放系统及播放方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110798714A true CN110798714A (zh) | 2020-02-14 |
CN110798714B CN110798714B (zh) | 2022-02-01 |
Family
ID=69441018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911014168.7A Active CN110798714B (zh) | 2019-10-23 | 2019-10-23 | 一种基于hls的本地视频播放系统及播放方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110798714B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113259720A (zh) * | 2021-06-15 | 2021-08-13 | 杭州当贝网络科技有限公司 | 基于hls协议的视频加密方法和系统 |
CN114007106A (zh) * | 2021-12-15 | 2022-02-01 | 创盛视联数码科技(北京)有限公司 | 一种h5视频加密播放方法 |
CN114501069A (zh) * | 2020-11-13 | 2022-05-13 | 北京新氧科技有限公司 | 基于hls的多媒体播放方法、系统、设备及存储介质 |
CN117241067A (zh) * | 2023-11-15 | 2023-12-15 | 华录出版传媒有限公司 | 一种基于指纹水印的视频安全调阅方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103581764A (zh) * | 2012-07-24 | 2014-02-12 | 武汉网幂科技有限公司 | 适于hls视频文件下载存储方法及hls视频文件播放系统 |
CN106791986A (zh) * | 2017-01-10 | 2017-05-31 | 环球智达科技(北京)有限公司 | 一种hls直播索引列表加密防盗链系统及方法 |
US20170171568A1 (en) * | 2015-12-14 | 2017-06-15 | Le Holdings (Beijing) Co., Ltd. | Method and device for processing live video |
CN107734284A (zh) * | 2017-09-18 | 2018-02-23 | 深圳市麦斯杰网络有限公司 | 媒体会话建立方法、装置及计算机可读存储介质 |
CN108111876A (zh) * | 2017-12-21 | 2018-06-01 | 北京四达时代软件技术股份有限公司 | 一种局域网流媒体视频内容安全保护方法、终端及服务器 |
US20190098344A1 (en) * | 2017-09-25 | 2019-03-28 | Pluto Inc. | Methods and systems for determining a video player playback position |
CN109874028A (zh) * | 2017-12-01 | 2019-06-11 | 深圳市雷鸟信息科技有限公司 | 一种hls流媒体的播放方法、系统及存储介质 |
-
2019
- 2019-10-23 CN CN201911014168.7A patent/CN110798714B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103581764A (zh) * | 2012-07-24 | 2014-02-12 | 武汉网幂科技有限公司 | 适于hls视频文件下载存储方法及hls视频文件播放系统 |
US20170171568A1 (en) * | 2015-12-14 | 2017-06-15 | Le Holdings (Beijing) Co., Ltd. | Method and device for processing live video |
CN106791986A (zh) * | 2017-01-10 | 2017-05-31 | 环球智达科技(北京)有限公司 | 一种hls直播索引列表加密防盗链系统及方法 |
CN107734284A (zh) * | 2017-09-18 | 2018-02-23 | 深圳市麦斯杰网络有限公司 | 媒体会话建立方法、装置及计算机可读存储介质 |
US20190098344A1 (en) * | 2017-09-25 | 2019-03-28 | Pluto Inc. | Methods and systems for determining a video player playback position |
CN109874028A (zh) * | 2017-12-01 | 2019-06-11 | 深圳市雷鸟信息科技有限公司 | 一种hls流媒体的播放方法、系统及存储介质 |
CN108111876A (zh) * | 2017-12-21 | 2018-06-01 | 北京四达时代软件技术股份有限公司 | 一种局域网流媒体视频内容安全保护方法、终端及服务器 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114501069A (zh) * | 2020-11-13 | 2022-05-13 | 北京新氧科技有限公司 | 基于hls的多媒体播放方法、系统、设备及存储介质 |
CN113259720A (zh) * | 2021-06-15 | 2021-08-13 | 杭州当贝网络科技有限公司 | 基于hls协议的视频加密方法和系统 |
CN114007106A (zh) * | 2021-12-15 | 2022-02-01 | 创盛视联数码科技(北京)有限公司 | 一种h5视频加密播放方法 |
CN114007106B (zh) * | 2021-12-15 | 2023-11-10 | 创盛视联数码科技(北京)有限公司 | 一种h5视频加密播放方法 |
CN117241067A (zh) * | 2023-11-15 | 2023-12-15 | 华录出版传媒有限公司 | 一种基于指纹水印的视频安全调阅方法及系统 |
CN117241067B (zh) * | 2023-11-15 | 2024-02-09 | 华录出版传媒有限公司 | 一种基于指纹水印的视频安全调阅方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110798714B (zh) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110798714B (zh) | 一种基于hls的本地视频播放系统及播放方法 | |
JP5730786B2 (ja) | 1ファイルにおける複数のコンテンツ保護システム | |
EP3055805B1 (en) | System and method for signaling and verifying url signatures for both url authentication and url-based content access authorization in adaptive streaming | |
US9223988B1 (en) | Extending browser functionality with dynamic on-the-fly downloading of untrusted browser components | |
US20160063223A1 (en) | Distributing protected content | |
Zou et al. | Phosphor: A cloud based DRM scheme with sim card | |
JP2017073801A (ja) | コンテンツ転送および配信におけるコンテンツ暗号化および権利管理のシグナリングおよびハンドリング | |
US8473740B2 (en) | Method and system for secured management of online XML document services through structure-preserving asymmetric encryption | |
US20020077985A1 (en) | Controlling and managing digital assets | |
JP2015181010A (ja) | インターネットサイトにアップロードされるマルチメディアにおけるユーザプライバシを保護するシステム及び方法 | |
US8595492B2 (en) | On-demand protection and authorization of playback of media assets | |
US20170171166A1 (en) | Anti-hotlinking method and electronic device | |
US20160182466A1 (en) | TransDRM for Streaming Media | |
CN106375834A (zh) | 一种基于iOS操作系统的在线加密切片视频离线播放方法及装置 | |
CN107306254B (zh) | 基于双层加密的数字版权保护方法及系统 | |
Wang et al. | CS-DRM: a cloud-based SIM DRM scheme for mobile internet | |
TW201317823A (zh) | 一種雲端安全儲存系統 | |
CN109040087B (zh) | 一种文件加、解密方法及装置 | |
CN110008654B (zh) | 电子文件处理方法和装置 | |
JP5350021B2 (ja) | ファイル生成装置、ファイル再生装置およびコンピュータプログラム | |
JP6013233B2 (ja) | コンテンツ配信システム、装置及びプログラム | |
CN114501069A (zh) | 基于hls的多媒体播放方法、系统、设备及存储介质 | |
KR20080035875A (ko) | 프리뷰 컨텐츠에 대한 보안화된 제공 시스템 및 방법 | |
CN115225934B (zh) | 视频播放方法、系统、电子设备以及存储介质 | |
JP2004139170A (ja) | 電子メールシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |