首先 Wowza 是一个商业的流媒体服务器软件产品,它基于Java系统。从2014年以后这个产品已经改名为Wowza Streaming Engine 4,它是之前的Wowza Media Server 3.x的下一代版本。
Wowza Streaming Engine 4是由Wowza Media Systems LLC开发的,这个公司的总部位于美国科罗拉多州的金城市(Golden City),在加利福尼亚州的Rewood市也有分支机构。
北京联方信科信息技术有限责任公司是Wowza产品在大陆的代理商和技术服务商。
Wowza是一个标榜为"Any Screen Done Right®"流媒体软件公司。公司由David Stubenvoll 和 Charlie Good两人共同创建于2005年,当时他们注意到了流媒体服务器领域正需要一个颠覆性的产品来填补市场的空隙,于是他们开始了创业之旅。
公司强力的工业级Wowza 流媒体服务器软件初始版本发布于2007年,是一个针对当时Adobe Flash Media Server的低成本替代方案, 并被市场所快速接收。Wowza Media Server 2作为一个"H.264 everywhere" 服务器平台,随着在2009年的广泛应用, Wowza凭借为多种平台提供流媒体支持而超越了Flash,这些平台包括Apple iOS 设备(iPhone/iPad)、, Microsoft Silverlight, Apple QuickTime, Android, Blackberry 以及其他3GPP智能手机和平板电脑, 此外还包括IPTV/OTT 机顶盒以及客厅游戏机。
获奖的Wowza Media Server 3在2011年开始被应用,它作为下一代流媒体服务器软件,提供了可以面向任何电子屏幕的一个可扩展基础平台以及增值组件. Wowza Media Server 3 努力实现了一系列特色功能,比如速率自适应、时移、简单和低成本的数字版权保护等等。
2013年 Wowza Media Server 3.5已经开始应用, 它是具有良好的易用性和经济性,可通过IP网络将 高容量的音视频内容提供给桌面电脑、笔记本、移动终端(手机和平板) 或是IP机顶盒 。 提升了经济性 减低编码、存储和管理成本 无线广播电视 内容分发网络(CDN),以及其他富媒体企业节省成本,提升效率和简化工作流程。 今天,Wowza公司的软件产品已经售出超过12万个授权,并在全球150多个多家使用。
目前最新版本为Wowza Streaming Engine 4.3.x 。另外在
上有wowza 产品的介绍和详细中文技术资料。
北京联方信科信息技术有限责任公司是Wowza产品在大陆的代理商和技术服务商。
在
也有详细的Wowza产品资料
Wowza 作为一个Media Delivery System,它要起很重要的作用。
一直在摸索如何保证文件不会被下载。RTMP协议肯定是不行的,NetTransport, Orbit, Replay Media Catcher都可以下载这种协议的文件。然后我就把目光放到了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语言毕竟是门冷门语言。
最后附上代码:
package com.wowza.wms.plugin.forcertmpe;
import com.wowza.wms.amf.*;
import com.wowza.wms.client.*;
import com.wowza.wms.module.*;
import com.wowza.wms.request.*;
public class RequireSecure extends ModuleBase {
public void onConnect(IClient client, RequestFunction function,
AMFDataList params) {
if (!client.isEncrypted())
{
client.rejectConnection("Secure connection required.");
getLogger().info("ModuleRequireSecureConnection.onConnect: rejectConnection: clientId:"+client.getClientId());
}
}
}