c
视频在html页面中播放基本都是m3u8的格式,这种格式的特点是可以做多码率的适配,根据网络带宽,客户端会自动选择一个适合自己码率的文件进行播放,**视频流的流畅,它主要应用在移动设备上。而随着移动端用户越来越多再加上chrome即将不在支持flash,考虑到体验和兼容性以及后期长久的发展,对M3u8视频加密有很多好处。比如可以链接打开直接电脑手机观看,而不用安装任何插件,那怎么在方便的同时**安全性呢? 我们知道html5视频加密的担忧主要是因为浏览器的协议是公开的,加密后的视频要兼容不同的浏览器都能打开,在方便和安全的前提下,如果做到更好的平衡。那m3u8视频加密都有哪些方法可用呢? 1、 关于防录屏 1) 可通过水印的方式,对接现有的会员系统,把每个会员的信息都展示在水印中,如果出现录制等情况,可通过该学员信息追踪其账号,停止其使用或作为法律依据追究其责任。 2) 问答 在播放过程中让学生**回答问题,这个问题可自定义,比如和课程相关的,直到回答正确才能继续往下看,也能很好的防止录屏。 2、 限制网站和域名 这个是指加密后的视频只能在特定的网站和域名下播放,即使xia载下来也不能播放。 3、 对内容进行帧加密 点量的M3u8视频加密方案是帧加密,在这个的基础上对视频内容加密,每次只解密播放一定的帧数据,播放完成后就删除了,所以在安全性上会更高。 我们知道m3u8 文件其实是 HTTP Live Streaming(缩写为 HLS) 协议的部分内容, HLS 的工作原理是把整个流分成一个个小的基于 HTTP 的文件来xia载,每次只xia载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率xia载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会xia载一个包含元数据的 extended M3U (m3u8) playlist文件,用于寻找可用的媒体流。HLS 只请求基本的 HTTP 报文,与实时传输协议(RTP)不同,HLS 可以穿过任何允许 HTTP 数据通过的防火墙或者代理服务器。它也很*使用内容分发网络来传输媒体流。所以帧加密的方式,使得html5加密方案安全性更高。 这里介绍一个常用的视频加密方法选择性加密(Selective Algorithm)算法原理,有兴趣的可以多了解下。选择性 加密是基于信源特征的视频加密方法的主要方向,其中可分为以下几类: (1) 基本的选择性加密算法是基于视频 IPB帧结构的。这其 中较有代表性且较早提出的一种加密方法是仅仅加密I帧。然而, Agi and Gong 表明由于帧间的相关性和主要是由于P帧和B帧中的I-block没有加密,这种仅加密I帧的方法不能达 到一个令人满意的密级。这样,有人提出加密I帧的同时还应加 密PB帧中的 I块。但这样增大 了计算量,同时视频图像中的运动信息也没有被加密,保密性仍不够好。 于是,有人提出 利用提高视频序列中I帧频率的方法来 增加加密的内容从而提高密级。但这样很明显会增大加密的数据量,大大增加计算量,同时减小视频压缩率。 (2) 仅加密头信息的方法:MPEG、H26X序列都按一定结构组织图像数据。例如,图片组、图片(帧)、片组、片、宏块组、宏块等 ,都由一个头信息开始,后接图像数据。经编码后的视频数据,要按标准规定的特定结构排列组织,收方按相同 的标准结构解码,才能正确恢复原视频图像。 该算法的原理是对这些头信息数据加密,将其变成随 机序列,再与其它数据混合,使接收方在不知道密钥的情况下难以区分结构信息数据和视频信息数据,更难以知 道数据结构和数据的具体内容,难以按原数据结构解码接收到的视频编码数据,无法获得原图像,达到加密目的 。 该算法仅加密头信息,安全性较低。因为按照编码标 准,头信息具有固定的位置和内容,所以含信息量很小,加密的意义不大。只要能分辨出头信息和视频数据,就 可以恢复视频图像,并且一旦知道头信息,密钥和密码算法也很*破译。事实上,基于MPEG、H26x等标准的视频数据结构比较固定,视频数据本身又有很强的特征,这种加密方式比较 *破译。 该算法不降低压缩率。增加计算量很小,适用于各种 标准视频或图像压缩编码数据。 经过该算法加密的视频编码数据没有通用的数据结构 信息,全部为随机序列。为便于合法收方接收,需加入加密同步信息,或保留原来部分同步信息,只加密其它结 构信息。如果加密结构信息误码,合法收方恢复视频图像也很困难。