7

我正在尝试使用带有 nodejs 的 Kurento 媒体服务器录制视频。我一直在这里运行 hello-world 示例。我将 recorderEndpoint 连接到 webrtcEndpoint 并能够让整个事情运行,但我在服务器上收到此错误消息:

0:37:59.122469563 7003 0xaf5500 错误 KurentoMediaPipelineImpl /build/buildd/kms-core-5.0.3/src/server/implementation/objects/MediaPipelineImpl.cpp:32:busMessage:总线错误:错误消息:0x7f11c0330ea0,时间 99: 99:99.999999999, seq-num 514729, 元素 'kmsrecorderendpoint10', GstMessageError, gerror=(GError)NULL, debug=(string)"/build/buildd/kms-elements-5.0.3/src/gst-plugins/kmsrecorderendpoint。 c(876):\ sink_required_cb\ ():\ /GstPipeline:pipeline8/KmsRecorderEndpoint:kmsrecorderendpoint10";

我认为它的录制不正确,但我不确定出了什么问题。我能够运行原始示例,因此服务器很好。

代码在这里:

https://gist.github.com/poliu2s/2cd3fc2a5dc929062481

4

1 回答 1

12

在让代码正常运行之前,您需要解决几个问题。我为您的代码创建了一个分支,并添加了一些您需要包含的修改,以便能够记录 WebRTC 流。叉子在这里。另外,让我为您提供几点意见:

  1. 您选择的示例(“Hello World”)无法停止(GUI 中没有“停止”按钮)。因此,您将无法停止录制。您应该使用具有“开始”和“停止”按钮的更高级示例,以便您可以停止录制,以便能够访问存储的媒体并查看它。也许你应该更好地使用魔镜教程作为你的陈述点,因为它使用 WebSockets 来发送信号,它使你能够停止录制。
  2. 你应该避免竞争条件。在您的代码中,您使用的是具有竞争条件的 'recorderEndpoint' rariable,因为它在回调中初始化并在不同的回调中使用,这两个回调都是并行执行的,并且都受到竞争条件的影响。

编辑:该示例确实有一个停止按钮,按下该按钮时会释放管道,然后停止录制。因此,评论 1 也不真正适用。

于 2014-10-05T14:26:52.037 回答