0

我已经下载了 LiveStreamRecord 库,并尝试使用该库给出的示例,它工作正常。现在我想做的是,我想使用 web 服务开始录制特定的流。

我已经编写了 wowza 网络服务,除了录音之外它工作正常。当我输入以下代码开始录制特定流时,它会抛出 NULL POINTER EXCEPTION。代码片段如下所示。请让我知道如何克服这个问题。

代码 :

String streamname="12";
ModuleLiveStreamRecord lsr=new ModuleLiveStreamRecord();
lsr.recordStream(streamname, 1, true, "", true, true, true);

得到的错误。

ERROR server comment - invoke(onStreamCreate): java.lang.NullPointerException: com.wowza.wms.plugin.livestreamrecord.ModuleLiveStreamRecord.recordStream(ModuleLiveStreamRecord.java:28)
java.lang.NullPointerException
    at com.wowza.wms.plugin.livestreamrecord.ModuleLiveStreamRecord.recordStream(ModuleLiveStreamRecord.java:28)
    at com.media.modules.OnlineVideoStream.onStreamCreate(OnlineVideoStream.java:128)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.wowza.wms.module.ModuleFunction.invoke(Unknown Source)
    at com.wowza.wms.module.ModuleFunctions.a(Unknown Source)
    at com.wowza.wms.module.ModuleFunctions.onStreamCreate(Unknown Source)
    at com.wowza.wms.stream.MediaStreamMap.getStream(Unknown Source)
    at com.wowza.wms.module.ModuleCore.createStream(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.wowza.wms.module.ModuleFunction.invoke(Unknown Source)
    at com.wowza.wms.module.ModuleFunctions.invoke(Unknown Source)
    at com.wowza.wms.request.RequestProcessFunctions.processFunctions(Unknown Source)
    at com.wowza.wms.client.ClientWorker.processNextReq(Unknown Source)
    at com.wowza.wms.request.RTMPRequestAdapter.service(Unknown Source)
    at com.wowza.wms.server.ServerHandler.a(Unknown Source)
    at com.wowza.wms.server.ServerHandler.a(Unknown Source)
    at com.wowza.wms.server.ServerHandler.messageReceived(Unknown Source)
    at com.wowza.wms.server.ServerHandlerThreadedSession.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

我试图弄清楚这个问题两天,但找不到哪里出了问题。但 Flash 示例运行良好,没有任何错误。

如果我使用了错误的库,请向我推荐用于此类操作的正确代码示例。

谢谢。

4

2 回答 2

0

我不确定“使用网络服务开始录制特定流”是什么意思。使用此处的内置 http 提供程序http://www.wowza.com/forums/content.php?123将允许您向 Wowza 服务器发出发布请求以开始和停止录制。如果你想创建自己的记录特定流的 Wowza 模块,你需要参考 wms-plugin-integrationrecord.jar。下面是一个例子:

LiveStreamRecorderMP4 recorder = new LiveStreamRecorderMP4();
 recorder.setRecordData(true);
 // Set to true if you want to version the previous file rather than overwrite it
 recorder.setVersionFile(true);
 // If recording only audio set this to false so the recording starts immediately
 recorder.setStartOnKeyFrame(true);
 boolean append = false;    
 //stream is a valid IMediaStream retrieved from Wowza API, outputPath a string 
 recorder.startRecording(stream, outputPath, append);
于 2012-09-19T20:51:27.850 回答
0

从这里下载模块 v3 http://www.wowza.com/forums/content.php?123。然后请阅读 readme.html,大部分 readme.html 包含不必要的信息,但这个自述文件不同,相信我 :)。此外,您无需编辑 java 并重新 jar 并将其复制并粘贴到 wowza 的 lib 文件夹中。如果您下载集合插件@wowza,它包括每个模块{如果您不需要进行一些服装化}。无论你可以用它录制流,flash 应用程序都不会抛出任何 exc,而是单击立即保存流@flash,然后查看 wowza 服务器 cmd 行,你会看到错误 count find method 或其他 exc。

于 2012-09-27T07:17:13.443 回答