Kurentoサーバ概要

こんにちは、ベーコン婆男です。

Kurentoでどんなことができるのかのイメージを持ってもらうために、Kurentoのチュートリアルを少しご紹介したいと思います。

実際にチュートリアルに入る前に、Kurentoのアーキテクチャについて説明します。

Kurentoは、ストリーミングデータを処理するコア部分は、Kurento Media Server(KMS)と呼んでいます。Kurento Media Serverでは、単に端末からのストリーミングデータを相互に配信するだけでなく、サーバで録画をしたり、サーバを経由するビデオデータに対して画像処理を行うといったことが可能ですが、それらは、Media Elementと呼ばれる各機能コンポーネントを組み合わせて実現できるようになっています。(下図)

Media Elementの例

例えば、受信したストリーミングデータに対して、顔認識をしたい場合は、以下のようにWebRtcEndpointとFaceOverlayFilterを接続することで実現できます。ストリーミングデータをサーバに録画したい場合は、WebRtcEndpointをRecorderEndpointに接続すれば実現できます。

Kurento Media Serverに対して、Media Elementの設定を行うために、Kurento APIと呼ばれるAPIが用意されています。また、Kurento APIを使うためのライブラリとしてKurento Clientと呼ばれるライブラリが提供されています。(Kurento Clientは、Kurento Media Serverを制御するためのAPIライブラリであり、WebRTCクライアントのライブラリではないのでご注意ください。)

Kurento Clientは、JavaとJavaScriptの2種類の言語が用意されており、以下の3通りのアクセス方法がサポートされています。

Kurento Clients (Java/JavaScript)とKuento Media Serverの接続方法

1番目の方法は、WebRTCの端末にKurento Clientを実装して、WebRTCのクライアント端末から直接Kurento Media Serverを制御します。WebRTC端末とKurento Media Server間は、WebSocketで通信します。

2番目の方法は、アプリケーションサーバを設置して、そのアプリケーションサーバ(Java)にKurento Clientを実装して、アプリケーションサーバからKurento Media Serverを制御します。WebRTCクライアント端末は、一般的なWebRTCクライアント端末と同様にシグナリグ制御のみアプリケーションサーバとやり取りし、Media Serverをどのように設定するのかはアプリケーションサーバで行います。

3番目の方法は、2番目の方法と同じアーキテクチャですが、アプリケーションサーバがJavaではなく、Node.jsの場合になります。

なお、すべてのケースにおいて、映像、音声といったストリーミングデータは、WebRTCクライアント端末から直接Kurento Media Serverとやり取りします。

また、1番目の方法だと、シグナリング制御を別途行う必要があるため、単純に自拠点の映像をサーバに録画するといったケースでない限り、実際には2番目か3番目の方法をとることになると思います。

以上を踏まえて、次回からKurentoのチュートリアルを見ていきたいと思います。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です