レポート

WebRTCはGoogle独自の技術ではない!「WebRTC Meetup Tokyo #7」イベントレポート

この記事を読むのに必要な時間:およそ 3 分

[LT]自前WebRTCコードで痛い目にあう/@othersight氏

2本目のLTは@othersight氏のLTです。

図4 @othersight氏

図4 @othersight氏

会社にてWebRTC試してみようか,と考えてまずPEERJSで使ってみました。使ってみたところ,通信に利用するIDが長くてわかりにくいなと思い,自由にわかりやすいアカウントを設定したい,またWebRTCの中身を理解したい,と思ったことから,自前でWebRTCのシグナリング・プレゼンス機能を作ってみました。結果的に2014年の時点,とりあえず動くものは作れました。

ですが,ブラウザのアップデートにつれて,非推奨のAPIが出てきました。特に,Firefox 33で色々と仕様変更があったため,同じAPIを利用していると,結果的にChromeと相互接続できなくなる事象が発生しました。

結論として,WebRTCのコードを自前で書くと,互換性やAPI仕様変更やら色々と痛い目にあうことがあり,商用で利用するのはかなり大変です。ただしその分,自由度が高いのでメリットはあります。

[LT]getUserMedia/@Tukimikage氏

3本目のLTは,主催者である@Tukimikage氏がgetUserMediaについてのLTです。 資料はこちらです。

図5 @Tukimikage氏

図5 @Tukimikage氏

getUserMediaを呼び出す際にオプションを指定することで,仕様上は様々なパラメタを指定可能です。たとえば,アスペクト比や利用するカメラを選択できます。

実際にgetUserMediaを利用する場合は,ベンダープレフィックスをつける必要がありブラウザごとに挙動が違います。今回はChromeとFirefoxの違いを調べてみました。

まず,WidthとHeightの指定はChromeでしか動きません。Firefoxは指定しても動作しないようです。次に,アスペクト比はChromeとFirefoxのどちらも動作しません。ただし,ChromeではWidthとHeightの指定で代替できます。また,フレームレートの指定はChromeのみで動作しました。

上記と同様の操作をFirefoxで利用したい場合は,about:configからブラウザの設定値を直接変更する方法があります。特にアドオンを配布すれば,Chromeでのオプション指定と似た機能が利用できます。

[LT]SDP for WebRTC/@iwashi86氏

最後のLTは主催者の1人である@iwashi86氏のSDPについてです。資料はこちらです。

図6 @iwashi86氏

図6 @iwashi86氏

WebRTCでは,コーデック等の通信条件のネゴシエーションにオファーアンサー型のプロトコルであるSDP(Session Description Protocol)を利用しています。

SDPはVoIPエンジニアには馴染みのあるものですが,Web開発者にとっては難しいため,その内容について解説します。

SDPには,セッション記述部とメディア記述部があり,WebRTCでは特に「a=」ではじまる拡張属性を利用して,通信に必要な情報を記述します。たとえば,セッション記述部では音声と映像を多重化するための「a=BUNDLE」属性や,TrickleICEを利用するための「a=trickle」を記述します。メディア記述部ではICE候補等を記述します。

その他の詳細は,発表資料をご確認ください。

著者プロフィール

岩瀬義昌(いわせよしまさ)

NTTコミュニケーションズ所属のソフトウェアエンジニア。

Web:http://iwashi.co/

Twitter:@iwashi86

コメント

コメントの記入