如何将自定义Java模块加载到Wowza流引擎中?

时间:2018-10-17 19:24:43

标签: java ffmpeg video-streaming rtmp wowza

我已逐步按照以下教程进行操作,但是,由于在Wowza Streaming Engine中看不到任何与getLogger调用相关的日志条目,因此我创建的模块似乎无法加载或执行。更具体地说,我创建了一个包含新模块的新Wowza项目(请参见下面的代码)。 Eclipse然后在安装目录的lib文件夹中创建了一个jar文件。我已将该模块添加到流服务器上的实时应用程序中。我还编辑了Application.xml文件以包括新模块。

为了希望运行我编写的模块,我正在使用ffmpeg(根据文档here)将mp4文件流式传输到流式传输引擎(通过实时应用程序),我可以在测试播放器中看到该文件。 。我的理解是,这将触发模块中的至少一个事件侦听器。但是,日志中似乎没有任何内容。我可以看到的与流相关的唯一条目如下所示。

我已经尝试调试问题一段时间了,因此,对于可能解决该问题的任何建议,我将不胜感激。

https://www.wowza.com/docs/How-to-extend-Wowza-Streaming-Engine-using-Java

public class GCStreamModule extends ModuleBase {

    public void onAppStart(IApplicationInstance appInstance) {
        String fullname = appInstance.getApplication().getName() + "/" + appInstance.getName();
        getLogger().info("onAppStart: " + fullname);
    }

    public void onAppStop(IApplicationInstance appInstance) {
        String fullname = appInstance.getApplication().getName() + "/" + appInstance.getName();
        getLogger().info("onAppStop: " + fullname);
    }

    public void onConnect(IClient client, RequestFunction function, AMFDataList params) {
        getLogger().info("onConnect: " + client.getClientId());
    }

    public void onConnectAccept(IClient client) {
        getLogger().info("onConnectAccept: " + client.getClientId());
    }

    public void onConnectReject(IClient client) {
        getLogger().info("onConnectReject: " + client.getClientId());
    }

    public void onDisconnect(IClient client) {
       getLogger().info("onDisconnect: " + client.getClientId());
    }

    public void onStreamCreate(IMediaStream stream) {
        getLogger().info("onStreamConnect");
    }

    public void onMediaStreamCreate(IMediaStream stream){
        getLogger().info("onMediaStreamCreate: " + stream.getSrc());
    }

}

Screenshot1 Screenshot2

1 个答案:

答案 0 :(得分:0)

您需要:

  1. 使用Wowza IDE为您的模块构建jar
  2. 将其复制到Wowza SE lib文件夹(在服务器上)
  3. 将其添加到部分
  4. 重新启动应用程序或Wowza SE,以使新模块从新库中加载

这是Application.xml中的示例模块部分,用于从lib / videowhisper.jar加载示例模块:

<Modules>
        <Module>
            <Name>base</Name>
            <Description>Base</Description>
            <Class>com.wowza.wms.module.ModuleCore</Class>
        </Module>
        <Module>
            <Name>logging</Name>
            <Description>Client Logging</Description>
            <Class>com.wowza.wms.module.ModuleClientLogging</Class>
        </Module>
        <Module>
            <Name>flvplayback</Name>
            <Description>FLVPlayback</Description>
            <Class>com.wowza.wms.module.ModuleFLVPlayback</Class>
        </Module>
        <Module>
            <Name>VideoWhisper</Name>
            <Description>VideoWhisper rtmp server side.</Description>
            <Class>com.videowhisper.wms.module.VideoWhisper</Class>
        </Module>
    </Modules>