Как загрузить пользовательский Java-модуль в Wowza Streaming Engine? - PullRequest
0 голосов
/ 17 октября 2018

Я следовал приведенному ниже учебному пособию шаг за шагом, однако созданный мною модуль, похоже, не загружается и не выполняется, так как я не вижу записей журнала, относящихся к вызовам getLogger в Wowza Streaming Engine.В частности, я создал новый проект Wowza, содержащий новый модуль (см. Код ниже).Затем Eclipse создал файл jar в папке lib каталога установки.Я добавил модуль в живое приложение на потоковом сервере.Я также отредактировал файл Application.xml, включив в него новый модуль.

Чтобы, надеюсь, запустить модуль, который я написал, я транслирую файл mp4 с помощью ffmpeg (согласно документации здесь ) к потоковому движку (через живое приложение), который я вижу в тестовых плеерах.Насколько я понимаю, это вызовет хотя бы одного из слушателей событий в модуле.Тем не менее, ничего не появляется в журналах.Единственные записи, связанные с потоком, который я вижу, показаны ниже.

Я уже давно пытаюсь отладить то, что идет не так, поэтому буду признателен за любые предложения о том, что может решить проблему.

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 голосов
/ 27 октября 2018

Вам необходимо:

  1. собрать jar-файл для вашего модуля с помощью Wowza IDE
  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>
...