Embedded SDK β版
概要
Embedded SDKは、ESP32などの組み込み機器のアプリケーションからSkyWayを利用するためのSDKです。 本SDKを利用することで、組み込み機器からエンコード済みの映像・音声をリアルタイムに送信(Publish)し、任意のデータを送受信することができます。
提供状況 Embedded SDKは現在、β版として機能を限定して提供しています。そのため、他のSDKで利用できる機能の一部が含まれていない場合があります。また、 API仕様が予告なく変更される可能性があります。 あらかじめご了承ください。
β版の提供期間中は、SDKの品質改善および機能追加に継続して取り組んでまいります。
ご利用後に気になる点がございましたら、お気軽にお問合せフォームよりご連絡ください。
対応している通信方式
Roomを利用したP2Pでの publish / subscribe にのみ対応しています。
対応環境
以下の環境で動作することを確認しています。
- ESP-IDF v5.5.2
- ESP32-S3
- ESP32-P4
- PSRAM 8MB以上
ネットワークは、開発ボードが対応していればWi-FiとEthernetのどちらでも利用できます。 ESP32-P4はWi-Fiを内蔵していないため、Wi-Fiを利用する場合はESP32-C6などのWi-Fiコプロセッサを搭載した開発ボードが必要です。
バイナリは、ESP32-S3向けとESP32-P4向けの2つを配布しています。
ライブラリの仕様
SkyWay Embedded SDK を利用する上で理解する必要のある基本的な仕様について説明します。
Room
通話を行うグループの単位であり、共通の Room に参加したエンドユーザー同士で通話を行います。 Room に参加しているエンドユーザーのことを Member と呼びます。
Roomのリソースに関する制限 Embedded SDKはRoomの情報を保持するメモリを静的に確保しているため、1つのRoomで扱える規模に以下の制限があります。
- Member:4人(LocalPerson 1人、RemoteMember 2人、Bot 1人)
- Publication:12個
- Subscription:24個
Roomの取得結果(
skw_room_find_or_create()やskw_room_find_by_id()など)に格納できるリソースが上記の数を超える場合、SKW_ROOM_ERR_CAPACITY_EXHAUSTEDが返り、上限までのリソースが格納されます。 他のSDKから参加するMemberも上限に含まれるため、動作確認の際はこの規模に収まるような構成で作成してください。
Stream
Room 上で送受信できるメディアのことを Stream といいます。以下の種類の Stream を利用できます。
- VideoStream
- H.264(Constrained Baselineプロファイル、レベル3.1)でエンコード済みの映像
- アプリケーション全体で各1つずつPublish/Subscribeすることができます。
- ただし、VideoのSubscribeは試験的機能です。別途有効化の設定が必要です。
- AudioStream
- Opus(48kHz、2チャンネル)でエンコード済みの音声
- アプリケーション全体で各1つずつPublish/Subscribeすることができます。
- DataStream
- 文字列やバイナリデータなどの任意のデータ
- アプリケーション全体で各2つずつPublish/Subscribeすることができます。
publish
Member が Stream を Room に公開することを publish といいます。
Stream を publish すると Room 上に Stream に対応する Publication というリソースが作成されます。
subscribe
Member が Room 上の Publication を受信することを subscribe といいます。
subscribe をすると Room 上に Subscription というリソースが作成されます。
Publication を subscribe した Member は Subscription を通じて Stream にアクセスし映像や音声を受信できます。
SkyWay Auth Token
SkyWay Auth Token は、SkyWay を利用するために必要な JWT(JSON Web Token)形式のトークンです。
エンドユーザーごとに権限を細かく設定することができ、例えば Room ごとの入室を特定のエンドユーザーに制限する、といったことができます。
不正な権限での操作を防ぐために、シークレットキーは機密情報として管理する必要があります。
本番環境用のアプリケーションでは、エンドユーザーにはSkyWay Auth Token のみを払い出し、シークレットキーはアプリケーションサーバー側で管理することを強く推奨します。
SkyWay Auth Token の詳細については、SkyWay Auth Token のドキュメントを参照してください。
SDK のダウンロード
GitHub にてライブラリおよびサンプルコードの配布を行なっています。