infobip-rtc
Version:
Infobip RTC JavaScript SDK - Infobip WebRTC API Implementation
32 lines • 1.19 kB
JavaScript
import VideoType from "../../../util/VideoType";
export const BitrateConfig = {
[VideoType.CAMERA]: 2000000,
[VideoType.SCREENSHARE]: 2500000,
};
export function configureForSending(peerConnection, streamKind, bitrateBps, logger) {
if (!peerConnection) {
return;
}
const senders = peerConnection.getSenders();
senders.forEach((sender) => {
if (sender.track && sender.track.kind !== streamKind) {
return;
}
const parameters = sender.getParameters();
parameters.encodings ??= [{}];
if (bitrateBps <= 0) {
return;
}
logger.debug(`Configuring ${sender?.track?.id} bitrate for video streaming to ${bitrateBps / 1000} [Kbps]`);
if (parameters.encodings[0]) {
parameters.encodings[0].priority = "high";
parameters.encodings[0].networkPriority = "high";
}
parameters.encodings.forEach(encoding => {
encoding.maxBitrate = bitrateBps;
});
sender.setParameters(parameters)
.catch(err => logger.error(`Changing sender parameters failed: ${err?.message}`));
});
}
//# sourceMappingURL=BitrateUtil.js.map