WebRTC Kurentoチュートリアル

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

WebRTCサーバであるKurentoには、非常に多くのチュートリアルが用意されており、Kurentoを使ってどのようなWebRTCアプリを構築できるのかのイメージが付きやすくなっています。

本ブログでは、チュートリアルの内、代表的なものを紹介して、Kurentoを使ってどのようなWebRTCアプリが開発できるのかを見ていきたいと思います。(Kurentoのチュートリアルはドキュメントの中に記載されています。)

チュートリアル1: Hello World

まずはもっとも単純な、ループバックのWebRTCアプリです。WebRTC端末の映像と音声をKurentoサーバに送って、そのままループバックで、自身の映像と音声を受信してブラウザ上に再生します。

公式サイトのチュートリアルでは、前回説明した3つの全ての実装パターン(JavaScript, Javaアプリケーションサーバ, Node.jsアプリケーションサーバ)が紹介されています。

ここでは、Javaアプリケーションサーバの構成で紹介したいと思います。

まず大前提として、以前投稿した「WebRTC Kurentoサーバの構築」の記事に従って、Kurento Media Serverのインストールとサービス起動をお願いします。

サービスが起動していないと、ビルド後にエラーが発生して動作しないため、必ずサービスを起動しておいてください。

次にチュートリアルのコードをGitHubからダウンロードします。

もしgitコマンドがインストールされていない場合は、先にインストールしてください。

$ sudo apt-get update
$ sudo apt-get install git

ソースコードを保存するディレクトリを作成して、ソースコードをダウンロードしてください。

$ mkdir kurento-tutorial
$ cd kurento-tutorial
$ git clone https://github.com/Kurento/kurento-tutorial-java.git

全てのチュートリアルのソースコードがダウンロードされるので、今回のHello Worldのディレクトリに移動して、最新バージョンを取得します。

$ cd kurento-tutorial-java/kurento-hello-world 
$ git checkout 6.6.2

Hello Worldをコンパイルします。

Java JDKとMaven3を使用しますので、インストールされていない場合は事前にインストールしてください。

$ sudo apt-get update
$ sudo apt-get install openjdk-7-jdk
$ export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
$ sudo apt-get install maven

もしMaven2がインストールされている場合、Maven3がインストールされないため、先にMaven2をアンインストールしてください。(sudo apt-get remove maven2)

hello-worldをビルドします。

$ mvn compile exec:java

ビルドが成功すると、Hello-Worldが起動します。

パソコンでブラウザを立ち上げて、Kurentoが起動しているサーバ(ポート8443)をhttpsで開いてください。

https://(サーバIPアドレス):8443/

サーバに証明書が実装されていない場合は警告が表示されますが、無視して開いてください。

Hello-Worldのページが無事に表示されたでしょうか?

画面のstartボタンを押してみてください。
(ブラウザのカメラとマイクの選択画面が表示された場合は、画面の指示に従って選択してください。)

上記の画面はFireFoxで開いています。左側がローカルの映像で、右側がKurentoサーバに送信されループバックで戻ってきた映像になります。音声は、ローカルの音がループバックで戻ってくるため、話した声がそのままスピーカから聞こえるはずです。

Hello-Worldは、単に自分の映像と音声がループバック再生されるだけですが、映像や音声の遅延の大きさを確認することができます。ネットワークの速度が早ければ、ほぼ遅延を感じることなく再生されるかと思いますが如何でしょうか?私は初めてHello-Worldのチュートリアルを見たとき、ほとんど遅延しないことに驚きました。

次回も引き続きチュートリアルをもう少し紹介したいと思います。

 

コメントを残す

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