UZABASEのYakopeliです。
2012/12/19に社内で行ったLTの内容になりますが、今回はWeb RTCについて調べてみました。
Web RTCとは
Real time Communication Beween Browsers APIの略で、JSを使用して
Webブラウザから端末のカメラやマイクにアクセスし、他のWebブラウザとの
リアルタイムなコミュニケーションを可能とするものです。
今までは音声やビデオのリアルタイムな通信を行うには専用のクライアントソフトが必要でした。
また、Webブラウザからは、プラグイン等を入れない限り、マイクやカメラなどのデバイスを
利用することはできませんでした。
しかし、Web RTCが普及すると、
・Webブラウザ上で実行されるJavaScriptで、端末のマイクやカメラなどの
デバイスにアクセスできるようになる
・取り込んだ音声や動画をリアルタイムに他の端末のWebブラウザに送り、
ストリーミング再生が可能になる
よって、Webアプリケーションにカメラやマイクを利用した、新しいリアルタイムな
コミュニケーション機能を組み込むことが可能になります。
Web RTCのアーキテクチャ
アーキテクチャですが、大きく分けると4要素で構成されています。
・Web API
Webアプリケーション側から利用するためのAPI
・Session management/Abstract signaling
セッション管理やP2Pマッチングの仕組み
・Audio/Video Engine
オーディオ・ビデオ
・Transport
データ転送の仕組み
上記のうち、Webアプリ開発者にとって大きく関係するのはWeb APIですが、これは単一の
APIではなく、主に下記二つのAPIから構成されます。
・Stream API
映像や音声などのストリームデータを扱うAPI
・Peer-to-peer connections
UDPプロトコルを用い、ブラウザ同士でダイレクトにデータを送受信するためのAPI
簡単に言うと、Stream APIでカメラやマイクにアクセスし、映像や音声をPeer-to-peer connectionsを使って互いのブラウザに送ると、テレビ電話みたいなものが作れます。
デモ
サンプルがあるので、デモで確認してみます。
http://apprtc.appspot.com/にアクセス後、画面下部に表示されるURLに別のブラウザから
アクセスするとテレビ電話が始まります。(どちらの端末もWebカメラが有効になっている必要があります)
まとめ
セキュリティ関連がどのように進められていくか気になるところですが、WebRTCによって専用のクライアントソフトを入れることなく、Webサイトを通じて音声や映像の通信ができるようになるので、何か新しいサービスが生まれてきそうな予感がしますね。
アルゴリズムとは
Al Khwarizmiというイラクらへんの人が由来。彼は科学者であり、数学、天文学などの多くの分野において業績を残したそうだ。
ちなみに「アル」はアラビア語の定冠詞である。アラビア語由来の単語に「アル」で始まる物が多いのはそのため。他にも
- アルデバラン (Aldebaran)
- アルタイル (Altair)
- アルカイダ (Al Qaeda)
- アルジャジーラ (Al Jazeera)
- アルコール (Alcohol) 英語発音はアルコホールである、注意しよう