2016-05-04 15 views
3

私は、主にWebRTCからRTPへのゲートウェイとして、そしていくつかのフィルタに対してKurentoを使用したいと考えています。ブラウザでは、ブラウザのネイティブWebRTC APIを使用しています。ブラウザでkurento-utils.jsを使用せずにKurento-client.jsをアプリケーションサーバーで使用できますか?

ノードアプリケーションサーバーでWebRTCEndpoint(その用語がKurentoで使用されているように)を作成し、それをKurentoパイプライン経由でRTPEndpoint(その用語がKurentoで使用されるように)に接続したいとします。私はこれがKurentoのtrivalであることを知っていますが、私の質問は、アプリケーションサーバーでKurento-client.jsを使用するだけで可能ですが、ブラウザにKurento-utils.jsを使用しないでください。私がこれをやりたい理由はたくさんありますが、そのうちの1つは自分のシグナリングがあり、ブラウザの低レベルのWebRTC APIを直接制御する必要がある他の問題です。kurento-utils.js私には許されません。

私はまた、フォールバックを持たないシグナリングのためにwsに結びつけることは理想的なデザインではないと確信しています。

答えて

2

確かに! Kurento-utils-jsは、ビデオタグを管理し、ICE候補をバッファリングし、PlanBまたはUnifiedPlanの場合にSDPをマングリングし、さらにいくつかのものをラップするだけのRTCPeerConnectionラッパーです。ライブラリには特別なシグナリングとの関係はありません。シグナリングを入れるメソッドのコールバックは、RTCPeerConnectionWebRtcPeerのオブジェクトで同じです。例えば、これはあなたが、WebRtcPeerを作成する方法をあり、あなたはそれによって生成されたSDPオファーを送信する方法を

var options = { 
    onicecandidate : onIceCandidate, 
    localVideo : localMedia, 
    remoteVideo : remoteMedia 
} 

var webRtcPeer = new kurentoUtils.WebRtcPeer.WebRtcPeerSendrecv(options, function(error) { 
    if (error) return console.error(error) 
    webRtcPeer.generateOffer(function (error, sdpOffer) { 
     if (error) return console.error(error) 
     sendMessageToServerApp("sdpOfferMessage", sdpOffer) 
    }) 
}) 

sendMessageToServerAppあなたが実装する必要があるものです。

ラップされたオブジェクトにアクセスすることもできます。ライブラリのwebRtcPeerオブジェクトがあると仮定すると、webRtcPeer.peerConnectionという属性を持つRTCPeerConnectionを取得できます。

ウェブソケットを使用する目的は、メディアサーバーからサーバーアプリケーションで定義されているプロキシ要素へのイベントをサポートすることです。長いポーリングやその他の仕掛けなどを使うことはできますが、サーバーアプリケーションとKMSを必要な環境に展開する可能性は低く、その部分を完全に管理する必要があります。この提案は、メディアサーバーのシグナリングポートをサーバーアプリケーションでのみ使用できるようにすることです。

クライアントとサーバーの間にフォールバックのメカニズムがあるため、私はSockJSを例として挙げています。私たちは過去にそれを使用しており、うまく動作します。

+0

ありがとうございました。だから、ICEの候補者とSDPの提供をブラウザからアプリサーバーに**提供する限り、私はKurento-client.jsでAPIを使用することができます。あれは正しいですか?関連する質問では、私はKurentoがSDPオファーを処理してSDP回答を生成することができますが、オファーを生成することはできず、WebRTC通話の開始者であることを遵守していますか?その場合のSDPの提供はかなり長く、Kurentoのすべてのメディア処理機能を網羅していますか? – Sam

+1

@Sam Yap、そうです。 Kurento-utils-jsは便利なライブラリです。 Kurentoは、参加者と審判員の両方として働くことができ、バニラとトリクルICEの両方で作業することができます。私は、シグナリングとライブラリに関するさらに詳しい情報を含める答えを広げました。 – igracia

+0

ありがとうございました!疑問は解消されましたが、表示されたブラウザコードが他の人を混乱させる可能性があります。 **ブラウザでのKurento-utils.jsの使用は、私の質問のタイトルに記載されているように避けたいものです。** kurento-utils.jsをブラウザ外のNodejsアプリケーションで使用できる場合は、オファー**ブラウザの外で生成することができます**私は2番目の質問でしたか?私はKurento-client.jsにwebRTCEndpoint.createOfferがないと思いますか? WebRTCやその他のアプリケーション固有のAPI用の独自のJSラッパーライブラリがあるので、私はKurento-utils.jsをブラウザで使用しないでください。ソケットを使用します。ioを使用します。 – Sam

関連する問題