時雨堂の WebRTC に関する取り組み
WebRTC 関連でどんなことをやっているか、やっていこうかというのを書いていこうと思います。時雨堂が WebRTC で何をやろうとしているのかの可視化です。
毎月書いていこうと考えています。時雨堂の WebRTC 製品に興味がある方は読んでみていただけると嬉しいです。
今後 WebRTC SFU Sora は独立して書くことにしました。WebRTC SFU Sora については以下をご確認ください。
おしらせ
時雨堂の CTO である SUZUKI Tetsuya が個人で WebRTC の本を書いているそうです。主に libwebrtc をモバイルで活用するという内容になるとのことです。 CTO は WebRTC SFU Sora の iOS / Andoird SDK のメイン開発者であり、React Native WebRTC Kit のメイン設計者です。libwebrtc をモバイルで使うノウハウを多く持っています。
最近流行りの Zenn にて有料で公開されるとのことなので、公開されたらもし興味あれば買ってみてください。公開日は今の所未定です。
WebRTC Native Client Momo
詳細については OpenMomo プロジェクト をご確認下さい。
方針
WebRTC Native Client Momo はビルドの簡易化、libwebrtc への追従、単体で完結する事がメインです。
様々な OS やアーキテクチャーに対応しており、それらを簡易化し、誰もが簡単にビルドできるようにしています。また libwebrtc の最新バージョンに追従することで最新の技術を積極的に使えます。
ハードウェアエンコーダーへの対応も積極的にすすめています。現時点では Raspberry Pi と macOS 、Jetson Nano 、NVIDIA ビデオカードに搭載されているハードウェアエンコーダに対応しています。
libwebrtc M87 対応
対応予定です
Jetson Nano の VP8 HWA 対応
対応済みです
今後
Momo は一通り欲しい機能は実装した状態になったため、今後はメンテナンスフェーズとする予定です。libwebrtc のアップデートや AV1 などについては追従していきます。
WebRTC Signaling Server Ayame
詳細については OpenAyame プロジェクト をご確認下さい。
方針
WebRTC Signaling Server Ayame はベンダーロックフリーの WebRTC P2P サーバをオープンソースで公開するというのが目的です。ソースコードもそうですが、仕様自体もオープンに公開しています。
1対1 のやり取りとして絞り込むことでとてもシンプルな仕様を実現しています。
今後
Ayame (Go 実装) はメンテナンスモードで少しずつ改善をしていく予定です。Web SDK やサンプルにも手を入れてメンテナンスしていく予定です。
今後 P2P を利用した 1 対 1 での WebRTCは「無料で利用できる」が当たり前になっていくと考えています。そこに Ayame も食い込めればと考えています。
Erlang 版の提供を検討
現在 Ayame (Erlang/OTP 実装) の開発を進めています。これは Go 版と仕様自体は全く同じものですが、商用利用を意識した実装をしたものです。すでに Ayame Lite は Erlang/OTP 実装に置き換えてテストしてみています。
WebRTC React Native WebRTC Kit
音声モードと音声出力先を変更する API の用意
React Native WebRTC Kit には音声の設定を行う手段がないため、簡易的な API を用意する予定です。
サイマルキャストへの対応
libwebrtc のサイマルキャストの実装が落ち着いてきたこともあり、対応を進めています。2020 年内に公開予定です。
統計機能への対応
getStats への対応をしていく予定です。サイマルキャストの対応が終わったら対応予定です。
libwebrtc M88 へのアップデート
予定しています。
React Native for macOS 対応
React Native for macOS 対応を進めています。現在試行錯誤中です。
React Native for Windows 対応
macOS 対応版が落ち着き次第、進めていく予定です。
Ayame Labo (Ayame Lite リニューアル)
リニューアル
ずっとベータ版でやってきましたが、正式リリースに向けて準備中です。2020 年 11 月のリリースを目標にしています。
- サインアップなしで利用可能は継続
- 無料で利用可能は継続
- 商用、企業、アカデミックでの利用は利用規約に同意することで利用可能
- 動作保証などは一切ない
メンテナンスの通知などは今まで通り営業日、営業時間であれば Discord にて共有するが、それ以外の場合はサイレントで行うは継続します。
Sora Labo
サンプル周りを Sora デモベースにしたいと考えています。また E2EE は wasm 版に置き換える予定です。
また Momo を使って 4K@30fps や 1080p@60fps をを試してみたい方向けに帯域制限がないサーバを新規に立てるというのも考えています。