多协议、性能稳定、丰富API的流媒体服务器软件
Wowza Streaming Engine 4的可选功能模块
这篇文章介绍了一些Wowza公司已经开发完成的,可以直接用于Wowza Streaming Engine 4的可选功能模块。(不需要你用Eclipse IDE 再做任何开发。) 了解更多Wowza产品细节

注意:

  • Wowza Streaming Engine Module Collection 中的模块都是针对Wowza Streaming Engine™ 4.0 及以上版本设计的,它们大部分都是可以向后兼容的; 然而,有部分模块是不支持在Wowza Media Server® 软件上运行的。不过,你不用担心,因为当一个模块只能在某一个版本之上的Wowza server 上运行时,它会在文档中注明的。

  • 在这些模块的下载包中包含了源代码,你可以了解到它是如何实现的,你可以根据需要扩展它们。

注意: 当前的模块列表的版本是12557。在模块集合的下载包的version.txt文件中可以看到一些变更的细节。


在Wowza Streaming Engine中安装这些可选模块的步骤:

  1. 1. 下载模块集合包: WowzaServerAddOnCollection_4.0.zip.

  2. 2. 解压缩后,将包中的/lib/wms-plugin-collection.jar拷贝到Wowza Streaming Engine的/lib 目录下([install-dir]/lib

  3. 3. 要对其中某一个模块进行配置时,请参考下面的模块列表

  4. 4. 重启Wowza Streaming Engine
模块名称 模块的功能介绍
MediaCacheLocalFirstRandomAccessReader 这个IRandomAccessReader接口的实现是MediaCache功能的一部分,它首先会在应用的内容存储路径下查找内容,如果没有找到,再从远端的Media Cache的Source中读取内容。这使得应用的本地内容可以在它从远端服务器传送来之前就可以对外提供服务。
MediaCachePreload 这个 server listener 可以使得内容被第一次播放前就从被加载到Media Cache中。一个典型的例子是,你可以将一些流行的受欢迎的内容先在Media Cache中初始化,以避免第一次播放时的延时。
ModuleAddAudioTrack 对没有音频轨道的直播流添加一个音频轨道
ModuleClientBWCheck 用一个Flash客户端来测试播放器到Wowza之间的带宽。
ModuleCreateSnapshot 针对直播流,对图像进行截图,并输出为图像文件
ModuleCupertinoLiveAttachPicture 对只有音频的输出到iOS终端的直播流,加入一个背景图像,请阅读App Store compliance technique.
ModuleCupertinoLiveAttachPicture2
ModuleCupertinoVODAttachPicture
对只有音频的直播流或一个VOD点播流,加入一个背景图像。
ModuleDvrRecorderControl 配置在一个Wowza直播流应用中,哪一个流将被nDVR功能录制。你可以将它用于Wowza Transcoder 插件AddOn or any time where you don't want all streams to be recorded.
ModuleFixStreamPath 当有些vod内容在子目录下时,有些Flash播放器的RTMP URL格式错误的处理name don't separate them correctly when content is stored in a subfolder of an application's content location.
ModuleGetConnectionCount 获得一个Wowza服务器、一个应用或一个应用实例上的当前RTMP连接数
ModuleHotlinkDenial 对采用Flash播放器访问Wowza应用的网站,进行域名校验,不在这个域名范围内的禁止访问
ModuleLimitPublishedStreamBandwidth 对进入Wowza的直播输入流,对占用带宽进行监测,超过配置的阀值时,断开连接
ModuleLimitStreamViewers 对并发访问一个Wowza 流的用户总量进行控制,限制在某一个最大值内
ModuleLoadBalancerEdgeLimitConnections 在采用Wowza自带的负载均衡功能,如果某个边缘wowza服务器已经达到了最大用户负载,则新到达负载均衡器(由其中一台wowza服务器实现)的请求将不会在被重定向到这个边缘服务器上
ModuleLogViewerCounts 每隔10秒钟,将Wowza服务器中每一个流当前所具有的播放连接总数以及一些元数据信息记录在日志中
ModuleLoopUntilLive 可以在服务端配置一个媒体播放列表,当某一个输入的直播流不可用时,就用这个播放列表中的内容替代播出。
ModuleMP4AudioChannelSelector 如果一个mp4文件是多声道的,可以选择其中一个声道,这个模块采用了IMediaReaderActionNotify listener 接口,你可以将audioindex参数作为留名字的组成部分,去从一个MP4文件中选择一个音频轨道。
ModuleOnConnectAuthenticate 对RTMP播放请求做用户验证,用户信息可以保存在一个文件中,在发起播放请求时,需要在NetConnection.connect 方法中传入用户令牌。
ModuleOnConnectAuthenticate2 对RTMP播放请求做用户验证,用户信息可以保存在一个文件中,在发起播放请求时,需要在RTMP 播放URL中传入用户令牌。
ModulePacketizerControl 控制对哪些流进行http传输打包,可以用于转码前和转码后的任何流。
ModuleStreamControl 这个模块可以被用来进行直播流和播放列表的控制,通过它可以动态的从一个静态媒体文件或一个直播源创建、配置、启动一个直播流,以及向一个已有的直播流添加视频源。 这个模块采用了一个基于Flash的客户端工具来作为管理界面。
ModuleStreamWatchDog 对输入到wowza的实时流进行监控,当有新的输入流时,每隔10秒通知flash客户端,而Flash客户端可以被配置对这些消息进行回应,包括对输入流的状态监控以及对流的播放。
ModuleTimedDisconnect 一段时间后,断开播放器与Wowza之间的连接。
ModuleTranscoderControl 控制一个wowza应用中哪些流转码,哪些流不转码。
ModuleTranscoderTimedSnapshot 利用转码功能(因为转码前必然要解码),对输入流进行截图,每隔一定的时间就自动截图
ModuleVideoNameList 针对VOD服务,把wowza的content目录下的vod文件形成一个列表给客户端。
ServerListenerLoadAndLockAppInstances 在wowza服务启动后,就自动把某一个应用加载到内存,使其处于可用状态(如果不是这样,则第一个播放请求到达时,才会加载这个应用)
StreamPublisher 在wowza服务器上配置一个播放列表,按时间计划播出。

相对以前模块集合的变化



下面这些被删除的模块列表 已经从Wowza Streaming Engine 的模块集合中删掉了。它们要么是被Wowza Streaming Engine的核心功能所替代了,要么不再需要了。 但这些模块的相关技术资料依然被保留,我们把它当作一个参考即可。

如果你仍然需要这其中的某个模块,无论是因为你仍然在用Wowza Media Server软件还是因为你的业务流程中不允许你去使用Wowza Streaming Engine中的核心功能,你还是可以下载包含下面这些被删除模块的安装包: Download WowzaServerAddOnCollection.zip

已经被删除的模块列表


模块名称 模块的功能介绍
ModuleBlockDuplicateStreamNames 拒绝一个在线编码器向Wowza的一个应用实例发布一个重复的流。
ModuleCalculateBitrate 计算一个VOD流的码率。
ModuleEncryptionHandlerCupertinoStreaming 用一个Wowza内部的方法,对HLS协议的输出流进行AES-128算法加密(在HLS第5版的规范中已经做了详细约定,因此不需要这个模块了)
ModuleFCSubscribe 在服务端实现向CDN发送FCSubscribe 消息。(在Wowza Streaming Engine 的核心API中已经有这个功能了,因此不需要这个模块了)
ModuleLimitConnectionsToApplication 限制连接一个Wowza应用的连接总数(在Wowza Streaming Engine 中可以通过Maximum Connections进行设置,因此不需要这个模块了)
ModuleOverridePlayBlackListIP 建立一个IP地址黑名单,限制来自这些IP的客户端连接到Wowza (在Wowza Streaming Engien中已经有这个功能了)
ModuleOverridePlayRestrictIP 限定只能为某些IP的客户端提供流服务(在Wowza Streaming Engien中已经有这个功能了)
ModuleOverridePublishRestrictIP 限制只能接收从某些IP推送来的实时流。
ModuleRequireSecureConnection 使Wowza支持RTMPE、RTMPTE、或RTMPS安全连接。