注: 本ドキュメントの適用範囲は Voice/Video SDK となります。
※ 本ドキュメントは「What are the differences between the COMMUNICATION and LIVE_BROADCASTING profiles?」を参考にしています。
概要
Agora Voice/Video SDK は、主に以下の 2 種類のシナリオを想定したチャンネルプロファイル (Channel Profile) を提供しています。
- Communication: 少人数でのビデオ会議やオンライン通話など、参加者間で双方向の音声・映像の送受信が求められるシナリオです。
- Live Broadcasting: オンライン講義、チャットルーム、ライブストリーミングなど、配信者から視聴者へ一方通行で音声・映像を配信するシナリオです。
各プロファイルの違い
チャンネルプロファイルに応じて、以下の点が大きく異なります。
1. ユーザーロール (User Role)
-
- Communication: 各ユーザーには配信者 (Host) のロールが割り当てられます。Host Role を持つユーザーは、お互いに音声・映像の双方向送受信が可能です。
- Live Broadcasting: 各ユーザーには配信者 (Host) または視聴者 (Audience) のロールが割り当てられます。視聴者がデフォルトのロールであり、このロールを持つユーザーは、配信者からの音声・映像を受信することはできますが、配信はできません。配信者または視聴者へのロール切り替えには、指定の API (setClientRole) を呼び出す必要があります。
2. ビデオエンコーディングビットレートのデフォルト値
デフォルトとして、同一解像度・フレームレートでは、Live Broadcasting プロファイルは Communication プロファイルの 2 倍のビットレートが採用されます。
これは STANDARD_BITRATE(0) を setVideoEncoderConfiguration API で指定する時と等価です。
解像度 (ピクセル) | フレームレート (fps) | Base (Communication 時の) ビットレート (Kbps) | Live (Live Broadcasting 時の) ビットレート (Kbps) |
160×120 | 15 | 65 | 130 |
320×180 | 15 | 140 | 280 |
640×360 | 30 | 600 | 1,200 |
848×480 | 30 | 930 | 1,860 |
上記テーブルのビットレート値は一例です。Video profile table などから詳細をご覧いただけます。
設定方法
1. (Native 版アプリ開発の場合) setChannelProfile API で指定する方法
例 (Android アプリの場合)
agoraEngine!!.setChannelProfile(Constants.CHANNEL_PROFILE_COMMUNICATION);
2. (Native 版アプリ開発の場合) joinChannel API コール時に ChannelMediaOption のメンバーとして指定する方法
例 (Android アプリの場合)
open fun joinChannel(channelName: String, token: String?): Int {
...
val options = ChannelMediaOptions()
// For a Video/Voice call, set the channel profile as COMMUNICATION.
options.channelProfile = Constants.CHANNEL_PROFILE_COMMUNICATION
// Set the client role to broadcaster or audience
options.clientRoleType = Constants.CLIENT_ROLE_BROADCASTER
// Join the channel
agoraEngine!!.joinChannel(token, channelName, localUid, options)
return 0
}
3. (Web 版で開発の場合) createClient API の mode パラメーターに指定
agoraEngine = AgoraRTC.createClient({ mode: "rtc", codec: "vp9" });
VIdeoSDK for Web では、チャンネルプロファイルの識別子は以下のようになります:
- Communication → rtc
- Live Broadcasting → live
設定時の注意
同じチャンネルに接続するクライアントは、統一されたチャンネルプロファイルを設定する必要があります。
異なるプロファイルが混在した状態では予期しない挙動が生じる場合があります。