2014-10-05 62 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