·您当前的位置:首页 > 技术教程 > Wowza教程 >

[wowza]FMS与wowza中使用RTMPE加密协议

时间:2015-12-30 09:14526294412
遇到一个问题,FMS与WOWZA中如何使用RTMPE加密协议。[wowza]FMS与wowza中使用RTMPE加密协议

  遇到一个问题,FMS与WOWZA中如何使用RTMPE加密协议。

  Wowza作为一个Media Delivery System,它要起很重要的作用。一直在摸索如何保证文件不会被下载。RTMP协议肯定是不行的。然后我就把目光放到了RTMP协议的众多变体上。
首 先是RTMPT协议,用HTTP协议封装的RTMP协议。不知道怎么回事,服务器似乎不能很好的接受RTMPT协议,不知道是设置问题还是别的什么。而且 在Wowza官方论坛上,Wowza的开发者也不建议使用RTMPT协议,因为它需要500ms轮询一次,而且服务器的CPU开销(协议封装需要消耗 CPU)和带宽开销(封装成HTTP协议时需要额外内容)都比较大,唯一的优点就只有可以突破带有协议扫描的防火墙。
然后就是RTMPS和RTMPE。前者是用SSL协议加密的,后者是Adobe自己的128位加密算法。Wowza和Adobe都推荐后者,因为使用简单无需设置。而RTMPS需要设置证书等比较复杂的设置,而且安全性据说也不比RTMPE协议高。
最后就是RTMPTS和RTMPTE协议,看名字也知道是怎么回事了。

最后我选择了RTMPE协议,简单就是美。

接 下来的问题是如何屏蔽RTMP协议。不像Red5和Adobe Flash Media Server那样可以通过修改端口来简单的屏蔽,Wowza的RTMP,RTMPE,RTMPT协议是捆绑在一个端口上的。因为这个问题我甚至一度放弃了 Wowza而改用Adobe Flash Media Interactive Server,不过怎么都读取不到内容。
仔细研究了一下Wowza的论坛,发现原来官方发布过一个源码可以只使用RTMPE,RTMPS,RTMPTS这一类加密的协议。然后自然就是下载Wowza IDE,建了个工程,把代码粘贴进去,保存后再把自动生成的jar文件复制到服务器上。然后把application.xml文件修改一下,大功告成!
这样设置后如果尝试使用RTMP协议,会提示拒绝连接,要求加密。而且现有的所有下载工具都不能下载RTMPE协议。连网址变换都可以不用做了。
不得不赞叹一下Wowza的接口,确实很强大,而且是Java的。虽然FMIS也有接口,不过ActionScript语言毕竟是门冷门语言。

最后附上代码:

  1. package com.wowza.wms.plugin.forcertmpe; 
  2. import com.wowza.wms.amf.*; 
  3. import com.wowza.wms.client.*; 
  4. import com.wowza.wms.module.*; 
  5. import com.wowza.wms.request.*; 
  6. public class RequireSecure extends ModuleBase { 
  7. public void onConnect(IClient client, RequestFunction function, 
  8. AMFDataList params) { 
  9. if (!client.isEncrypted()) 
  10. client.rejectConnection("Secure connection required."); 
  11. getLogger().info("ModuleRequireSecureConnection.onConnect: rejectConnection: clientId:"+client.getClientId()); 

这里大赞一下Wowza IDE,基于Eclipse 3.3,启动速度比官方Eclipse3.4要快不少。

FMS,也可以应用RTMPE协议,直接禁用FMS的RTMP协议,启用RTMPE协议,即可。

OK。完成,那么,如何调用RTMPE协议的视频呢?经测,极酷阳光播放器也是支持rtmpe协议的,用法:

很简单,只须改成rtmpe协议服务器地址,就可以了,如下。

  1. <script type="text/javascript" src="/player/images/swfobject.js"></script>  
  2. <div class="video" id="CuPlayer"> <b> <img src="/player/images/loading.gif" /> 网页视频播放器加载中,请稍后...</b> </div>  
  3. <script type="text/javascript">  
  4. var so = new SWFObject("/player/player.swf","ply","980","460","9","#000000");  
  5. so.addParam("allowfullscreen","true");  
  6. so.addParam("allowscriptaccess","always");  
  7. so.addParam("wmode","opaque");  
  8. so.addParam("quality","high");  
  9. so.addParam("salign","lt");  
  10. <!-- HTML代码参数/Begin -->  
  11. so.addVariable("JcScpServer","rtmpe://www.cuplauyer.com/vod"); //注意:这里用的是rtmpe地址  
  12. so.addVariable("JcScpVideoPath","mp4:test.mp4"); //wowza视频文件地址  
  13. so.addVariable("JcScpImg","/player/Images/start.jpg");  
  14. so.addVariable("JcScpFile","/player/CuSunV2Set.xml");  
  15. <!-- HTML代码参数/End -->  
  16. so.write("CuPlayer");  
  17. </script>  

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器