console.lealog();

@leader22のWeb系に関する勉強めもブログですのだ

webrtc-statsの各ブラウザごとの実装状況をまとめた

GitHub - leader22/webrtc-stats-impl-status

このリポジトリで。

webrtc-statsとは

WebRTCのコードに登場するいくつかのクラスには、`getStats()`という関数が実装されていて、それを通して現在の通信状況などの統計データのアクセスできる。

本家の仕様である`webrc-pc`とは別の仕様になってて、それが`webrtc-stats`というネームスペース。

Identifiers for WebRTC's Statistics API

で、この仕様は本家に比べるとまだまだ策定中で、実装もブラウザによってぜんぜん違う。
Polyfillではどうにもならないくらいに違う。

なので、愚直に「ベースラインはどこなんだ」というのを調べたのが冒頭のリポジトリ

leader22/webrtc-stats-impl-status

  • `RTCStatsType`ごとの実装状況
  • 各タイプごとの実装状況

これらをブラウザごとにJSONで取得して、Nodeでサマリを集計して、表にしてるだけ。

その時点でのブラウザ最新バージョンだけ追いかけるつもりで、仕事でWebRTCやってるうちはメンテすると思います。

現時点でのまとめ

  • Firefoxで取れないものが多い
  • ChromeとEdgeは完全に同じ
  • 細かいところは3者3様

通話品質の参考情報として取っておきたいなら、4ブラウザすべてで実装されてる以下のものから、必要なプロパティを取っておくとよさそう。

  • candidate-pair
  • local-candidate
  • remote-candidate
  • inbound-rtp
  • outbound-rtp

それにしても、仕様で定義されてる`RTCStatsType`は21種類もあるけど、Chromeですらまだ13種類しか実装されてないので、先は長そうやな〜という感じ。