SkyWay SDK for Linux の概要

SkyWay SDK for Linux®︎ (以下、SDK for Linux )は Linux用のアプリケーションから SkyWay を利用するための SDK です。 Linux のネイティブなアプリケーションに SkyWay を組み込むことで、デバイス同士やブラウザとのリアルタイム通信を実現できます。

対応環境

項目SDK for Linuxの対応状況
OSUbuntu 22.04 LTS, Ubuntu 20.04 LTS, Raspberry Pi OS 2024-10-22リリース版(64bit)
CPUアーキテクチャUbuntu: AMD64(x86-64), Raspberry Pi OS: AArch64(arm64)

利用可能なデバイス

SDK for Linux では音声および映像の入出力に対して、デバイスに制限があります。

メディア同時に利用可能なデバイス数利用可能なデバイス番号
音声入力1デバイス、出力1デバイス制限なし
映像制限なし/dev/video0〜/dev/video63

アプリケーション開発言語

C++

配布ライブラリ

SDK for Linux は P2P Room と Core ライブラリで構成されており、ご利用いただく場合は以下の2つのケースからお選びください。

  • P2P Room ライブラリ
  • Core ライブラリ

注意 現在、SDK for Linux ではSFU Room およびSFU Bot プラグイン機能は提供しておりません。

P2P Room

Core ライブラリの詳細な制御の部分を内包したラッパーライブラリです。 より簡単にSkyWay を使用できます。

Core

SkyWay の各種ライブラリについて詳細な制御を行いたい場合に利用するライブラリです。 プラグインによる機能拡張が可能です。

しかし、多くのユースケースではP2P Room で簡単に実装できるため、まずはP2P Room ライブラリを検討することをお勧めします。

Room ライブラリの仕様

Room ライブラリを使って SkyWay を利用する上で理解する必要のある基本的な仕様について説明します。

Room

通話を行うグループの単位であり、ユーザーは共通の Room に参加したユーザー同士で通話を行います。 Room に参加しているユーザーのことを Member と呼びます。

Stream

Room 上で送受信できるメディアのことを Stream といいます。以下の 3 種類の Stream を利用できます。

  • AudioStream
    • ユーザーのマイク音声など
  • VideoStream
    • ユーザーのカメラ映像など
  • DataStream
    • 任意のメッセージ

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 SDK を利用したクライアントアプリは、アプリケーションサーバーから SkyWay Auth Token を取得し、これを用いて各種 SkyWay の機能を利用します。

なお、サーバを構築せずにフロントエンドで SkyWay Auth Token を生成した場合、シークレットキーをエンドユーザーが取得できるため、権限の制限が機能せず注意する必要があります。

Core ライブラリの仕様

Core ライブラリを使って SkyWay を利用する上で理解する必要のある基本的な仕様について説明します。 Room ライブラリを使う場合は基本的に、この仕様について把握する必要はありません。

Channel

通話を行うグループの単位であり、ユーザーは共通の Channel に参加したユーザー同士で通話を行います。 Channel に参加しているユーザーのことを Person といいます。 Channel には Person の他に、SkyWay の Core ライブラリの機能を拡張する Bot が参加できます。

Stream

Channel 上で送受信できるメディアのことを Stream といいます。以下の 3 種類の Stream を利用できます。

  • AudioStream
    • ユーザーのマイク音声など
  • VideoStream
    • ユーザーのカメラ映像など
  • DataStream
    • 任意のメッセージ

Publish

Stream を Channel に公開することを Publish といいます。

Stream を Publish すると Channel 上に Stream に対応する Publication というリソースが作成されます。

Subscribe

Channel 上の Publication を受信することを Subscribe といいます。

Subscribe をすると Channel 上に Subscription というリソースが作成されます。

Publication を Subscribe したユーザーは Subscription を通じて Stream にアクセスし映像や音声を受信できます。

SkyWay WebRTC Gateway との互換性

互換性はありません。

SDK のダウンロード

GitHub にてライブラリおよびサンプルコードの配布を行なっています。

商標

Linux®︎は、米国およびその他の国における Linus Torvalds の登録商標です。