WebRTCの概要②

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

今回は、クライアントアプリの開発について書きます。

WebRTCは、ブラウザを使ってリアルタイムコミュニケーションを実現することを目指して規格化されました。そのため、ブラウザさえあればWebRTCを利用できるのが最大のメリットです。Skypeのように追加で専用アプリをインストールする必要はありません。

ただすべてのブラウザで同様にWebRTCが実装されているわけではなく、Webブラウザによって実装状況や仕様の一部が異なるため、注意が必要です。Chrome, FireFox, OperaはWebRTCに対応していますが、IEやSafariは未対応です。また、Chrome、FireFox、Opera間でも細かい実装状況は異なります。それでも、ブラウザさえあればビデオ通話のようなリアルタイムコミュニケーションのアプリを利用できるのは大きなメリットです。

また、ブラウザに実装されているということはOSに依存しません。そのため、パソコンに限らず、iPhone、Androidなどのスマホやタブレット、ラズベリーパイ上でも、ほぼ同一のソースコードを使ってアプリを動かすことができます。通常、OSごとにアプリを開発する必要があり、昨今のモバイルアプリの場合、最低限iPhoneとAndroid用の2種類のアプリを開発することになり、大きな負担がかかりますが、WebRTCを利用すれば、1つのソースコードで、複数のOS上で動作させることができ、簡単にマルチデバイス対応が可能です。

通常、リアルタイムコミュニケーションのアプリを開発しようとすると、映像や音声のコーデック実装、ネットワークの混雑である輻輳対応、映像や音声のパケットロスのリカバリー対応、接続・切断のセッション管理等、幅広い技術習得と開発ノウハウが必要ですが、WebRTCでは、それらがすべてAPIとして実装されているため、APIの使い方さえ理解すれば簡単にアプリの開発ができるようになっています。それも、性能も非常に高く、市販されているアプリに引けを取らない、もしくはそれ以上のものを簡単に開発できます。

では、クライアントアプリの作成方法ですが、ブラウザのWebRTC APIを利用して開発しますが、ブラウザのAPIは低レイヤーのAPIのため、そのまま利用すると開発が結構大変です。そのため、通常はそれらのWebRTCのAPIをラッピングしたライブラリを利用します。ライブラリで、ChromeとFireFox間の仕様差異もある程度吸収されているため、細かいことを気にせずにアプリを開発することができます。

実は、それらのWebRTCライブラリも先に述べたWebRTCサーバで一緒に提供されています。今回利用するKurentoでも同様にクライアント用の開発ライブラリが提供されており、それを利用することができます。

次回は、クライアントの開発フレームワークについて書く予定です。

 

コメントを残す

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