サイマルキャスト

重要

サイマルキャストは実験的機能です。

サイマルキャスト機能については Sora のドキュメント を参照してください。

サイマルキャストの利用条件

Sora Android SDK では、映像コーデックが VP8 か H.264 の場合のみサイマルキャストを利用できます。 ただし、現在の実装では、サイマルキャスト有効時は端末のハードウェアエンコーダーが使えません。 libwebrtc が提供するデフォルト実装のソフトウェアエンコーダーを使うか、カスタマイズの実装を用意する必要があります。

注意点:

  • デフォルト実装のソフトウェアエンコーダーは H.264 に対応していません。 H.264 を使う場合はエンコーダーを実装する必要があります。

  • ソフトウェアエンコーダーは CPU の発熱量とバッテリーの消費量を増大させます。

  • エンコーダーを実装するには、 org.webrtc.VideoEncoderFactory インターフェースに準拠するクラスを実装する必要があります。 エンコーダーの実装方法の解説は準備中です。

  • デコーダーはデフォルト実装で問題ありません。また、明示的に指定する必要もありません。

サイマルキャストを有効にする

サイマルキャストを有効するには SoraMediaOption.enableSimulcast() を呼びます。

ビットレートや解像度が低い場合、 3 段階の画質の切替ができないことがあります。 その場合はビットレートと解像度を高めにすると画質を切り替えられるようになります。

例:

val option = SoraMediaOption().apply {
    ...
    // サイマルキャストを有効にする
    enableSimulcast()

    // 映像コーデックは VP8 または H.264
    videoCodec = SoraVideoOption.Codec.VP8

    // エンコーダーを指定する
    // デフォルトの実装は VP8 にのみ対応している
    videoEncoderFactory = SoftwareVideoEncoderFactory()

    // 高画質に対応するためにビットレートを高めに指定する
    videoBitrate = 5000
}

// 高画質に対応するためにカメラの解像度を高めに指定する
capturer?.startCapture(1920, 1080, 30)