七牛---音视频切片关于用户认证

使用七牛过程中,很多用户有这样的需求,使用我们的音视频链接播放过程中,如果将这个播放链接复制给别人使用,别人得到这个链接之后是可以进行下载的,所以很多用户希望可以控制视频的播放权限,这个时候就可以使用hls加密的功能对秘钥的URL做cookie验证等方法来对用户做认证。

具体的使用说明可以参考七牛的官方文档:
http://developer.qiniu.com/docs/v6/api/reference/fop/av/segtime.html

下面以一个具体的实例来实现这个功能:
1.首先我们必须有以下2个参数:

/hlsKey/<HLSKey> 
    base64_urlsafe编码或者AES128加密视频的秘钥,必须是16个字
    节
/hlsKeyUrl/<HLSKeyUrl>  
    指定了秘钥放置的url,经过base64_urlsafe编码,这是生成m3u8 
    PlayList会使用到的

2.这个例子中使用到的参数配置如下:
hlsKey为0123456789123456的base64编码MDEyMzQ1Njc4OTEyMzQ1Ng==
将0123456789123456保存为xxx.key(此处为qiniutest.key)的文件保存在七牛的空间里面,主要是为了得到hlsKeyUrl参数,这里的url为:
http://7xlekb.com2.z0.glb.qiniucdn.com/qiniutest.key
base64编码后为:
aHR0cDovLzd4bGVrYi5jb20yLnowLmdsYi5xaW5pdWNkbi5jb20vcWluaXV0ZXN0LmtleQ==

所以hlsKey参数为:
/hlsKey/MDEyMzQ1Njc4OTEyMzQ1Ng==
hlsKeyUrl参数为:
/hlsKeyUrl/aHR0cDovLzd4bGVrYi5jb20yLnowLmdsYi5xaW5pdWNkbi5jb20vcWluaXV0ZXN0LmtleQ==

转码参数如下:
avthumb/m3u8/vb/640k/hlsKey/MDEyMzQ1Njc4OTEyMzQ1Ng==/hlsKeyUrl/aHR0cDovLzd4bGVrYi5jb20yLnowLmdsYi5xaW5pdWNkbi5jb20vcWluaXV0ZXN0LmtleQ==

此时得到了转码后生成的URL放到支持播放m3u8的播放器里面就可以访问到了,用文本打开m3u8列表是有加密的URL的,这个时候如果单独访问其中的ts文件是访问不了的。

#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:16
#EXT-X-KEY:METHOD=AES-128,URI="http://7xlekb.com2.z0.glb.qiniucdn.com/qiniutest.key",IV=0x7c054a893fe6bcba1671256e20218f76
#EXTINF:10.080000,
http://7xl4cg.com2.z0.glb.qiniucdn.com/vz4Ul3P7Kyr-Hz0SLo975fEFUPg=/ljbHNvjRzF-Euc3-lMtymYt_XgwK/000000.ts
···
···

因为我们本例中将加密的URL放在七牛的公开空间里面,所以是没有限制的,什么用户都可以访问到,但用户完全可以将这个URL放到自己搭建的服务器上,比如,控制访问到这个URL必须输入一个秘钥才可以访问到,又或者做cookie认证控制必须注册登录的用户才有权限访问到这个URL。

3.至于文档里面提到的hlsKeyType参数,这个参数是指定了传送秘钥的方式,可以参考下,具体怎样使用可以参考文档里面的链接:

/hlsKeyType/<HLSKeyType> 
    指定了传送秘钥的方式:
    不指定或者指定为0,则仅仅是以base64_urlsafe编码的方式传送
    指定为1.x(1.0, 1.1, …),以RSA的OAEP加密方式,再以编码传送         
    秘钥,x表示秘钥的版本

你可能感兴趣的:(七牛)