2014-10-05 59 views
5

我试图使用带有nodejs的Kurento媒体服务器记录视频。我一直在运行hello-world示例here。我连接recorderEndpoint到webrtcEndpoint并能得到整个事情运行,但我收到的服务器上此错误消息:Kurento WebRTC未记录

0:37:59.122469563 7003 0xaf5500 ERROR KurentoMediaPipelineImpl /编译/ buildd /公里,芯 - 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

回答

12

你需要让你的代码运行正常之前解决几个问题。我已经创建了代码的一个分支,并且添加了一些需要包含的能够记录WebRTC流的修改。叉是here。另外,请允许我提供几点意见:

  1. 您选择的示例('Hello World')无法停止(它在GUI中没有“停止”按钮)。因此,您将无法停止录制。您应该使用具有“开始”和“停止”按钮的更高级示例,以便您可以停止录制以便能够访问存储的媒体并查看它。可能你应该更好地使用Magic Mirror Tutorial作为你的起点,因为它使用WebSockets进行信号发送,它可以让你停止录制。
  2. 你应该避免竞争条件。在你的代码中,你使用了一个'recorderEndpoint'rariable,它有一个竞争条件,因为它在回调中被初始化,并在不同的回调函数中使用,这两个回调函数都是并行执行的,并且都有竞争条件。

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

+0

感谢您的评论!试过了,它的工作原理。 hello-world示例也有一个“停止”按钮,可以停止回送,是否也会停止录制? – poliu2s 2014-10-05 19:06:14

+0

是的,你是对的。我没有注意到它有一个停止按钮。它正在释放管道,因此,录制也停止。所以你可以安全地使用这个例子。 – lulop 2014-10-05 20:00:58