こんにちは、ベーコン婆男です。
Kurentoでどんなことができるのかのイメージを持ってもらうために、Kurentoのチュートリアルを少しご紹介したいと思います。
実際にチュートリアルに入る前に、Kurentoのアーキテクチャについて説明します。
Kurentoは、ストリーミングデータを処理するコア部分は、Kurento Media Server(KMS)と呼んでいます。Kurento Media Serverでは、単に端末からのストリーミングデータを相互に配信するだけでなく、サーバで録画をしたり、サーバを経由するビデオデータに対して画像処理を行うといったことが可能ですが、それらは、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通りのアクセス方法がサポートされています。

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のチュートリアルを見ていきたいと思います。