時雨堂では自社製品 WebRTC SFU Sora 専用の SDK を様々なプラットフォームに向けて開発、提供しています。
今回は、新たな SDK として WebRTC SFU Sora C SDK をリリースしました。
Sora C SDK は今までの Sora SDK がベースとしている libwebrtc ではなく、 OBS の WebRTC (WHIP) などが採用している libdatachannel をベースとした SDK になります。
目的
Sora C SDK は libwebrtc ではなく libdatachannel を利用することで、バイナリサイズとリリース頻度を抑えることを目的にしています。
また libwebrtc では難しかった、最新のコーデックや機能を試せる仕組みなども実現できればと思います。
開発した経緯などは以下をどうぞ。
2024.1.0
最初のリリースは小さくと思っていたのですが、多機能になりました。
- 送信のみ (role: sendonly)
- マルチストリーム 対応
- サイマルキャスト 対応
- 音声コーデックは Opus のみ
- 映像コーデックはハードウェアアクセラレーターを利用した H.264 と H.265 に対応
- ソフトウェアコーデックには OpenH264 を採用
- データチャネルを利用したシグナリング対応
- データチャネルを利用したメッセージング対応
- 複数シグナリング URL 対応
- クラスター機能利用時の “type”: “redirect“ に対応
- Ubuntu 22.04 x86_64 対応
- macOS arm64 対応
今後
Raspberry Pi Zero や RISC-V を積んだ VisionFive2 に対応していく予定です。
その後は受信のみ (role: recvonly) へ対応していきます。受信には Simple DirectMedia Layer を使ったサンプルを用意する予定です。
優先実装
Sora C SDK は多くの優先実装を用意していますので、ご相談をお待ちしております。
雑感
OBS に libdatachannel が採用されたことをきっかけに、小さなライブラリで WebRTC が利用できる SDK を提供したいと考えて進めてきた Sora C SDK ですが、無事リリースすることができました。
今後もコツコツと継続して開発していければと思います。