[wowza]wowza下http协议防盗链DRM方案
具体实施步骤如下所示:
1、使用DRM方案用于控制对直播和点播视频的URL链接的加密工作。其密钥放置在[安装dir)/密钥目录
2、这次采用的是aes-128的加密方式直播或点播内容通过密钥文件被加密。密钥文件是一个以流名字命名的txt文件
3、直播流demo如下所示:
[install-dir]/keys/myStream.key
点播流demo:
[install-dir]/keys/sample.mp4.key
4、对于可用的加密算法,这个key文件内必须包含如下内容:
cupertinostreaming-aes128-method: AES-128
cupertinostreaming-aes128-url: http://mycompanykeyserver.com/authenticate.aspx
cupertinostreaming-aes128-key: 0x123456789ABCDEF123456789ABCDEF12
cupertinostreaming-aes128-iv: 0xFEDCBA9876543210FEDCBA9876543210
参数解释:
cupertinostreaming-aes128-method:加密算法
cupertinostreaming-aes128-url: 该参数被播放器用来检索解密密钥
cupertinostreaming-aes128-key:这个十六进制编码,128位内容加密密钥
cupertinostreaming-aes128-iv:十六进制编码的初始化向量用于加密。如果省略,chunk ID作为每个苹果直播流规范并将其用作初始化向量苹果流通过服务器端的api使用密钥数据传输保护视频流不被盗取。
5、首先在xml文件内打开苹果流加密api属性
在最后的properties里面添加(application.xml)
<Property>
<Name>cupertinoEncryptionAPIBased</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
6、其次当添加了服务器端模块,苹果流在被调用时将随机创建加密的流地址
调用方法:
public void onHTTPCupertinoEncryptionKeyVODChunk(HTTPStreamerSessionCupertino httpSession, IHTTPStreamerCupertinoIndex index, CupertinoEncInfo encInfo, long chunkId, int mode)
{
}
public void onHTTPCupertinoEncryptionKeyLiveChunk(ILiveStreamPacketizer liveStreamPacketizer, String streamName, CupertinoEncInfo encInfo, long chunkId, int mode)
{
}
函数解释:
encInfo变量保存了当前的加密信息对于一个给定的流和用于控制流加密。它还用于根据需要旋转钥匙,如果支持的加密方法,您正在使用。下面的代码片段显示如何设置加密的每个加密方法:
AES-128 Encryption
示例代码:
Code:
encInfo.setEncMethod(CupertinoEncInfo.METHOD_AES_128);
encInfo.setEncUrl("http://mycompanykeyserver.com/authenticate.aspx");
encInfo.setEncKeyBytes(BufferUtils.decodeHexString("123456789ABCDEF123456789ABCDEF12"));
encInfo.setEncIVBytes(BufferUtils.decodeHexString("FEDCBA9876543210FEDCBA9876543210"));
7、密钥传输配置
a) 从官网下载wms-plugin-collection.zip压缩包并解压后将插件collection.jar上传到owza媒体服务器的安装文件夹[安装目录] / lib目录,然后重新启动服务器;
b) 修改流媒体服务器的配置文件Application.xml,在配置文件的<Properties> 容器内添加如下内容
- <Property>
- <Name>cupertinoEncryptionBaseURL</Name>
- <Value>http://[wowza-ip-address]:1935</Value>
- </Property>
- <Property>
- <Name>cupertinoEncryptionSharedSecret</Name>
- <Value>[enckeysharedsecret]</Value>
- </Property>
- <Property>
- <Name>cupertinoEncryptionLiveRepeaterSharedSecret</Name>
- <Value>[mysharedsecret]</Value>
- </Property>
热门文章推荐
- [rtmp]流媒体协议RTMP,RTSP与HLS有什么不同?
- [Wowza]流媒体服务器Wowza Media Server的安装与启动教程
- [wowza]wowza推流发布和播放(推流RTMP流)介绍
- [wowza]Wowza Streaming Engine 4的安装与配置教程
- [wowza]Wowza Media Server 安装教程(含windows/Linux平台)
- [wowza]RTP直播流推送到另一个远端的服务器
- [AS3]Wowza Media Server服务器
- [wowza]wowza推RTSP流要求用户名密码