created_at
updated_at
tags
toc
headdings

WebRTC 1.0 に向けたロードマップ

Intro

Google の Product Manager である Huib Kleinhout が、 disscuss-webrtc の ML に以下のような投稿をした。

Completing WebRTC 1.0

WebRTC 1.0 を年内に終わらせるためのロードマップ(Chrome の改善を含む)を提示している。

このロードマップに期待を寄せ、簡単に現状を振り返りつつ紹介する。

Completing WebRTC 1.0

2015 年の TPAC あたりで、すでに WebRTC 1.0 を 2015 年内に完了する目標は掲げられていたが、結果諸々の問題を解決し切れず 2017 年を迎えた。

しかし、今回の投稿では、いよいよこの作業に終止符を打つためのロードマップが挙げられている。

WebRTC の現状

先に現時点の問題について整理する。

WebRTC は主に、 IETF が策定するプロトコル と、 W3C が策定する API によってなりたち、ブラウザはその仕様に準拠した実装をおこなうことで相互接続が実現されるのが望ましい。

しかし、そもそも複雑な問題を解決するために仕様は大きく、さらに SDP など既存実装との互換などの問題もあり、すり合わせる作業に時間がかかっていた。

ブラウザ API にしても、仕様策定と並行して Promise ベースの API が台頭し、さらに ORTC の試みから得たフィードバックもある。

なによりも、最重要な問題の一つとなるマンダトリコーデック(実装必須となる共通コーデック)について、政治的な決着をつけきれずにいた期間も長い。

結果、 Chrome と Firefox ですら、すり合わせができていない部分が残っている現状だった。

ロードマップ

今回は、そんな WebRTC 1.0 の仕様に関しての展望と、それを相互接続性という観点で実現するために Chrome が行うタスクなどについて言及されている。

  • WebRTC 1.0 の仕様を、 W3C / IETF 双方で完成させる。
    • それぞれのギャップを埋めて公開する。
  • Chrome 実装の標準とのギャップを解決する。
    • RTCRtpTransceiver, RTCRtpSender, RTCRtpReceiver の追加
    • SDP を Plan B から Unified Plan に変更
    • getStats の仕様への追従
  • ブラウザ間の相互接続性向上
    • WPT (Web Platform Tests) にテストを追加し、ブラウザベンダは対応を進めている。
    • 加えて、複雑なシナリオで API やプロトコルレベルのブラウザ互換性をテストするシステムのリリースを考えている。
  • 信頼性に関する残った問題の解決
    • オーディオエコーやグリッチを減らすための、いくつかの重要なインフラの改善
    • デバイスや OS のカメラやマイクの信頼性の向上を提供する

あと半年、我々ができること

どうやらこの話も、約 6 年続いたようで、その間に状況もだいぶ変わった。

いよいよ WebRTC 1.0 が安定と信頼を持って使え、参照できる仕様になるためにできることはいくつかある。

  • 仕様への貢献
    • あと半年ということなら、本格的なブラッシュアップも始まる。
    • 書かれてることが読みづらいとか、サンプルコードが間違ってる、タイポなどはよくあるので、そうした指摘は良いだろう。
  • 古い情報への注意
    • WebRTC が出始めたばかりの頃の情報が多いので、ブログや書籍を見る際は公開日に注意したい。
    • 新しく何かをアウトプットする際も、気をつけたい。
    • 過去の記事が更新できるとなお良さそう。
  • アプリの修正
    • 古い API で書かれているアプリを改善したい。(特にブラウザ deprecated warn を出してる箇所など)
    • ライブラリのアップデート。
  • フィードバック
    • プロトコルや API の不便な点だけでなく、数多あるユースケースやシナリオにおいて困っていることなど、フィードバックは役に立つ。
    • WebRTC 1.0 で大きな変更が無理でも、将来の仕様の改善案として積むこともできる。
  • Web Platform Tests
    • WebRTC に限らず、書くとみんなが嬉しい。

伸びに伸びた WebRTC 1.0 の決着がやっとつくかどうか、この半年に期待したい。