動的に映像の送信ビットレートを変更して通信量を抑えたい

THETA pluginのサンプルではsetTargetBitrateを実行して、動的に映像の送信ビットレートを変更することができるようになっています。ネットワークの状況や閲覧者の端末操作の状況などに応じて、アプリケーションの判断で動的にビットレートを変更するといったことが可能です。setTargetBitrateによって一時的に映像の送信ビットレートを抑えると、通信量料金は実際の通信量に応じて抑えられますが、Room帯域幅予約料金についてはご利用になる範囲での最大値に基づいた料金となります。(Room帯域幅予約設定値は、各拠点の映像/音声/画面共有を最高品質で配信するために、各拠点の送信ビットレートの最大値に合わせた設定が必要です。)

  • THETA pluginのサンプルでは、BITRATESに送信ビットレートのリストが格納されており、無線ボタンの短押しでsetTargetBitrateを実行して送信ビットレートを変更するようになっています。

サンプルコードの一部抜粋

private val BITRATES = IteratorUtils.loopingIterator(listOf(
    15_000_000, // 15Mbps
    10_000_000, // 10Mbps
    5_000_000,  // 5Mbps
    1_000_000,  // 1Mbps
    0           // Auto
))

setKeyCallback(object : KeyCallback {
    override fun onKeyDown(keyCode: Int, keyEvent: KeyEvent) {
        if (keyCode == KeyReceiver.KEYCODE_WLAN_ON_OFF) {
            val bitrate = BITRATES.next()
            mThetaVideoEncoderFactory!!.setTargetBitrate(bitrate)
            LOGGER.debug("Target bitrate set to {}", bitrate)
            notificationAudioSelf()
        }
    }
}

サポート