[hls]m3u8视频如何处理成加密?

作者:深蓝加菲
链接:https://www.zhihu.com/question/20697986/answer/128433075
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
 

HLS的加密 , 这个有两种方式: 
1. 常见的一种是防盗链(严格来讲这不属于加密) , 也就是说给 m3u8 和 ts 文件的url动态生成一个 token , 比如这个:
http://www.cuplayer.com/m3u8/hunan/desc.m3u8?stream_id=hunan
这个url是随着很多参数动态变化的,比如时间,用户id、ip地址,内容id , 导致你无法使用这个url盗链,这种方式可以防止其他网站直接使用你的url来观看或者一般用户的下载。

而ts文件的url 也需要加请求token , 会变化成类似 http://server/file.ts?token=xxxx 的方式, 这样的话, ts文件的磁盘存储位置不用变化,但是url是可以变化的(可以用query string方式,也可以用 url rewrite 方式), 注意因为url是m3u8生成的,意味着m3u8文件是动态生成而并非静态文件

关于CDN缓存的问题, 首先m3u8文件肯定不能缓存, 否则ts分片的动态url怎么办?
然后动态url的 ts分片CDN缺省是肯定不缓存的,但是可以稍微定制一下让CDN忽略URL中的token部分。很多CDN都有自己的防盗链方案。

2. DRM加密。防盗链的方式是一种一般性的保护, 假如你想完全保护你的内容,必须给ts内容加密, m3u8有这个tag: #EXT-X-KEY , 一般来说会提供一个url获取加密key, 然后对ts片段解密来播放文件

演示:http://www.cuplayer.com/cu/Encrypt/Polyv.html

你可能感兴趣的:(直播&互动直播)