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

来源:互联网 发布:淘宝童装便宜货源 编辑:程序博客网 时间:2024/06/06 09:57

使用七牛过程中,很多用户有这样的需求,使用我们的音视频链接播放过程中,如果将这个播放链接复制给别人使用,别人得到这个链接之后是可以进行下载的,所以很多用户希望可以控制视频的播放权限,这个时候就可以使用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表示秘钥的版本
2 0
原创粉丝点击