多协议、性能稳定、丰富API的流媒体服务器软件
如何在直播源信号中断时循环播放本地的虚拟直播流,一直到直播源信号恢复?
首先,你可以在Wowza服务端创建一个虚拟直播流(虚拟直播流通常来自一个mp4文件),用它来临时代替信号中断的直播流,直到直播信号恢复。

其次,你需要考虑如何监测直播流的中断和恢复,只有实现监测,你才能知道什么时候去切换这个流。下面的ModuleLoopUntilLive模块已经为您实现了这个监测功能。

ModuleLoopUntilLive模块可以用来检测到直播信号的中断和恢复,在信号中断时,它会切换到你创建的这个虚拟直播流,在信号恢复时,切换回直播流信号。

本文主要介绍ModuleLoopUntilLive模块的使用方式。但注意:它适用于Wowza Streaming Engine 4.0.0及以上版本。

目录


准备虚拟直播流

安装

配置

参数


准备虚拟直播流



首先,你至少要在Wowza服务端创建一个虚拟直播流,并配置到一个Wowza Streaming Engine 直播应用上。(跟你的真正的直播流在一个应用下,比如都在live下)。 有很多方法可以实现这个功能,建议你参考如何为Wowza Streaming Engine 的直播业务配置类似电视台的节目编排表(StreamPublisher)

当然,你也可以用Wowza 服务端的Streams API来创建虚拟直播流。请参考如何用Stream Java类创建一个虚拟直播流

安装


  1. 下载wse-plugin-streampublisher.zip

  2. 对下载后的ZIP文件进行解压缩,然后将lib/wse-plugin-streampublisher.jar拷贝到你的Wowza Streaming Engine 安装目录的lib下([install-dir]/lib)。

  3. 重启 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)

注意:
  • loopUntilLiveSourceStreamsloopUntilLiveOutputStreams 参数中的配置必须一一对应,即流的数量一样,第一个对应第一个,第二个对应第二个,以此类推。

  • 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>