其次,你需要考虑如何监测直播流的中断和恢复,只有实现监测,你才能知道什么时候去切换这个流。下面的ModuleLoopUntilLive模块已经为您实现了这个监测功能。
ModuleLoopUntilLive模块可以用来检测到直播信号的中断和恢复,在信号中断时,它会切换到你创建的这个虚拟直播流,在信号恢复时,切换回直播流信号。
本文主要介绍ModuleLoopUntilLive模块的使用方式。但注意:它适用于Wowza Streaming Engine 4.0.0及以上版本。
目录
准备虚拟直播流
安装
配置
参数
准备虚拟直播流
首先,你至少要在Wowza服务端创建一个虚拟直播流,并配置到一个Wowza Streaming Engine 直播应用上。(跟你的真正的直播流在一个应用下,比如都在live下)。 有很多方法可以实现这个功能,建议你参考如何为Wowza Streaming Engine 的直播业务配置类似电视台的节目编排表(StreamPublisher)。
当然,你也可以用Wowza 服务端的Streams API来创建虚拟直播流。请参考如何用Stream Java类创建一个虚拟直播流。
安装
- 下载wse-plugin-streampublisher.zip。
- 对下载后的ZIP文件进行解压缩,然后将lib/wse-plugin-streampublisher.jar拷贝到你的Wowza Streaming Engine 安装目录的lib下([install-dir]/lib)。
- 重启 Wowza Streaming Engine。
注意:这个ModuleLoopUntilLive 模块和 StreamPublisher模块都在这个下载包中。 StreamPublisher可以让你用一个server listener 或 应用模块来创建一个虚拟直播流的编排表,要了解更多,请参考如何为Wowza Streaming Engine 的直播业务配置类似电视台的节目编排表(StreamPublisher)。
配置
要启用这个模块,请在你的Wowza应用中添加以下的模块定义。
名字(Name) |
描述(Description) |
完整Java类包名 |
ModuleLoopUntilLive | 播放本地虚拟直播流,直到直播信号恢复 | com.wowza.wms.plugin.streampublisher.ModuleLoopUntilLive |
参数
在启用这个模块之后,你可以用下面的参数来调整这个模块的一些行为:
Path |
Name |
Type |
Value |
Notes |
/Root/Application | loopUntilLiveSourceStreams | String | myStream | 参考下面注意的说明。这是直播源流的列表,多个用逗号隔开(例如:myStream, myOtherStream)。(默认值:myStream) |
/Root/Application | loopUntilLiveOutputStreams | String | Stream1 | 参考下面注意的说明。 这是一个虚拟直播流的列表,多个用逗号隔开(例如:Stream1, Stream2)。(默认值:Stream1)。在测试本模块的功能,你要播放时流是这个参数配置的流。 |
/Root/Application | loopUntilLiveReloadEntirePlaylist | Boolean | true | (可选)如果Wowza服务端的虚拟直播流有多个节目,如果将这个参数设置为true将确保在切换前会重新加载一次虚拟直播流的节目编排表,这样就能切换这个最新节目编排表的下一个节目上。如果将这个参数设置为false,那么在切换前不会重新加载节目编排表(在对应的直播流开始发布时加载,后面不会更新),因此会切换到直播流开始发布的时间点所在的虚拟直播流的节目上。(默认值:true) |
/Root/Application | loopUntilLiveHandleMediaCasters | Boolean | true | (可选)如果直播流是一个MediaCaster流,你要谨慎设置这个参数确认在MediaCaster流处于Ready开始接收输入信号时切换回直播信号,这时,你要将这个参数设置为true。如果这个参数被设置为false,只有在MediaCaster流被创建时才能切换回来,在Mediacaster流被删除后切换回虚拟直播流(默认值:true) |
注意:
-
loopUntilLiveSourceStreams 和 loopUntilLiveOutputStreams 参数中的配置必须一一对应,即流的数量一样,第一个对应第一个,第二个对应第二个,以此类推。
- 在loopUntilLiveOutputStreams参数里面的是用于播放的虚拟直播流,在测试本模块的功能,你要播放时流也是这个参数配置的流。因为这个流是一直存在的,没有实际直播流进入时,就播放虚拟直播流自己的内容,有实际直播流进入时,就播放直播信号中的流
Stream Publisher 的配置
下面是一个Stream Publisher模块中SMIL文件的例子,里面定义了一个虚拟直播流Stream1。 (更对信息,请参考如何为Wowza Streaming Engine 的直播业务配置类似电视台的节目编排表(StreamPublisher)。) ,这个例子中,它将循环播放sample.mp4文件。 如果一直播流(myStream)被发布后,如果按本文的介绍配置了ModuleLoopUntilLive模块和上面的参数,就会切换回这个直播流。
<smil> <head> </head> <body> <stream name="Stream1"></stream> <playlist name="pl1" playOnStream="Stream1" repeat="true" scheduled="2009-12-11 16:00:00"> <video src="mp4:sample.mp4" start="0" length="20"/> </playlist> </body> </smil>