概述Simulcast 通过发送多层编码(高/中/低)让接收端按网络与设备选择合适层。`sender.setParameters({ encodings })` 用于指定码率与缩放等参数。用法/示例const pc = new RTCPeerConnection()
const stream = await navigator.mediaDevices.getUserMedia({ video: { width: 1280, height: 720 } })
const sender = pc.addTrack(stream.getVideoTracks()[0], stream)
const params = sender.getParameters()
params.encodings = [
{ rid: 'h', maxBitrate: 2_000_000 },
{ rid: 'm', maxBitrate: 1_000_000, scaleResolutionDownBy: 1.5 },
{ rid: 'l', maxBitrate: 400_000, scaleResolutionDownBy: 2 }
]
await sender.setParameters(params)
工程建议依据设备与网络选择层数与码率;避免过多层造成 CPU 与带宽负担。与 SVC/编码器能力协作并校验浏览器支持;记录丢包与码率指标做自适应。在不支持 Simulcast 的环境回退单层或服务端转码。参考与验证W3C:WebRTC — https://www.w3.org/TR/webrtc/MDN:RTCRtpSender — https://developer.mozilla.org/docs/Web/API/RTCRtpSender

发表评论 取消回复