ブラウザ上でのリアルタイムコミュニケーションをより簡単にし、発達させてきたWebRTC。WebRTCのおかげで、ビデオチャットやボイスチャットなどのリアルタイムコミュニケーションをプラグインなしで可能することができています。今回はそんなWebRTCのサーバーである、Kurentoについてご紹介していきます。
関連記事: WEBRTCとは?
Kurentoとは
Kurentoは、Apatche2.0で提供されているWebRTCのオープンサーバーのことを指しているのですが、サーバーだけではなく、WebRTCのアプリをより簡単にするためのクライアントAPIも同時に提供しています。
Web RTCはWeb Real Time Communicationsの略で、Webブラウザにプラグインを追加することなく、ブラウザ上で簡単にリアルタイムコミュニケーションを可能にするオープンフレームワークのことです。
Kurentoの主な機能は以下のようなものが主な機能になっています
-
- グループコミュニケーション(複数人対話)
- トランスコーティング(解像度交換)
- 録画・録音
- ミキシング
- ブロードキャスティング(配信主と多数の視聴者の配信)
- コンピュータービジョン(画像認識)
Kurentoは一般的なWebRTCサーバーと比較して、サーバー側で上記で記述したような、録画・録音やトランスコーティングなど様々な機能を持たせることができることが特徴です。映像・音声データは通常、サーバーを経由して読み込まれるので、サーバーからそれらのストリーミングデータを処理するのは非常に理にかなっている仕組みであることが言えます。WebRTCはP2P通信をサポートしていますが、Kurentoを利用する場合、1対1の会話でもKurentoサーバーを経由しているのでサーバー型の通信になります。また、サーバー側でストリーミング処理をすることができるので、映像や音声を使った新しいサービスの発信をすることができるのではないかと期待されています。
Kurentoのアーキテクチャ
ここまでで、Kurentoがどんなものなのか、だいたい掴んで頂けたと思います。では次に、Kurentoのアーキテクチャーについて説明していきます。
Kurentoのストリーミングデータを処理するコアとなる部分は、Kurento Media Serverと呼ばれていて、単純に端末からストリーミングデータを相互に配信することができるようになるだけでなく、サーバーで録画をすることが出来たり、サーバーを経由するビデオデータに対して画像処理を行うといったことが可能ですが、それらはMedia Elementと呼ばれる各機能のコンポーネントを組み合わせて使用することができるようになっています。
Kurento ClientのAPIは、Media Elementの概念に基づいていて、例えば下の図でいうと、WebRtcEndPointというメディア要素はWebRTCメディアストリームの送受信機能を持ち、ReacoderEndPointというメディア要素は受信したメディアストリームをファイルシステムに記録する機能を持ち、FaceOverlayFilterは交換されたメディアストリームのフェイスを検出して画像などを表示する役割を担っています。
またKurento Media Serverに対して、Media Elementの設定を行うために、Kurento APIの設定を行うために、Kurento APIと呼ばれるAPIが用意されていて、このAPIはKurento Clientと呼ばれるライブラリによって実装されています。Kurentoには、JavaとJavaScript用の2つのクライアントが用意されていて、別の好きな言語がある場合でも、Kurentoのプロトコルを直接使用して、Kurentoを使用することが出来ます。アクセス方法は3つあり、
・Kurento Java Scriptクライアントを準拠したWebRTCブラウザ直接使用する
・Java EEアプリケーションサーバでのKurento Javaクライアントを使用する
・Node.jsサーバでのKurento Java Scriptクライアントを使用する
以上の方法があります。
アクセス方法は説明した3つほどありますが、映像・音声といったストリーミングデータは、WebRTCクライアント端末から直接Kurento Media Serverとやり取りをするという点だけは変わらないので、注意してください。
TwilioがKurentoの開発チームを買収
2016年9月に、アメリカのクラウド通信企業で、電話やテキストメッセージの送受信をすることができるようになるプログラムのクラウドAPIサービスを提供しているTwilioがKurentoの技術自体を買収するとともに、Kurentoの開発チームを招き入れることを発表しました。これによってKurentoはTwilioの傘下に入って、大きなリソースの元によりサービスを充実させていくことになり、良い相乗効果が期待されていました。
TwilioのCEOである、Jeff LawsonはKurentoの開発チームとともに、開発者にとってより強力なプラットフォームとAPIを提供していくことを目標としていて、通信の未来を切り開いていくことに尽力していくことを表明し、現在に至るまでサービスの向上に尽力しています。
まとめ
いかがだったでしょうか。今回はWebRTCのオープンサーバーであり、クライアントAPIでもあるKurentoについて主にご紹介してきました。Kurentoはこれまで、WebRTCの技術の使用をデベロッパーに促し、発展させることに貢献してきました。Wilioの傘下に入ったことで、より大きなリソースで開発され、アップデートしていくKurentoに今後も目が話せません。
ONETECHはベトナムオフショアでソフトウェア開発
ONETECHはベトナムオフショアでソフトウェア開発・WEBシステム開発・アプリ開発、システムマイグレーション、AWS構築、運用を行っています。
ONETECHではWebRTCを利用したライブ配信システムの開発実績がございます。一つはライブ配信者がPCブラウザから最大1000名の視聴者に向けてライブ配信を行える仕組みです。視聴者はライブ配信者に向けて投げ銭を表示することもできます。NodeJS/WebRTC/AWS EC2で構成しました。もう一つは、アクションカメラとスマホアプリの組み合わせをした業務の遠隔支援アプリです。現場の作業者のライブ配信を、会社のデスクにいる管理者がPCで視聴して、PCから指示を出すことが可能です。
最後にONETECH ASIAはベトナムオフショア開発でWebRTCの開発を承っておりますのでお気軽にご相談ください。