Stream quality settings
Overview
Manage and retrieve pixel stream configuration settings to tailor your application's performance to your specific needs using Odyssey's Message API. To set custom quality settings, send a message with type === "set-stream-settings"
, and a value
property which lists the desired configuration updates. Please exercise caution when updating these settings, as altering certain settings may impact your application's ability to function properly. To retrieve the current configuration, send a message with type === "get-stream-settings"
which will return a JSON object containing all current stream configurations.
Updates to the stream's configuration can only be made once you have received the
ready
loading state
Here are the available quality settings that can be modified:
MinQP
- the lower bound for QP when encoding. By default theMinQP
is 1 meaning the encoder is free to aim for the best quality it can on the given network. Valid values are 1-51 where:- 1 = best quality but highest bitrate
- 51 = worst quality but lowest bitrate
MaxQP
- the upper bound for QP when encoding. By default theMaxQP
is 51 meaning the encoder is free to drop quality as low as needed on the given network. Valid values are 1-51 where:- 1 = best quality but highest bitrate
- 51 = worst quality but lowest bitrate
WebRTCMinBitrate
- the minimum desired WebRTC bitrate. Note that poor network connections may experience issues if this value is set too high.WebRTCMaxBitrate
- the maximum desired WebRTC bitrate. Note that setting this too low could result in a blocky video.WebRTCFPS
- the maximum stream fps.
Example functions
type QualitySettings = {
MinQP?: number
MaxQP?: number
WebRTCMinBitrate?: number
WebRTCMaxBitrate?: number
WebRTCFPS?: number
}
// update stream settings
setStreamQualitySettings(updatedSettings: QualitySettings) {
// define and send message
const data = {
type: "set-stream-settings",
value: updatedSettings,
}
const jsonString = JSON.stringify(data)
channel.port2.postMessage(jsonString)
}
// retrieve stream settings
getStreamQualitySettings() {
// define and send message
const getQualityMessage = {type: "get-stream-settings"}
const jsonString = JSON.stringify(data)
channel.port2.postMessage(jsonString)
}
Updated 13 days ago