このリポジトリで。
webrtc-statsとは
WebRTCのコードに登場するいくつかのクラスには、`getStats()`という関数が実装されていて、それを通して現在の通信状況などの統計データのアクセスできる。
本家の仕様である`webrc-pc`とは別の仕様になってて、それが`webrtc-stats`というネームスペース。
で、この仕様は本家に比べるとまだまだ策定中で、実装もブラウザによってぜんぜん違う。
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種類しか実装されてないので、先は長そうやな〜という感じ。