Kurento WebRTC没有录音

时间:2014-10-05 03:18:31

标签: javascript node.js webrtc kurento

我尝试使用带有nodejs的Kurento Media Server录制视频。我一直在运行你好世界的例子here。我将一个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,element' 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&#34 ;;

我不认为它的录音是正确的,但我不确定是什么错。我能够运行原始示例,因此服务器很好。

代码在这里:

  

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

1 个答案:

答案 0 :(得分:11)

在让代码正常运行之前,您需要解决几个问题。我已经创建了一个代码分支,并且我添加了一些您需要包含的修改,以便能够记录WebRTC流。分叉是here。另外,让我给你一些评论:

  1. 您选择的示例(“Hello World”)无法停止(GUI中没有“停止”按钮)。因此,您将无法停止录制。您应该使用具有“开始”和“停止”按钮的更高级示例,以便您可以停止录制以访问存储的媒体并进行查看。可能你应该更好地使用Magic Mirror Tutorial作为你的说明点,因为它使用WebSockets进行信号传输,它可以让你停止录音。
  2. 你应该避免竞争条件。在你的代码中,你正在使用一个具有竞争条件的'recorderEndpoint'rariable,因为它在回调中被初始化并用于不同的回调,两个回调都在并行执行,并且都有竞争条件。
  3. 编辑:该示例确实有一个停止按钮,当按下该按钮时,释放管道,然后停止录制。因此,评论1也不适用。